Rich Internet Applications – Technologien
Transcript of Rich Internet Applications – Technologien
Rich Internet Applications – Technologien
Leif HartmannINF-M3 – Anwendungen 2 - Wintersemester 2007/2008
08. Januar 2008
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien2
Inhalt▸ Einleitung
▸ Kategorisierung
▸ Technologien▸ E c h o▸ G o o g le W e b To o lk i t▸ O p e n L a s z lo▸ X M L 1 1▸ N e x a w e b▸ G o o g le G e a r s
▸ Zusammenfassung
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien3
Einleitung▸ Vorstellung der Technologien bezüglich:
▸ S p r a c h e n▸ L a u f z e i t u m g e b u n g e n▸ O ff l in e -F u n k t io n a l i t ä t▸ Te s t in g▸ V e r t e i lu n g d e r L o g ik▸ ID E s▸ A r c h i t e k t u r
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien4
Plug-in
Flash:
▸ Flex
▸ OpenLaszlo
Java:
▸ Java Applets
▸ AltioLive
▸ Nexaweb
KategorisierungStand-alone
Java:
▸ Java Web Start
▸ Nexaweb
▸ Droplets
AJAX▸ JavaScript-
Bibliotheken
▸ Echo
▸ Eclipse RAP
▸ GWT
▸ Nexaweb
▸ OpenLaszlo
▸ ZK
▸ XML11Angelehtn an [1]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien5
Echo▸ Open Source (Mozilla Public License / LGPL)
▸ AJAX-basiert
▸ Entwickelt wird in Java
▸ Logik: Schwerpunkt Serverseite
▸ Vollwertige IDE▸ B e l ie b ig e J a v a ID E
▸ E c h o S tu d io (k o m m e r z ie l l)
▸ Keine eigene Offline-Funktionalität
▸ Testing: Java, Browser-Emulator
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien6
Echo▸ Application Framework
▸ V e rw a l t e t d e n Z u s ta n d e in e r A n w e n d u n g u n d d e s U I
▸ Web Rendering Engine▸ S e r v e r E n g in e : J a v a
▸ C l ie n t E n g in e : J a v a S c r ip t
▸ A u s ta u s c h b a r
▸ Web Application Container▸ S y n c h r o n is ie r t d e n Z u s ta n d d e s U I
m it d e m W e b c l ie n t
Quelle: [3]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien7
Google Web Toolkit▸ Open Source (Apache License, Version 2.0)
▸ AJAX-basiert
▸ Entwickelt wird in Java
▸ Logik: Schwerpunkt Clientseite▸ E x p l iz i t e R P C -A u f r u fe fü r
S e r v e r lo g ik
▸ Vollwertige IDE▸ B e l ie b ig e J a v a ID E
▸ E c l ip s e -P lu g in s
▸ Keine eigene Offline-Funktionalität
▸ Testing: Java (JUnit + GWT Integration), Browser-Emulator
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien8
Google Web Toolkit▸ Hosted Mode
▸ S c h n e l le C o d e /Te s t-Z y k le n
▸ G u te D e b u g -M ö g l ic h k e i t e n
▸ A u s g e fü h r t a ls G W T S h e l l (J a v a -A n w e n d u n g )
▸ Web Mode▸ G W T C o m p i le r
▸ J a v a to J a v a S c r ip t
▸ S o u r c e -C o d e m u s s J a v a 1 .4 k o m p a t ib e l s e in
▸ A u s g e fü h r t in J 2 E E -S e r v e r
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien9
OpenLaszlo▸ Open Source (CPL 1.0)
▸ Flash oder DHTML (AJAX)
▸ Entwickelt wird in ▸ C l ie n t : X M L , J a v a S c r ip t
▸ S e r v e r : J a v a (a u c h a n d e r e )
▸ Logik: Schwerpunkt Clientseite▸ E x p l iz i t e R P C -A u f r u fe fü r
S e r v e r lo g ik
▸ J a v a R P C
▸ X M L -R P C
▸ S O A P
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien10
OpenLaszlo▸ IDEs
▸ S p k e t ID E (P lu g -in fü r E c l ip s e 3 .2 )
▸ X M L + J a v a S c r ip t
▸ ID E fo r L a s z lo (P lu g -in fü r E c l ip s e )
▸ E in g e s te l l t
▸ Offline-Funktionalität: ?
▸ Testing: LzUnit, Browser-Emulator
Nach [4]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien11
XML11▸ Open Source (GPL)
▸ AJAX-basiert
▸ Entwickelt wird in Java oder .NET
▸ Client/Server-Logik aufgeteilt
▸ Vollwertige IDE ▸ je n a c h S p r a c h e
▸ Keine Offline-Funktionalität
▸ Testing: je nach Sprache, Browser-Emulator
AWT AJAX
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien12
XML11
Quelle: [2]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien13
XML11: XMLOB
Quelle: [2]
▸ XML Object Broker
▸ „light-weight“ Middleware
▸ (Un-)Marshalling
▸ Message-based transport▸ X M L C o d e c
▸ J S O N C o d e c
▸ Clientseitig: JavaScript
▸ Serverseitig: Java
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien14
XML11: XMLVM
Quelle: [2]
▸ XML-based virtual machine model
▸ Übersetzen von Java- oder.NET-Byte-Code in JavaScript
▸ Analyse auf Byte-Code-Ebene
▸ Verwendet eine stack-based machine
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien15
Quelle: [2]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien16
Nexaweb▸ Kommerzielle Lizenz
▸ Java Applet oder AJAX
▸ Entwickelt wird in ▸ C l ie n t : X A L (X M L ), J a v a S c r ip t o d e r J a v a
▸ S e r v e r : J a v a
▸ Logik: Beliebig aufteilbar▸ X M L
▸ J S O N
▸ B in a r y
▸ S e r ia l iz e d J a v a O b je c t s
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien17
Nexaweb▸ Vollwertige IDE
▸ E c l ip s e -b a s ie r t
▸ W Y S IW Y G -E d i t o r
▸ Offline-Funktionalität▸ V ia In te r n e t M e s s a g in g B u s
▸ I n -m e m o r y c a c h in g fü r D a te n (a u c h m it A J A X -C l ie n t?)
▸ C l ie n t-P e r s is t e n z n u r m i t D e s k to p -C l ie n t
▸ B e n ö t ig t In s ta l la t io n
▸ z .B . J a v a W e b S ta r t
▸ Testing: Java, SOA Testing ToolsQuelle: [5]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien18
Google Gears▸ Open Source (New BSD License)
▸ Offline-Funktionalität für AJAX-Anwendungen
▸ Plug-in-basiert
▸ JavaScript-APIs▸ L o c a lS e r v e r
▸ D a ta b a s e
▸ W o r k e r P o o l
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien19
Google Gears
▸ Speichert Dateien des Server lokal▸ „O f f l in e C a c h e “
▸ Zuordnung von URLs zu lokalen Dateien
▸ Via Manifest-File
▸ Nur „komplette“ Seiten offline verwenden
▸ Offline- und Online-Version vergleichbar
LokalServer
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien20
Google Gears
▸ Vollwertige SQL-Datenbank
▸ Verwendet SQLite▸ V o l l t e x t s u c h e v ia F T S -M o d u l
▸ Einfache JavaScript-API▸ „b in d p a r a m e te r s “
▸ SDK bringt ein Query-Tool mit
Database
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien21
Google Gears
▸ „Threads“ für JavaScript
▸ Blockieren des Browsers vermeiden
▸ Worker führt beliebigen JavaScript-Code im Hintegrund aus
▸ Kommunikation der „Threads“ via Strings▸ z .B . J S O N
WorkerPool
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien22
Google GearsBeispiel: Background sync architecture
Quelle: [7]
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien23
ZusammenfassungWas ändert sich für Entwickler?
▸ Andere Fragestellungen▸ W a r t b a r k e i t?
▸ P r o d u k t iv i t ä t?
▸ R o b u s th e i t?
Mykhaylo Kabalkin
Virginio Carfagno(Mind-Mapping)
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien24
Quellen[1] J. Farell, G. S. Nezlek – Rich Internet Applications: The Next Stage of Application
Development – In Proceedings of the ITI 2007 29 Int. Conf. on Information Technology Interfaces – 2007
[2] Puder, A. 2007 – A cross-language framework for developing AJAX applications – In Proceedings of the 5th international Symposium on Principles and Practice of Programming in Java (Lisboa, Portugal, September 05 - 07, 2007) – PPPJ '07, vol. 272 – ACM, New York, NY, 105-112 – http://doi.acm.org/10.1145/1294325.1294340
[3] NextApp – NextApp . Echo . Technical Overview . Fundamentals –http://nextapp.com/platform/echo2/echo/doc/hltov/fundamentals.html (Verifiziert: 03.01.2008)
[4] Laszlo Systems Inc – Software Engineer's Guide to Developing OpenLaszlo Applications – http://www.openlaszlo.org/lps4/docs/developers/ (Verifiziert: 05.01.2008)
[5] Nexaweb Technologies Inc – How Nexaweb works – http://nexaweb.com/home/us/index.html@cid=2295.html (Verizifizert: 05.01.2008)
08.01.2008Leif Hartmann – Rich Internet Applications – Technologien25
Quellen[6] Nexaweb Technologies Inc – How Nexaweb Solves Connectivity –
http://www.nexaweb.com/home/us/index.html@cid=1836.html (Verizifizert: 05.01.2008)
[7] Google – Architecture - Google Gears API - Google Code –http://code.google.com/apis/gears/architecture.html (Verifiziert: 03.01.2008)
[8] Virginio Carfagno – Evaluation des Google Web Toolkits durch Entwicklung einer ajaxbasierten Mind-Mapping-Anwendung – HAW Hamburg, Diplomarbeit – 2007
Fragen?
Leif HartmannINF-M3 - Seminar/Ringvorlesung - Wintersemester 2007/2008
07. Dezember 2007