Entwicklung webbasierter Datenbankapplikationen Thomas Preuss Inhalt ● Web-Anwendungen heute ● Klassische Web-DB-Architekturen ● Synchrone versus asynchrone Web-Anwendungen – ● ● ExtJS Browser-Datenbanken – TrimPath – Dojo-Offline – Google Gears Ausblick Web-Anwendungen heute ● AJAX = DOM + XML-HTTP-Request + Javascript ● Rich User Interface ● Web-Apps ersetzen Desktop-Anwendungen ● Software as a Service (SaaS) – aber: Abhängigkeit von Netzanbindung 3-Ebenen-Architektur Presentation Application Data 3-Ebenen-Architektur Presentation Presentation Presentation Presentation Presentation Application Application Application Application Application Data Ultra-Thin Client Data Thin Client Data Rich Thin Client Data Fat Client Synchrone Web-Anwendungen WebServer DB GET myapp.php SELECT * FROM .. .html GET myapp.php SELECT * FROM .. .html GET myapp.php SELECT * FROM .. .html Dynamische Änderungen im Browser DOM-Baum Asynchrone Web-Anwendungen WebServer DB GET myapp.php .html GET myapp.php SELECT * FROM .. .xml GET myapp.php SELECT * FROM .. .xml Datenformate bei asynchronen Web-Anwendungen ● ● XML – Daten liegen serverseitig im XML-Format vor – müssen in HTML oder Javascript-Code umgewandelt werden HTML-Sniplets – ● können direkt in den DOM-Baum eingebaut werden JSON – können direkt durch Javascript weiterverarbeitet werden Beispiel ExtJS ● ● ursprünglich Erweiterung für YUI, jetzt auch für scriptaculous und jQuery sowie mit eigener Engine http://www.extjs.com Beispiel ExtJS WebServer DB GET myapp.php DataStore: Data - Reader: XML, JSON, Array, .. Access - Proxy:.xml ScriptTag, HTTP, Memory, .. Grid: User - Colum Model Interface - Selection Model SELECT * FROM .. Remote Database Server-Datenbank User Interface Data Access Remote Database Browser-Datenbank User Interface Data Access Local DataBase Browser-Datenbanken: http://trimpath.com/demos/test1/trimpath/query_demo.html/ http://www.javascriptdatabase.com/ Zusätzliche Offline-Funktionalität User Interface Data Access Local Database Remote Database Zusätzliche Offline-Funktionalität und Synchronisation User Interface Data Access Remote Database Sync Engine Local Database Kommerzielle Lösungen Adobe Apollo Java FX Open Source Lösungen ● ● ● http://dojotoolkit.org/offline Installation notwendig Speicherung erfolgt: – – – – ● ● ● WHAT WG Storage Provider Flash Storage Provider im lokalen Dateisystem Cookies Zugriff auf Hash-Table (kein SQL) Synchronisation muss per Hand programmiert werden Demo:http://codinginparadise.org/projects/dojo_storage/release /dojo/demos/storage/editor.html Dojo-Toolkit ● http://dojotoolkit.org/ ● Dojo Foundation: IBM, Sun, JotSpot, SitePen, .. ● Bestandteile: – Dojo-Widgets – Dojo-Events – Dojo-Storage Open Source Lösungen ● ● ● http://gears.google.com/ Installation notwendig 3 Module – – – ● ● LocalServer-Modul (Entfernte HTTP-Requests können abgefangen, gecached und durch Gears bedient werden) Database-Modul (SQLite-basierter Zugriff (einschliesslich fts2)) WorkerPool-Modul (Verlagern von Funktionen in den Hintergrund) (noch) keine Standardlösung zur Synchronisation GoogleReader Ausblick ● ● ● Web-Apps statt Desktop-Apps Google kommt mit Gears noch mehr in die Gänge Bedeutung des Web-/ Application-Servers nimmt ab – Funktionalität wird auf den Browser (und die DB verlagert) ● JSON statt XML ● Offline-Funktionalität wird immer wichtiger