| Startseite | |||||||||||||||||
|
RIA-Forum Darmstadtesentri war am 23.04.2010 bei dem RIA-Forum in Darmstadt dabei. Vier Vorträge beleuchten aktuelle Themen rund um Rich Internet Application Frameworks und Technologien. Interessante Diskussionen und Erfahrungsaustausch über Flex, Ajax und Usability Anforderungen. Zum zweiten mal überhaupt wurde das von richability organisierte RIA Forum am 23.04.2010 im Darmstadtium in Darmstadt ausgerichtet. In der kleinen aber feinen Veranstaltung wurde in vier kurzen aber durchgängig kurzweiligen Talks neueste GUI-Technologien vorgestellt und diskutiert. Für uns von esentri bot sich hiermit eine ausgezeichnete Gelegenheit aktuelle Ideen und Ansätze bei RIA-Technologien zu vergleichen und sich mit „Gleichgesinnten“ zu diesen Themen auszutauschen. ![]() Frank Szilinski und Mario Herb im Gespräch mit Björn Müller von CaptainCasa Gleich zu Beginn der Veranstaltung wurde von Florian Müller, dem Mitveranstalter des Events, über die Enterprise-Fähigkeit von Adobe RIA-Flaggschiff „Flex“ referiert. Für Flex wurden in den vergangenen Jahren einige Open-Source Alternativen zu den von Adobe angebotenen „BlazeDS“ und den nur kommerziell verfügbaren „LifeCycle DS“ entwickelt. In diesem Zusammenhang wurden einige Features des quelloffenen „GraniteDS“-Frameworks vorgestellt, das in einigen Punkten durchaus mit den „Wow“-Features von LCDS mithalten kann. Dieser Aufruf war dann auch bei der Live-Demonstration des Ganzen von einigen Zuhörern zu entnehmen. Weiterhin wurde erläutert wohin mit Flex 4 die Reise gehen wird. Über rein graphisches Design können mit entsprechenden Tools Komponenten und sogar komplette Oberflächen in vollständig frei wählbaren Farben und Formen erstellt werden. Ergänzt wurden diese wiederum als Live-Demo vorgeführten Features mit nützlichen Praxis-Tipps. Beispielsweise eignet sich der von Adobe vorgeschlagene Entwicklungsprozess vom Design bis zur ausführbaren und mit Logik hinterlegten Anwendung vor allem auf Komponenten-Ebene, da beispielsweise bei Änderungen im zugrunde liegenden Datenmodell auch das Design der Oberfläche angepasst werden muss. Dies ist logischerweise einfacher zu bewerkstelligen, wenn auch die Oberfläche in einzelne von einander separierte Komponenten gegliedert ist. In der darauffolgenden Präsentation wurden von Dierk König, dem Autor diverser Fach-Bücher (u.a. „Groovy in Action“), einige Aspekte und Überlegungen zur Steigerung des Bedienkomforts und der Interessantheit von User-Interfaces dargestellt. Es wurde die Entwicklung von Benutzerschnittstellen aus vergangenen Tagen bis heute eingegangen. Neben einigen Tipps zu psychologischen Überlegungen bei dem Entwurf von User Interfaces wurden auch bei diesem Vortrag per Live-Demo einige ausgefallene Komponenten vorgeführt, die zum Beispiel an die von iTunes bekannte Coverflow-Komponente erinnern. Insbesondere kam zur Sprache, dass Benutzer von neuen User Interfaces oft erst mühsam überzeugt werden müssen und im Rahmen von Businessanwendungen vor allem eine effiziente Bedienung im Vordergrund steht. Darüber hinaus wurde das von Canoo entwickelte rein Java/Swing-basierte und dennoch Server-zentrische Framework ULC vorgestellt. Danach stellte Stephan Portmann zusammen mit seinem Kollegen Mike Leber in einem als Laienschauspielstück inszenierten Vortrag das JaxFront Framework vor. Anhand von „ausgewählten“ Szenen einer fiktiven Kunde-Dienstleister Beziehung wurden die Vorteile des MDA-orientierten Ansatzes vorgestellt. Ausgehend von XMLSchema basierten Beschreibungen von Domänen-Objekten werden GUI-Frontends inklusive zugehöriger Validierungen generiert und in mehreren iterativen Läufen anschließend verfeinert. Das Framework zeigte hier vor allem Eignung für stark formulargetriebene Businessanwendungen. In einem abschließenden Vortrag wurde von Daniel Seiler das aus Taiwan kommende Framework ZK präsentiert. ZK wird auch in Europa immer mehr im Bereich von rein Server-basierten RIA-Frameworks wahrgenommen. Es wurden die grundlegenden Komponenten und Techniken im Umgang mit ZK erläutert. Vor allem die Flexibität und Produktivität dieses Frameworks wurde herausgestellt. Als abschließendes Fazit lässt sich sagen, dass mit dem RIA-Forum seinen Besuchern viele Denkanstöße wie auch interessante Überlegungen mit auf den Weg gegeben hat. Es wurde vor allem deutlich, dass allgemeine Interesse an RIA als Best-of-both-worlds Ansatz (bezogen auf herkömmliche Webanwendungen und traditionelle Desktop-Anwendungen) stark am wachsen ist. esentri hat nun bereits mehrfach in Projekten Erfahrungen mit unterschiedlichen RIA-Technologien sammeln können. Aktuell befindet sich vor allem Adobes Flex Framework im Fokus unseres Interesses. Es kam bereits erfolgreich im Rahmen einiger unserer Projekte zum Einsatz und auch bei der Entwicklung unseres Projektmanagement-Tools „p-Elements“ wird die aktuell wohl ausgereifteste „Plugin“-RIA-Technologie eingesetzt.
Gründungsveranstaltung SIG Java ein voller ErfolgDie Deutsche Oracle Anwendergruppe (DOAG) hat am 29.04.2010 die neue SIG Java nun auch offiziell ins Leben gerufen. Interessante Themen wie XDEV 2, JavaFX, Grails und Oracle, Oracle ADF und Single Sourcing mit Eclipse RCP waren Inhalt der Veranstaltung. esentri präsentiert Rapid Application Development mit Grails und Oracle. Die Deutsche Oracle Anwendergruppe (DOAG) hat am 29.04.2010 die neue SIG Java nun auch offiziell ins Leben gerufen. Gemeinsam mit der iJUG haben Herr Badelt und Herr Schwitalla die Gründungsveranstaltung in Nürnberg perfekt organisiert. Vor dem Hintergrund der geplanten Sun-Übernahme durch Oracle haben sich Java-Usergroups aus Deutschland zusammen mit der DOAG Deutsche ORACLE Anwendergruppe e. V. den iJUG Interessenverbund der Java User Groups e.V. gegründet. Ziel des iJUG ist die umfassende Vertretung der gemeinsamen Interessen der Java Anwendergruppen sowie der Java-Anwender im deutschsprachigen Raum, insbesondere gegenüber Entwicklern, Herstellern, Vertriebsunternehmen sowie der Öffentlichkeit. Der iJUG möchte alle Java-Usergroups unter einem Dach zu vereinen. Wie groß das Interesse an den Java Themen nicht erst seit dem Zukauf von Sun ist, zeigte sich allein schon an der Teilnehmerzahl. Mit über 70 Anmeldungen allein für das erste Treffen ist die SIG Java bereits jetzt eine der größere Special Interest Groups der DOAG und die Entscheidung die bisherige SIG Development thematisch aufzuspalten, um die Java/Middleware Themen besser bedienen zu können, stellte sich als goldrichtig heraus. Entsprechend groß war das Interesse an den Vorträgen und dem Erfahrungsaustausch aus der Praxis. Einleitend zeigte Herr Stiegler von der XDEV Corp. Die XDEV 2 Umgebung für die Entwicklung von Datenbank-Anwendungen basierend auf Java. Diese ist vor allem für Entwickler interessant, die kaum Erfahrung mit Java haben. Mit Wizards, Generatoren und einer eigene Script-Sprache lassen sich relativ simpel Tabellen, Filter und Felder erstellen. XDEV 2 besteht aus dem Guinea GUI-Builder und dem XDEV 2 Code-Editor und erzeugt auf dem Swing-Framework basierende Applets. Im Folgenden wurde JavaFX von Peter Doschkinow (Sun microsystems) vorgestellt. Mit seinem sehr spannenden Vortrag zeigte Herr Doschkinow Features die bisher nur mit Adobe Flex möglich waren. Mit dem neuen Release 1.3 sind viele neue Bedienelemente, 3D Support und einige Performance-Verbesserungen hinzugekommen. In unserem Beitrag „Rosige Zeiten mit JavaFX“ welcher in der nächsten Ausgabe des DOAG-Magazins erscheint, haben wir bereits auf die fehlende Integrations- und Kommunikationsmöglichkeiten mit JavaFX hingewiesen. Herr Doschkinow erwähnte, dass aktuell an einem Framework für die Backend-Kommunikation gearbeitet wird, konnte aber keine weiteren Aussagen treffen. Welche Möglichkeiten Open Source Frameworks im Bereich Rapid Application Development bereits bieten, zeigte esentri mit dem Beitrag „Rapid Application Development mit Grails und Oracle“. Das in Groovy und Grails steckende Potential wurde schon sehr früh von esentri erkannt, da Grails gegenüber diversen Frameworks und Entwicklungsumgebungen einen anderen Ansatz verfolgt. Im Mittelpunkt einer Grails Anwendung steht das Datenmodell und den daraus resultierenden Controllern und Views. Mit Groovy hat Grails eine mächtige Sprache, mit der nach einer kurzen Lernphase auch bei erfahrenen Entwicklern unglaubliche Produktivitätseffekte zu erzielen sind.
Anschließend hat Dr. Jürgen Menge mit seinem Vortrag „Oracle’s Application Development Framework“ die Erwartungen an die neue Version abermals übertroffen. esentri bietet seinen Kunden schon seit der ersten Stunde von Oracle ADF Lösungen im Middleware Umfeld an. Herr Dr. Menge zeigte nicht nur, wie schnell mit Oracle ADF 11 Anwendungen mit Wizards und Konfigurationen erstellt werden können, sondern auch einige der neueren Features wie TaskFlows zur Steuerung von Oberflächen-Workflows. Oracle ADF ist das Schlachtschiff unter den RAD Frameworks und Unternehmen, die bereits Oracle Produkte einsetzen, werden in naher Zukunft nicht um das Thema Oracle ADF herum kommen. Auch der Tagungsort macht Lust auf die nächste Veranstaltung mit einem ausgezeichneten Rundum-Service. Aus unserer Sicht war die Gründungsveranstaltung ein voller Erfolg und das ganze esentri Team freut sich auf die weitere Zusammenarbeit mit der SIG Java.
Google Wave Lösung mit Flex - Teil 1Echtzeitkollaboration an Dokumenten mit Wave und Adobe Flex
Die neue Welt der Rich Internet Applications erfordern tiefgreifende Mechanismen um Echtzeitkollaboration zwischen mehreren Clients zu ermöglichen. Adobe zeigt als Vorreiter mit den LiveCycle Data Services (LCDS) wie serverseitiges Realtime-Messaging mit Data Push, Offline-Fähigkeiten und Konfliktauflösung  funktionieren kann. Was ist aber, wenn gemeinsam an einem Dokument gearbeitet werden soll? Wave ist mehr als eine Mischung zwischen Instant-Messaging und E-Mail. Wie die gleichzeitige Bearbeitung von Dokumenten aussieht, kann auch über die Realisierung von EtherPad, dem Marktführer und Vorreiter einer solchen Technologie, ausprobiert werden. Google entschloss sich das Know-How von Etherpad in Google Wave mit einfliessen zu lassen und kaufte das Unternehmen AppJet im Dezember 2009 . esentri hat weltweit mit als erstes Unternehmen eine API entwickelt, mit der man beliebige Dokumentenstrukturen mit Wave in eigene Anwendungen integrieren kann. Mit einem 3-Teiligen Post wollen wir Ihnen tiefe Einblicke und Eindrücke in das Mysterium Wave geben.
Teil I - EinführungWas ist Google Wave? Google Wave ist ein internetbasiertes Echtzeit Kommunikations- und Kollaborationsprodukt, das am 27. Mai 2009 von Google Inc. vorgestellt wurde. Das System arbeitet auf Client/Server-Basis und vereinigt die Funktionalität mehrerer Kommunikations- und Kollaborationsdienste und bietet diese über ein Web-Interface den Benutzern an. Die Idee hinter Google Wave wurde von den australischen Brüdern Jens und Lars Rasmussen konzipiert, die mit ihrer ehemaligen Firma schon die Grundlagen von GoogleMaps entwickelt haben. In Google Wave werden Konversationen geführt, die sich gleichzeitig asynchron wie E-Mail oder synchron wie Instant-Messaging verhalten. Z.B. kann ein Chat fließend in das gemeinsame Editieren von Dokumenten übergehen. Änderungen von Teilnehmern werden fast in Echtzeit zu weiteren aktiven Teilnehmern propagiert. Darüber hinaus veröffentlichte Google die Spezifikation des Wave Federation Protocol und eine dazugehörige rudimentäre Client/Server Implementierung als Open Source, um es als offenen Standard zu etablieren. Auf Basis dieses Protokolls ist es möglich, von Google unabhängige Wave Systeme zu entwickeln. Die folgende Abbildung verdeutlicht den grundsätzlichen Aufbau eines Wave-Systems.
Abbildung 1: Grobarchitektur einer Wave Anwendung Architektur und Operationale Transformationen Die Grundarchitektur der Wave Plattform verfolgt das klassische Client/Server-Modell. Es existiert ein zentraler Wave Server, an dem sich beliebig viele Klienten registrieren können. Auf dem Wave Server werden XML Dokumente abgelegt. Man spricht davon, dass der Wave Server die XML Dokumente hosted. Klienten, die sich am Wave Server registriert haben, replizieren das serverseitige Dokument lokal. Nun sind die Klienten in der Lage, das lokale Dokument über Operationen zu mutieren (d.h. verändern) ohne dabei auf pessimistische Sperrmechanismen, wie z.B. in einer Datenbank, zurückgreifen zu müssen. Änderungen eines Klienten werden ohne Verzögerung auf das lokale Dokument angewendet, danach werden die Operationen weiter zum Wave Server propagiert. Der Wave Server sorgt dafür, dass das zentral gehostete Dokument immer in einen global konsistenten Zustand überführt wird, indem er wohldefiniert die konfliktbehafteten Operationen der Klienten auflöst und auf das gehostete Dokument anwendet. Es ist zu beachten, dass Operationen, die von einem Klienten zum Wave Server abgesetzt werden, durch die Latenzzeit des Übertragungsnetzes stark verzögert eintreffen können. Sobald der Wave Server die Mutationen eines Klienten übernommen hat, wird die Operation zu den restlichen Klienten im System weitergeleitet. Dabei können diese weitergeleiteten Operationen auch wieder stark verzögert bei eintreffen. Die hohe Latenzzeit des Übertragungsnetzes ist jedoch für den Benutzer nicht spürbar, da dessen lokale Änderungen sofort auf die lokalen Dokumente angewendet und sichtbar werden. Da Wave Klienten gleichzeitig Operationen auf ein Wave Dokument absetzen können, entstehen dadurch Konflikte zwischen lokal erzeugten und vom Wave Server empfangene Operationen.
Um die simultane Bearbeitung von Wave Dokumenten mit mehreren Personen zu ermöglichen, verwendet Wave die Operationale Transformation (kurz OT) als theoretisches Modell zur optimistischen Nebenläufigkeitskontrolle. Ein konfliktbehaftetes Szenario, hier in Abbildung 2 dargestellt, beschreibt zwei Klienten, die ausgehend von einem gemeinsamen Dokumentenzustand “ABCD“ gleichzeitig ihr lokales Dokument modifizieren (Zur Verdeutlichung des Prinzips wird hier bewusst auf den Wave Server verzichtet). Klient 1 führt eine Insert Operation an Position 3 durch und fügt dabei ein Item “X“ ein. Zum selben Zeitpunkt führt Klient 2 an Position 1 eine Delete Operation durch und löscht das Item “B“. Nachdem die Operationen lokal angewendet wurden, werden die Operationen zur gegenüberliegenden Seite übermittelt.
Abbildung 2: Konfliktbehaftetes Szenario zwischen zwei Klienten Werden die empfangenen Operationen jeweils auf die lokalen Dokumente angewendet, so löscht Klient 1 das zweite Item “B“ und mutiert das Dokument von Zustand “ABCXD“ in den neuen Zustand “ACXD“. Auf der Seite von Klient 2 wird die empfangene Insert Operation auf den Zustand “ACD“ angewendet und es entsteht der fehlerhafte Dokumentenzustand “ACDX“, da die Insert Operation auf Basis des Ursprungszustands “ABCD“ generiert wurde. Somit enden die beiden Klienten in unterschiedlichen Dokumenten und der Zustand ist nicht mehr konsistent. Auflösung von Konflikten Zur Lösung des gegebenen Konflikts wird eine Funktion xform definiert, die ein Paar aus lokaler und empfangener Operation in ein korrigiertes Operationspaar abbildet. Man schreibt
wobei c und s jeweils die originalen Client und Server Operationen sind. Die erzeugten Operationen c‘ und s‘ müssen die Eigenschaft besitzen, dass, wenn die Operation c und danach die Operation s‘ auf ein Dokument angewendet werden, der gleiche finale Endzustand erzeugt wird, wie wenn auf die Serveroperation s die korrigierte Operation c‘ angewendet wird.
Abbildung 3: Lösung des Konflikts mithilfe der xform Funktion
Der bestehende Konflikt für Client 2 (C2) wird mithilfe der Xform Funktion aufgelöst, indem der Positionsparameter der empfangenen Server Operation ( ins(3,X) ) um eine Position vermindert wird. Für Client 1 hat die Anwendung der XForm Funktion keine Auswirkung auf die lokale und empfangene Operation. Mithilfe dieses Transformationsprozesses werden die erzeugten Konflikte korrigiert und das Server Dokument und die replizierten Client Dokumente konvergieren somit immer gegen einen gemeinsamen konsistenten Zustand. Ausblick Im nächsten Teil werden wir unsere architektonische Lösung und einen in Adobe Flex implementierten Client vorstellen.
Open Source + Oracle = Open Oracle?Nun ist es also raus – Larry Ellison (CEO Oracle) hat die Produktstrategie nach der Übernahme von Sun vorgestellt. Von der Fachwelt wurde die Ankündigung gespannt erwartet und auch wir waren sehr neugierig, wie es mit den Sun Produkten weitergeht. Schließlich haben wir uns bei esentri schon sehr früh auf die Kombination Oracle + Open Source festgelegt. In zahlreichen Beratungsprojekten haben wir vor allem mit der Oracle Fusion Middleware (den Application Servern OC4J bzw. WebLogic), Oracle Application Express (ApEx) sowie den Oracle Java Entwicklungstools und –frameworks (ADF, JDeveloper & Co.) gearbeitet. Bereits in den letzten Jahren war dabei der Trend erkennbar, dass auch Oracle immer mehr Open Source Produkte selbst einsetzt und auch Java als zentrale Plattform absolut gesetzt ist. Man muss es einfach mal klar sagen, die großen Open Source Produkte haben inzwischen einen Qualitätsstandard erreicht, der sich auch vor großen kommerziellen Lösungen nicht verstecken muss. Der Apache Webserver als Basis für die Fusion Middleware ist ein Paradebeispiel hierfür. Aber auch an anderen Stellen wächst die Bedeutung von Open Source und Java. Der Schachzug Sun zu kaufen, war aus unserer Sicht absolut richtig – basiert doch nahezu die komplette Oracle Produktpalette in wesentlichen Teilen auf Java. Bei all den Kritikern, die zu Recht ihre Anmerkungen haben, muss man aber auch sagen, dass es Sun in den letzten Jahren finanziell nicht wirklich gut ging. Hier und da hat man das aus unserer Sicht auch bei manchen Produkten bemerkt. Oracle hat nun die Möglichkeit selbst die Entwicklung voranzutreiben und in Absprache mit den anderen großen Playern wie SAP, IBM, HP, ... den Java Community Prozess fortzuführen. Diesen bleibt nämlich auch nichts anderes übrig, als sich weiter aktiv zu beteiligen und die Investitionen in die Java Plattform zu sichern. Oracle kommt dabei all den Kritikern entgegen und versichert, dass die wichtigen Open Source Produkte MySQL, Netbeans, Open Office und der Glassfish Application Server alle weiter unterstützt werden – auch unter Open Source Lizenz. Dies war wahrscheinlich auch die Grundlage, auf der die EU dem Sun Deal schließlich zustimmen musste und keine kartellrechtlichen Bedenken mehr anzumelden hatte. Wir bei esentri freuen uns über die Möglichkeiten und sehen unsere Strategie – von Anfang an auf Oracle und Open Source zu setzen – mehr als bestätigt. Schließlich können wir zukünftig noch einfacher alle Beratungsleistungen aus einer Hand anbieten und Kunden je nach Bedarf die passenden Oracle oder Open Source Produkte empfehlen. Unser Programm „Open Source Sponsorship“ hilft uns zusätzlich die Kunden bestmöglich zu betreuen. Seit Larry Ellison übrigens seine Strategie verkündet hat, boomt auch unsere im Februar 2009 gegründete Oracle Mix Gruppe „Oracle and Open Source“ und Experten weltweit diskutieren mit uns ihre Ansichten zu diesem Thema. Wir freuen uns auch auf Ihre Anmerkungen!
|