RIA@DHL Beispiel aus der Praxis Marco Venzi, IT- Architekt [innovation process technology inc.] [www.ipt.ch]
Anforderungen an die Systeme Optimierung der Prozesse Automatisierung der Prozesse Erhöhung der Produktivität Konkrete Auswirkungen auf das User Interface: Verarbeitung von vielen Shipments in kurzer Zeit (DHL Express) wenige Serverzugriffe Hohe Benutzerunterstützung Intuitive Screens [page 2]
Aller Anfang ist schwer [page 3]
Erkenntnis HTML und JavaScript Erster Ansatz mit HTML und JavaScript unbefriedigend, da hohe Anforderungen ans GUI: Schleichend immer mehr AJAX- Funktionalität ohne entsprechendes AJAX- Framework Im Verlauf des Projektes sind immer mehr Anforderungen an das GUI entstanden; Komplexität ist gestiegen. Durch steigende Komplexität des JavaScript- Codes sind Änderungen schwer zu implementieren Browserabhängiges scripting (Browser Versionen) Langsam Fehlende IDE Unterstützung Schwache Entwickler- Akzeptanz von HTML und JavaScript [page 4]
Auf der Suche nach Alternativen Anforderungen: Technologie muss in die DHL Umgebung passen (Windows XP, IE) Geringer Lernaufwand (bekannte Technologie) Hohe Benutzerinteraktion möglich Performant Keine Installation notwendig Gute Unterstützung durch IDE Das Umfeld: IE Explorer 6 Bea Weblogic und Bea ALSB Schnelle Netzwerkverbindungen Keine Integration von bestehenden GUI Elementen [page 5]
Klassifizierung von Ajax und RIA Browser-based RIA Outside the browser Ajax Dojo ohne Plug-in Kabuki Atlas JackBe Adobe Flex Backbase Laszlo Tibco GI Adobe Spry Scriptaculous Prototype Rico Nexaweb mit Plug-in Canoo Nexaweb ClearNova "Short" Stack "Tall" Stack Flash Java Java.NET Java.NET ClearNova Digital Harbor Java WebStart ClickOnce WinForms WPF Eclipse RCP IBM WCT [page 6] WPF Source: Gartner
Was Stand zu Diskussion? HTML/JavaScript mit AJAX- Framework Nexaweb DWR Echo2 Flash OpenLasslo Flex Applet Nexaweb Java- Applet (AWT/Swing) bzw. Java Web Start [page 7]
Anforderungsanalyse mittels Kiviat Diagram HTML Integration Erreichbarkeit Anpassungsfähigkeit Benutzerkreis Behindertengerecht Reaktionsfreudigkeit High-Level Tooling GUI Elemente [page 8]
Abdeckung der Anforderungen Reach Seamless Integration Graceful Adaptation DHL AJAX Arbitrary vs. Captive Audience Web Accessibility Flash Nexaweb Responsiveness High-Level Tooling GUI Sophistication [page 9]
Weshalb Nexaweb? Kein JavaScript! Bekannte Technologie Durchgängige Technologie (Java vom Backend bis ins GUI) Gute Eclipse- IDE Unterstützung (Entwicklung, Debugging) Unterstützung durch Vendor Schnelles GUI Einfachere Entwicklung dadurch Zeitersparnis Maintenance einfacher als mit JavaScript Swing Komplexität durch XML (XAL) entschärft [page 10]
Wie fügt sich Nexaweb in unsere Applikations-Architektur ein? Client Server UI Serialized Java Object Servlet Nexaweb J2EE Java method call ServiceLocator Services WebServices [page 11]
GUI Use Case: Erweiterbare komplexe Liste AtaA823 AtaB976 03.02.2006 14.07.2007 [page 12]
Lösung mit JavaScript [page 13]
Lösung mit Nexaweb binding Ata No: Ata Date: Ata No: Ata Date: 823 03.02.2006 976 14.05.2007 Data Source List [atano, [823, 03.02.2006] atadate] atano, 976, 15.05.2007] atadate] binding [page 14]
Implementation mit Nexaweb Layoutbeschreibung (XAL): + Zwei Java Methoden um der Datasource ein Objekt hinzuzufügen bzw. zu entfernen (addata(), removeata()). [page 15]
Erkenntnisse Nexaweb Nicht alles ist einfacher aber vieles Wie auch mit HTML/JS muss z.t. selber entwickelt werden allerdings in Java mit IDE Unterstützung Nexaweb bietet viele verschiedene Basisfunktionalitäten, welche sich gut in einem angepassten Framework einbinden lassen Gute Debugging Unterstützung Deutlich reduzierter Maintenance Aufwand Schnell [page 16]
Vielen Dank [page 17]