| Startseite | |||||||||||
|
Desktop Feeling auch im Web – Forms Modernisierung mit Rich Internet ApplicationsTrotz immer modernerer Web-Frameworks und aufwendigen AJAX Features müssen Endanwender beim Umstieg von Forms Anwendungen in Richtung Web Abstriche beim Bedienkomfort und der Usability machen. Rich Internet Applications schließen diese Lücke und ermöglichen es zeitgleich die gesamte Softwarearchitektur der Forms Lösung schrittweise für zukünftige Anforderungen fit zu machen. Der folgende Artikel zeigt ein exemplarisches Vorgehen mit Adobe Flex und geht auf die Herausforderungen bei der Forms Modernisierung ein.
Viele Unternehmen stehen vor der Frage, ob und wie sie ihre bewährten Forms Anwendungen durch moderne Technologien ablösen können. Nicht selten wurden viele Hundert Personenjahre in die Entwicklung der Geschäftslogik investiert und es ist kaum vorstellbar, von heute auf morgen mit einem „Big Bang“ auf eine neue Lösung umzustellen. Zu groß sind die Herausforderungen, die sowohl auf die IT-Verantwortlichen als auch auf die Endanwender warten. Webanwendungen oder Fat-Client? State of the art ist, dass man heute „im Web“ arbeitet und reine Desktop Lösungen als nicht mehr zeitgemäß gelten. Zwar bieten diese nach wie vor den größten Bedienkomfort und haben durchaus ihre Vorteile, sollte jedoch zu einem späteren Zeitpunkt auch eine Weblösung gefordert werden, heißt es in der Praxis häufig die Anwendung nochmals komplett für das Web zu entwickeln – Code muss also doppelt gepflegt werden und das produziert unnötig hohe Kosten. Auf der anderen Seite haben klassische Weblösungen ebenfalls ihre Schwächen. Zunächst einmal müssen sich die Anwender auf das neue Arbeiten im Web einstellen. Webanwendungen werden im Wesentlichen durch das Request-Response-Prinzip geprägt und das Springen zwischen den Seiten sowie die vorwiegende Steuerung mit der Maus anstatt der Tastatur ist für viele eine große Umstellung. Gleichzeitig liegt die Transaktionskontrolle bei modernen Web Frameworks typischerweise nicht mehr beim Endanwender sondern im Application Server – nicht für alle Anwendungsfälle ist dies ein gewünschtes Verhalten. Das Problem verschärft sich noch, wenn beispielsweise die alte Forms Anwendung (stateful) PL/SQL Geschäftslogik aufruft und die Logik auch bei der Umstellung auf eine neue Technologie weiter verwendet werden soll. Insbesondere der Einsatz globaler PL/SQL Variablen, die in der Datenbank Session gehalten werden, erschweren die Weiterverwendung der Logik, denn die meisten Web Frameworks kommen durch den Einsatz des Connection Pooling Konzeptes nicht ohne weiteres damit zurecht. Ein Parallelbetrieb zwischen „alter“ und „neuer“ Welt wäre so nicht ohne weiteres möglich. Es stellt sich also die zentrale Frage, welche Technologie am besten für die Modernisierung der eigenen Forms Anwendungen geeignet ist. Einen Königsweg kann es auf Grund der unterschiedlichen Anforderungen im jeweiligen Unternehmenskontext nicht geben. Im Folgenden wird aber ein vielversprechender Ansatz vorgestellt, bei dem kein Endanwender im Frontend auf liebgewonnene Funktionen verzichten muss und die IT-Architektur im Backend dennoch enormes Potential für zukünftige Entwicklung bietet. Dabei wird der Oracle Technologiestack nur im Frontend zu Gunsten des Open Source Frameworks Adobe Flex verlassen.
Rich Internet Applications – das Beste aus beiden Welten Gemessen an heutigen Maßstäben werden die Benutzeroberflächen von Forms Anwendungen heute eher als alt und „unsexy“ wahrgenommen. Große „Wow-Effekte“ erzeugen dagegen vor allem die Rich Internet Applications, allen voran die Adobe Flash Technologie, die häufig zum Visualisieren von Charts oder aufwendigen Komponenten in Webanwendungen verwendet wird. Dabei bietet Adobe mit dem Flex Framework noch weitaus mehr Möglichkeiten auch eigene Benutzeroberflächen mittels Action Script und MXML zu programmieren (siehe Listing 1), die dann ebenso im Flash Player des Browsers ausgeführt werden können, jedoch keine HTML Grundlage mehr haben. Aktuellen Studien zufolge ist trotz der benötigten Laufzeitumgebung keine zusätzliche Installation auf dem Client notwendig, da über 99% der Browser das Flash-Plugin bereits mitbringen. Das Erstellen einfacher Pflegemasken und Dialoge geht dabei recht schnell von der Hand – schließlich stehen sehr viele ausgereifte GUI-Komponenten zur Auswahl - und orientiert sich vollständig am MVC Paradigma. Die Entwicklung kann daher hervorragend auf verschiedene Personen verteilt werden und auch eine agile Vorgehensweise, bei der bspw. die neuen Benutzeroberflächen schnell und zeitnah mit den Fachverantwortlichen abgestimmt werden können, wird gefördert. Neben der guten IDE Unterstützung ist es zur weiteren Beschleunigung der Entwicklung natürlich auch möglich, die Forms Anwendung nach XML zu exportieren (es gab zu diesem Thema bereits einige DOAG News Beiträge und Vorträge) und anschließend in MXML (der Auszeichnungssprache von Flex) zu transformieren, um eine gute Ausgangslage für eine schnelle Flex Entwicklung zu schaffen. Je nach Maske empfiehlt es sich aber nicht einfach exakt die alte Funktionalität in eine neue Flex Maske zu übernehmen, sondern in diesem Zug auch die Gestaltung der Benutzeroberflächen zu überdenken und ggf. die GUI-Prozesse zu optimieren. RIA ist mehr als nur schöne Masken Neben sehr ansprechenden Masken bieten Rich Internet Applications aber noch weitaus mehr interessante Features, die im Rahmen der Technologieauswahl berücksichtigt werden sollten. Gerade für Poweruser sind beispielsweise die vielfältigen Möglichkeiten der Tastaturbenutzung sehr wichtig. So kann Flex sämtliche Tastatureingaben verarbeiten und auch die beliebten Funktionstasten können weiter verwendet werden. Für Arbeiten mit der Maus bietet das Flex Komponentenmodell die Möglichkeit echtes Drag & Drop zu implementieren und somit auch die Chance, die in die Jahre gekommenen Forms Oberflächen auch bezüglich Usability zu modernisieren. Generell findet bei RIA übrigens zu keinem Zeitpunkt ein spürbares Nachladen der Anwendung statt! Besonders spannend ist auch die Möglichkeit Echtzeit-Features in der Anwendung zu realisieren (Server Push sowie Publish & Subscribe). So können Daten über mehrere Clients hinweg zeitgleich synchronisiert werden und Konflikte direkt aufgelöst werden. Interessant ist diese Möglichkeit vor allem beim zeitgleichen Bearbeiten von Kundendaten, da Datensätze nicht mehr exklusiv gesperrt werden müssen, sondern Änderungen direkt für alle Endanwender zeitgleich sichtbar sind. Die Transaktionskontrolle liegt dabei im Gegensatz zu klassischen Webanwendungen voll beim Benutzer. Ein weiteres Highlight ist die Möglichkeit eine Flex Anwendungen mit einer Offline-Fähigkeit auszustatten. Ein typisches Beispiel für diesen Bedarf ist ein Vertriebsmitarbeiter, der zeitweise offline beim Kunden ist oder unterwegs noch seine Notizen zum letzten Kundengespräch machen möchte. Diese kann er fortan ohne bestehende Internetverbindung machen, da der Flex Client die Möglichkeit besitzt Daten in einer lokalen Zwischendatenbank (z.B. SQLite) zu speichern. Diese werden dann analog den Echtzeitdaten synchronisiert, sobald der Client wieder online ist. Technisch findet die Kommunikation zwischen dem Browser und dem Backend übrigens über ein Binärprotokoll (AMF) statt, das im Gegensatz zu HTML über HTTP sehr schnell und komprimiert auch große Datenmengen an den Client übertragen kann Java Middleware als Grundlage für RIA und SOA Damit Flex Applikationen mit der Datenbank kommunizieren können, wird der Aufbau einer Zwischenschicht (Middleware) empfohlen. Diese kann vollständig mit dem Oracle JEE Stack implementiert werden und ist damit 100% kompatibel zu den gängigen Standards. Die Brücke zwischen Java und Flex ist übrigens nicht proprietär, sondern kann mit den Produkten BlazeDS (Adobe) und GraniteDS komplett mit Open Source Software realisiert werden. Je nach Bedarf ist es in der Middleware auch möglich bestehende PL/SQL Geschäftslogik durch Java Wrapperklassen weiter zu nutzen und somit die wertvolle Investition zu schützen. Dabei ist auch der Parallelbetrieb zwischen alter und neuer Technologie möglich, indem die Middleware sich wie ein Forms Client verhält. Zusätzlich besteht die Möglichkeit, dass diese Wrapperklassen auch in Form von Webservices veröffentlicht werden und ein strategischer Ausbau in Richtung Service-orientierter Architekturen forciert werden kann. Diese Überlegungen sollten elementar bei der Modernisierung von Forms Anwendungen sein, denn nur der Austausch der Benutzeroberflächen bietet langfristig keinen wirklichen Mehrwert. Der Nutzen wird aber durch eine Öffnung gegenüber anderen Applikationen und Geschäftsprozessen mit BPEL erreicht, insbesondere um Medienbrüche abzubauen und Mehrfacheingaben zu vermeiden. Das Vorgehen bietet außerdem die Flexibilität weitere Frontend Anwendungen, wie z.B. Widgets oder mobile Applikationen auf Basis der gleichen Geschäftslogik zu entwickeln.
Fazit Rich Internet Applications vereinen das Beste aus Webanwendungen und Fat-Clients. Sie sind damit eine interessante Alternative für Firmen, die eine Webstrategie verfolgen, ihren Anwendern aber den Komfort einer Desktop Anwendung bieten möchten. Zusätzliche spezielle Features wie Echtzeit- oder Offline-Fähigkeit sind weitere Alleinstellungsmerkmale. Die Auswahl der Benutzeroberflächen ist dennoch nur ein Teil der Lösung und es gibt keinen Königsweg für die Forms Modernisierung – anstatt Adobe Flex könnte man je nach konkreten Anforderungen alternativ auch klassische Web-Frameworks mit AJAX oder zukünftig JavaFX einsetzen. Wichtig ist, dass die individuellen Anforderungen genau analysiert werden und die Forms Modernisierung auch als Chance verstanden wird, Prozesse zu optimieren und die IT-Strategie zu überarbeiten. Ansonsten besteht die Gefahr am Ende für viel Geld nur alten Wein in neue Schläuche gegossen zu haben. Mit Flex wurde in diesem Artikel eine spannende Alternative vorgestellt, die sich sehr gut mit einer Java Middleware- bzw. SOA-Strategie kombinieren lässt und für bestimmte Anwendungsfälle einen enormen Mehrwert liefert. Diese könnten im Rahmen einer schrittweisen Vorgehensweise als Rich Internet Application umgesetzt werden und auch bestehende Forms Anwendungen jederzeit sinnvoll ergänzen.
|