Entwicklung webbasierter Datenbankapplikationen

Werbung
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
Herunterladen