IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Přizpůsobení JSTL pro Google App Engine Datastore Vítězslav Novák Katedra Aplikovaná informatika Ekonomická fakulta, VŠB-TU Ostrava
1
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Google App Engine
Google App Engine je zástupcem distribučního modelu cloud computingu zvaného Platform as a Service - poskytuje kompletní prostředky pro podporu celého životního cyklu tvorby a poskytování webových aplikací. Google App Engine poskytuje mimo jiné tyto funkce: dynamické webové stránky s plnou podporou pro běžné webové technologie napsané v programovacích jazycích Java, Python nebo Go. Datastore - trvalé úložiště dat s dotazy, řazením a transakcemi, automatické škálování a vyvažování zátěže, API pro autentizaci uživatele a posílání e-mailů pomocí Google účtu, vývojové prostředí, které simuluje Google App Engine na vašem počítači.
2
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Datastore
Datastore je objektová databáze! Google App Engine implementuje následující API pro přístup k databazázi Datastore: nízkoúrovňové Datastore API, Java Data Objects – jako dotazovací jazyk využívá JDOQL (Java Data Objects Query Language), SELECT FROM package.Word ORDER BY date DESC
Java Persistence API – jako dotazovací jazyk využívá JPQL (Java Persistence Query Language). SELECT word FROM Word word ORDER BY word.date DESC
3
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
JSTL JavaServer Pages Standard Tag Library
JSTL zapouzdřuje do jednoduchých značek základní funkcionalitu běžnou pro mnoho webových aplikací. JSTL poskytuje podporu pro běžné, strukturované úlohy jako jsou iterace nebo podmínky (Core), značky pro manipulaci s XML dokumenty (XML), internacionalizaci a formátování (Formatting) a značky SQL pro přístup k relačním databázím (SQL). <sql:query dataSource="jdbc/myDatasource" var="tabulka"> SELECT word FROM Word ORDER BY date DESC
4
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Problémy při použití JSTL značek typu SQL s databází Datastore
JSTL značky typu SQL využívají JDBC, které Google App Engine neimplementuje. Příkazy SELECT jednotlivých dotazovacích jazyků jsou sice podobné, ale přesto se výrazně liší. SQL: SELECT word FROM Word ORDER BY date DESC
JDOQL: SELECT FROM package.Word ORDER BY date DESC
JPQL: SELECT word FROM Word word ORDER BY word.date DESC
Rozdíl je také v datovém typu výsledku provedeného dotazu v programovacím jazyce Java: SQL (JDBC) – java.sql.Resultset, JDOQL, JPQL – java.util.List.
5
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Návrh řešení problému při použití JSTL značek typu SQL s databází Datastore
Naštěstí ostatní značky JSTL (např. typu Core) jsou univerzální a dokážou zpracovat i jiné datové typy než java.sql.Resultset, např. java.util.List, který je výsledkem JDOQL nebo JPQL dotazu. Proto by stačilo jen JSTL značky typu SQL nahradit značkami podobnými, ale přizpůsobenými dotazovacím jazykům JDOQL nebo JPQL, např. pro JDOQL: <jdoql:query persistenceManagerFactory="${pmf}" var="seznam"> SELECT FROM package.Word ORDER BY date DESC
Nové značky je možné vyvinout pomocí technologie Custom Tags, která je součástí Java Enterprise Edition.
6
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Návrh značky <jdoql:query> <jdoql:query persistenceManagerFactory="${pmf}" var="seznam"> SELECT FROM package.Word ORDER BY date DESC
7
IT pro praxi 2011 – Přizpůsobení JSTL pro Google App Engine Datastore
Závěr
Google App Engine je zajímavá možnost, jak lze prakticky vyzkoušet vyučované technologie Java Servlets, JSP, JSTL atd. na oboru Aplikovaná informatika na Ekonomické fakultě VŠB-TU Ostrava. Databáze Datastore sice není relační, přesto je možné si přístup k ní na JSP stránkách přizpůsobit pro použití standardních technologií, jako je např. JSTL.
Děkuji za pozornost. 8