Enterprise Weblication development made easy Whitepaper Inhalt Einleitung: Weblications made easy... 2 Teil 1: Open Source und Industriestandards 4 Teil 2: Frontendtechnologien im Vergleich 5 Fat-Client 5 RIA - Rich Internet Applications 6 Web Frameworks 7 Teil 3: Die wichtigsten Web-Frameworks im Vergleich 8 ADF - der Oracle Standard 9 Spring - Flexibel mit Open Source 11 Grails - Die Scriptsprache für Java 13 APEX - Webanwendungen direkt auf der Datenbank 15 Zusammenfassung und Ergbenisse 17 Weblications made easy... esentri - der easy entry ins Weblication development Der „easy entry“ ist bei esentri nicht nur Teil des Firmennamens sondern auch tief in unserer Unternehmensphilosophie verankert. Dabei bieten wir unseren Kunden den einfachen Zugang zu modernen Webtechnologien und stellen vor allem den „Joy of use“ in den Mittelpunkt unserer Entwicklungsprojekte, denn in Zeiten des Web 2.0 müssen Unternehmensanwendungen neben den funktionellen Anforderungen auch eine hohe Usability bieten und den Anwender durch eine moderne Oberfläche durch die Geschäftsprozesse führen. Hierzu sind die Vorgehensweisen des „Rapid Application Development“ besonders geeignet, um die Entwicklungszyklen mit Hilfe von agilen Methoden zu optimieren und die Anwender bei der Entwicklung von Anfang an direkt zu beteiligen. Im Ergebnis entstehen Applikationen, die mit den Anwendern für die tägliche Arbeit konzipiert wurden und nicht an den gelebten Prozessen vorbei entwickelt werden. Zur Umsetzung des Rapid Application Developments stehen heute unterschiedliche Technologien und methodische Ansätze zur Verfügung, die vor Beginn eines Projektes zu evaluieren sind, damit die bestmögliche Technologieauswahl für das Unternehmen getroffen werden kann. esentri positioniert sich mit maßgeschneiderten Anwendungen, die wir unter dem Stichwort „Weblication Development“ mit Ihnen gemeinsam entwickeln und passend in Ihre bestehende IT-Landschaften integrieren. Das IT-Business-Alignment genießt dabei in unseren Projekten höchste Priorität, denn wir schlagen von Anfang an die Brücke zwischen den Prozessinhabern in den Businessabteilungen und den IT-Experten und schaffen somit Lösungen, die von allen Mitarbeitern über alle Unternehmensbereiche hinweg als echter Fortschritt gesehen werden. Dieses Whitepaper soll als erste Orientierung dienen und bei der Vorauswahl der in Frage kommenden Technologien und Frameworks helfen. Dabei werden vor allem die Vor- und Nachteile einzelner Technologien näher beleuchtet, was bei einem Abgleich mit den individuellen Anforderungen bereits zu einer Einschränkung der in Frage kommenden Frameworks führen kann. Zusätzlich gehen wir auf die Themen Open-Source und Industriestandards ein. Durch aktuelle Akquisitionen rücken diese beiden Bereiche immer enger zusammen und erlauben neue Möglichkeiten des Einsatzes von Open-Source Technologien, die bis vor kurzem auf Grund von fehlenden Supportgarantien im Unternehmensumfeld noch nicht realisierbar waren. 2 Weblications made easy... Die Qual der Wahl bei der Auswahl der Technologie Die erste aber wichtigste Entscheidung, die zu Beginn jeder Weblication Entwicklung getroffen werden muss, ist die Auswahl der richtigen Technologie. Dabei sollte im Rahmen der Vorauswahl zuerst zwischen den grundsätzlichen Frontend-Modellen der Fat-Clients, Rich-Internet Applications und Web-Framworks unterschieden werden, was nicht nur eine Frage der Funktionalität sondern auch des Komplexitätsgrades bei der Umsetzung und vor allem der späteren Anpassbarkeit bedeutet. Warum sich gerade die Gruppe der Web-Frameworks als bester Kompromiss aus Usablitity und überschaubarer Komplexität erweisen, wird im zweiten Teil dieses Whitepaper deutlich herausgearbeitet. Das richtige Web-Framework für meine konkreten Anforderungen? Da auch das Angebot an Web-Frameworks groß ist, liegt die Zielsetzung im ditten Teil des Whitepapers demnach in der Identifizierung eines passenden Angebots, welches es einerseits ermöglicht moderne und leicht bedienbare Frontends zu erstellen, sich andererseits aber auch in den Bereichen Middleware und Technologiestandards in Ihre IT-Strategie einfügt und damit einen nachhaltigen Mehrwert bietet. Dabei stehen in der Praxis eine Vielzahl von Frameworks zur Verfügung, die eine erste Vorauswahl oft alles andere als einfach machen. Hier ist es zielführend vor der technologischen Betrachtung einige grundsätzliche Fragestellungen zu beantworten und erst im zweiten Schritt die spezifischen Besonderheiten der einzelnen Rahmenwerke unter Beachtung der jeweiligen Zielsetzung und der gesamten IT-Strategie des Unternehmens näher zu analysieren. Abb 1: Technologien und Frameworks im Überblick 3 Open Source und Standards Open Source im Unternehmen Abhängigkeit von Herstellern Beim Thema der Nutzung von Open Source Komponenten in Unternehmen scheiden sich oft die Geister. Dies beginnt bei generellen Diskussionen zur Wertigkeit, Stabilität und Sicherheit von Open Source Technologien und endet oft bei Themen wie Support und langfristige Weiterentwicklung der OpenSource Komponenten, um die Investitionssicherheit gewährleisten zu können. Open Source Frameworks bieten generell den Vorteil, die Abhängigkeit von einzelnen Herstellern zu minimieren und dadurch Flexibilität zu schaffen, die sich langfristig auch in sinkenden Kosten niederschlagen kann. In der Gesamtbetrachtung etablieren sich oft Kombinationen aus proprietären Anwendungssystemen der etablierten Hersteller wie z.B. Oracle, die sich heute oft homogen mit Open Source Technologien kombinieren lassen. Dabei sind in letzter Zeit zwei grundsätzliche Trends zu beobachten: Zum einen werden Frameworks, die anfangs als kostenpflichtige Produkte in den Markt eingetreten sind für die Weiterentwicklung als Open Source freigegeben. Andererseits kommt es zu Übernahmen von Open Source Plattformen durch große Anbieter wie zum Beispiel Oracle oder VMWare. Dabei wird in den seltensten Fällen die Open Source Entwicklung des Produktes eingestellt, vielmehr gibt es kostenpflichtige Versionen, die einen umfassenden Support beinhalten und somit die Philosophie der Open Source Gemeinde mit den Vorteilen eines kostenpflichtigen Supports kombinieren. Open Source Technologien sind dabei heute weit von Spielwiesen technikaffinier Programmierer entfernt und haben sich bereits in vielen Bereichen, vor allem auch bei Großkonzernen etabliert. Durch die Unabhängigkeit von den Strategien großer Anbieter entstehen oft Innovationen, die erst viel später auch in kommerzielle Applikationsframeworks zur Anwendung kommen. Dadurch besteht die Möglichkeit bereits frühzeitig Funktionalitäten einzusetzen, die oft aus dem Web 2.0 bereits bekannt sind aber in kommerziellen Lösungen auf Grund der längeren Releasezyklen noch nicht zur Verfügung stehen. Die Frage nach Abhängigkeiten und Standards Wurde bisher nach den größten Vorteilen bei der Nutzung von Open-Source Technologien gefragt, war die Unabhängigkeit von einzelnen Herstellern eines der Hauptargumente, mit denen Open Source Plattformen punkten konnten. Dagegen argumentierten die etablierten Hersteller mit der Einhaltung von Industriestandards. In letzter Zeit hat sich hier aber ein Trend entwickelt, der vor allem in der Übernahme von Sun durch Oracle begründet liegt. Java ist seitdem auch und vor allem bei Oracle die Basis jeder Plattform. Darüber hinaus wurden auch klassische Open Source Produkte wie MySQL im Bereich der Datenbanken oder GlassFish im Umfeld der Application-Server in das Produktportfolio aufgenommen und sowohl als Open Source und parallel als Version mit kostenpflichtigen Support weitergeführt. Die Grenzen zwischen Open-Source und kommerziellen Angeboten gehen ineinander über, weshalb sich Technologien etablieren, die sowohl die Unabhängigkeit der Open Source Gemeinde bieten, aber auch den bezahlten Support und die Industriestandards der großen Hersteller beinhalten. Vor allem Oracles Application Development Framework (ADF) bietet hier den besten Kompromiss aus einem Java-Kern und einer vollständigen Integration in alle bestehenden Industriestandards und ist daher oft die erste Wahl bei einem finalen Vergleich der einzelnen Web-Frameworks. 4 Frontendtechnologien im Vergleich - Fat Client Fat-Client Bei der Entwicklung von Webapplikationen steht die Auswahl der richtigen Frontendtechnologie häufig an erster Stelle. Oberstes Ziel ist es, die gewohnte Usability auch in die Webanwendungen zu portieren und damit den Anwendern eine einfach zu bedienende Anwendung zur Verfügung zu stellen, die den Schulungs- und Einarbeitungsaufwand minimiert. Dabei gibt es heute drei etablierte Frontend-Modelle, die sich grundlegend unterscheiden Frontend Fat Client (Eclipse RCP, .NET, Java Webstart) Rich Internet Applictaions (Adobe Flex, Silverlights, JavaFX) Web Frameworks (JSF/ADF Faces, GWT,ZK,...) Abb 2: Übersicht der drei grundlegenden Frontendmodelle Fat Client In Fat-Client Modellen ist es nötig, eine Anwendung auf den Clients der Anwender zu installieren, was grundsätzliche Nachteile mit sich bringt, die vor allem dadurch entstehen, dass jeder Rechner mit den jeweiligen Anwendungen zu bestücken ist und dadurch ein dezentraler Zugriff von Rechnern außerhalb des Firmennetzes immer mit zusätzlichem Aufwand verbunden ist. Darüber hinaus ergeben sich bei Versionswechseln oftmals Inkompatibilitäten, die erst mühsam mittels Updates der Clients zu beseitigen sind. Diese Philosophie widerspricht aber den grundsätzlichen Paradigmen moderner Webapplikationen, die einfach zu warten und vor allem auch unabhängig vom Betriebssystem von überall aus zu erreichen sind. Aus diesen Gründen sollte das Fat Client-Konzept im Rahmen der Frontend-Auswahl für Webapplikationen nicht in die engere Auswahl genommen werden. Frontend Fat Client NICHT OPTIMAL Rich Internet Applictaions ADOBE FLEX Web Frameworks JSF/ADF FACES Abb 3: Übersicht der drei grundlegenden Frontendmodelle 5 Frontendtechnologien im Vergleich - RIA Rich Internet Applications Im Mittelpunkt der sogenannten Rich Internet Applications steht die Portierung von Features, die sonst nur in Desktop-Anwendungen zur Verfügung stehen, in originäre Webanwendungen. Prominentestes Beispiel ist hierbei sicher die Funktion „Drag & Drop“, die heute jeder Benutzer täglich anwendet, welche aber in den meisten Webapplikationen nicht zu finden ist und dadurch eine Umstellung der Benutzer beim Wechsel zwischen unterschiedlichen Anwendungen bedingt. Rich Internet Applications schließen diese Lücke und lassen die Grenze zwischen Desktop und Web verschwimmen. Mit dem von Adobe angebotenen Adobe Flex steht ein RIA-Framework mit unzähligen Möglichkeiten zur Verfügung, welches es gerade für umfangreiche Produkte, die als „Software-as-a-Service“ (SaaS) angeboten werden, prädestiniert. Dabei sind die Integration von Echtzeit-Kommunikation oder der hohe Bedienkomfort nur zwei Beispiele, die esentri auch in seinem eigenen Produkt „Social PM“ nutzt. Einer der größten Nachteile liegt bei Flex, trotz überragender Frontent-Möglichkeiten in der Komplexität, die jedes Flex-Projekt in sich birgt. Bei der Entwicklung von Unternehmensanwendungen, vor allem im Rahmen des Rapid Application Development, spricht genau diese Komplexität gegen den Einsatz von Flex und anderen RIA-Frameworks: Die Entwicklung der Oberflächen ist in Summe zu komplex und jede Anpassung mit großem Aufwand verbunden. Daher scheiden aufwendige RIA-Entwicklungen für dynamische und agile Projektvorhaben aus! Gerade wenn die Unternehmensprozesse einem ständigen Wandel unterliegen und dementsprechend auch die Applikationen einer laufenden Anpassung unterworfen sind, müssen die Rahmenwerke eine schnelle und einfache Änderung ermöglichen. Was für im Internet angebotene SaaS–Applikationen wie „Social PM“ ein echter Vorteil für das „Look&Feel“ und die Usability ist, spricht gerade bei der dedizierten Entwicklung von Business Anwendungen grundsätzlich gegen einen Einsatz von Flex und vergleichbaren Frameworks. Vor- und Nachteile der Technologien RIA mit ADOBE FLEX + Echtes Desktop Feeling + Keine große Umstellung für Benutzer + Hoher Bedienkomfort (F-Tasten Nutzung...) + Browserunabhängigkeit + Möglichkeit von Echtzeit-Kommunikation + Integration von Chat, Screensharing + Offline Funktionalität für Außendienst + Sehr gute Anbindung an Java Middleware - Browser-Plugin notwendig - Abhängigkeit von Adobe, kleine Community - Keine Portlet Integration (JEE Standart) - anspruchsvolle Technologie, z.T. sehr aufwendig - Komplexität durch „Low Level“ Development 6 Abb 4: Vor und Nachteile ADOBE FLEX Frontendtechnologien im Vergleich - Web Frameworks Web-Frameworks Web-Frameworks sind heute aus dem Rapid Application Development nicht mehr wegzudenken. Sie bieten viele Funktionen der Rich Internet Applications, kombinieren diese aber mit einer überschaubaren Komplexität. Durch vorgefertigte Komponenten und Bausteine ist die Entwicklung und laufende Anpassung der Applikationen schnell und unkompliziert möglich. Gerade agile Projekte, die auch den Anwender bei der Konzeption und in die laufende Entwicklung mit einbeziehen, profitieren dadurch. Die dabei entstehenden Frontends zeichnen sich durch ein modernes und zeitgemäßes „Look and feel“ aus. Die Einarbeitung der eigenen Entwicklungskapazitäten kann dabei im Rahmen der Projektumsetzung in der Regel „on-the-job“ erfolgen, was auch die laufende Pflege durch eigene IT-Ressourcen ermöglicht und somit im Rahmen der langfristigen IT-Strategie des Unternehmens zu positiven Effekten führt. Dabei machen eine große Bandbreite an verfügbaren Frameworks und ein als generell undurchsichtiger anzusehender Markt bereits die Vorauswahl der in Frage kommenden Lösungen mehr als kompliziert. Deshalb ist die Abwägung der Vor- und Nachteile im Rahmen von einigen Fragestellungen nötig, die am Ende die Auswahl des richtigen Frameworks für die jeweiligen speziellen Anforderungen ermöglicht und somit die Gefahr einer Fehlentscheidung minimiert. Vor- und Nachteile der Technologien Web Frameworks JSF 2.0 ADF Faces 11g + Entwicklung komplett im JEE Standart + Perfekt für beliebige Endgeräte/Frontends + Große weltweite Community + Open Source Lösungen möglich + Portlet Integration im JEE Standart + ADF Hervorragende SOA-Integration + ADF Strategisches Produkt im Oracle-Stack + ADF Hohe Entwicklungsgeschwindigkeit - Hoher Aufwand bei speziellen Anforderungen - Viele Open Source Frameworks zur Auswahl - z.T. fehlender Komfort verglichen mit Forms - größere Umstellung der Endbenutzer - ADF Teamwork und agile Entwicklungen Abb 4: Vor und Nachteile ADOBE FLEX 7 Web-Frameworks - Auswahlkriterien Die wichtigsten Fragestellungen bei der Auswahl eines geeigneten Web-Framworks Um einen objektiven Vergleich der am Markt als etabliert geltenden Frameworks zu ermöglichen, muss eine ganzheitliche Betrachtung der angestrebten Lösung vorgenommen werden. Dafür ist es einerseits wichtig, die IT-Strategie und die bestehenden Systeme, in welche sich die neue Anwendung einbetten soll, genauer zu analysieren. Zusätzlich muss der Kontext, in dem die Applikation später verwendet wird, näher betrachtet werden, da in Abhängigkeit der späteren Benutzer und der zu berücksichtigen Geschäftsprozesse die Stärken und Schwächen der gängigen Frameworks an Gewicht gewinnen. Obwohl heute im JEE-Standard schon sehr viele vereinfachende Konzepte enthalten sind, werden viele Java Enterprise Anwendungen auf Basis von Frameworks oder proprietären Lösungen wie Oracle Application Express entwickelt. Die Entwickler haben dabei die Qual der Wahl und müssen sich zwischen verschiedenen Ansätzen und Alternativen entscheiden. Dabei haben sich in letzter Zeit vor allem drei Frameworks etabliert. Dieses Whitepaper beschäftigt sich mit diesen Fragestellungen und gibt Entscheidungshilfen zu den drei ausgewählten Frameworks für die Praxis. Zum besseren Verständnis werden im Folgenden die Grundlagen und Schwerpunkte herausgestellt. Zentral sind dabei insbesondere folgende Fragestellungen, die sich in Abhängigkeit des jeweiligen Anwendungsfall in ihren Ergebnissen deutlich unterscheiden: 8 • wie schnell kommt man zum Ergebnis? • eignet sich das Framework für den konkreten Anwendungsfall? • wie hoch ist die Lernkurve? • wie gut werden gängige Standards unterstützt? • wie flexibel ist die Lösung? • lässt sich das Framework mit anderen Technologien kombinieren? • welche Oberflächentechnologien passen zum Framework? • ist die Lösung ausgereift, gibt es Support und eine gute Dokumentation? ADF - der Oracle Standard ADF - produktiv mit Oracle im Standard Oracle hat mit ADF und der perfekten Integration in die IDE „JDeveloper“ Maßstäbe bei der JEE Entwicklung gesetzt. Seit geraumer Zeit können mit dem Oracle ADF Framework produktiv und konform zum JEE Standard komplexe Webanwendungen realisiert werden. Der Hauptvorteil von ADF liegt in der Toolunterstützung und der Integration in den Oracle Technologiestack. Dies gilt insbesondere für die Möglichkeit, die komplette Persistenzschicht für bestehende Datenbankstrukturen zu generieren und mittels Data Bindings entsprechende Oberflächen per Drag & Drop zu designen. Die generelle Herangehensweise lehnt sich an der Entwicklung von Forms Anwendungen an und bietet zunächst auch unerfahrenen Java Entwicklern die Möglichkeit, aufwendige JEE Anwendungen zu implementieren. Browser / Mobile Devices Desktop Swing Office JSP JSF Metadata Services Struts ADF Faces JSF/ADFc Relational Data EJB BAM Portlet Toplink XML Data BPEL JCR Controller Model ADFm (JSR 227) Java View Web Services JMX Legacy Data ADF BC BI Business Services XML Packaged Apps Abb. 5: Die Architektur von Oracle ADF 9 ADF - der Oracle Standard Gerade die Implementierung der Geschäftslogik (Business Services) ist bei JEE Anwendungen extrem wichtig und oft ein Auswahlkriterium für ein Framework. ADF bietet von Haus aus die Möglichkeit viele Standardtechnologien einzubinden. Neben den ADF Business Components können Enterprise Java Beans, Web Services oder einfache Java Klassen verwendet werden, was eine saubere Trennung zwischen der Geschäftslogik und dem Frontend ermöglicht. Oracle setzt dabei auf den JSR 227 Standard und das Konzept der Data Bindings, um von der konkreten Implementierung der Services zu abstrahieren. Dabei achtet Oracle darauf, dass ausschließlich gängige Standards verwendet werden. Die Entscheidung, welche Technologie im konkreten Projekt zum Einsatz kommt, trifft der Entwickler (Development by Choice). Trotzdem wird ADF außerhalb der Oracle Community kaum verwendet. Die Gründe hierfür sind vielfältig, z.B.: • ADF ist nicht für alle Application-Server kostenlos verfügbar • die Abhängigkeit von den Oracle Bibliotheken wird z.T. als zu groß eingeschätzt • erfahrenen Java Entwicklern wird tendenziell zu viel generiert • Standardanforderungen sind zwar einfach umzusetzen, spezifische Anforderungen erfordern jedoch tiefgreifende Kenntnisse über den internen Aufbau von ADF • Testbarkeit von ADF Anwendungen ist z.T. schwierig Das Framework ist dennoch sehr ausgereift und Großprojekte wie z.B. die Oracle Fusion Applications zeigen, wie effektiv sich neue JEE Anwendungen mit Oracle ADF entwickeln lassen. Flexibilität hoch + Optimale Lösung für Oracle nahe Java EE Projekte + Kurze Entwicklungszeit (4GL), Drag & Drop + Starke Oberflächen- und Portaltechnologien + Ausgefeilte IDE, erprobtes Framework + Generierung (z.B. WebServices) + Strategisches Produkt bei Oracle Oracle ADF - Hohe Lizenzkosten, kein Open Source - Abhängigkeiten JDeveloper/Oracle - Anbindung an „restliche“ JEE Welt z.T. aufwendig - Entwicklungsdauer steigt überproportional mit Komplexität - Dokumentation und Support gut, jedoch weit verstreut - Viel generierter Code, Schwierigkeiten beim Teamwork - Schwächen bei agiler Vorgehensweise Entwicklungsgeschwindigkeit gering langsam Abb. 6: Vor und Nachteile Oracle ADF 10 schnell Spring - Flexibel mit Open Source Spring - flexible Open Source Alternative Mit dem Open Source Framework Spring steht ein einfach verständliches, konsistentes Programmier- und Konfigurationsmodell als Alternative zur Verfügung. Dabei ist es besonders leichtgewichtig und kommt ohne große Abhängigkeiten aus. Viele Vorteile des Spring Frameworks sind inzwischen aber auch im JEE 6 Standard enthalten und es bleibt die Frage, wann sich der Einsatz des Spring Frameworks lohnt. Schließlich wird der Marktführer im Open Source Umfeld weltweit von Millionen Entwicklern eingesetzt und als weiteres Indiz für den großen Erfolg wurde Springsource 2009 für 420 Mio. Dollar von der Firma VMWare gekauft. Spring AOP Spring ORM Spring Web Hibernate support iBatis support JDO support WebApplicationContext Multipart resolver Web utilities Web MVC Frameworks Source-level metadata AOP infrastructure Spring Web MVC Spring DAO Transaction infrastructure JDBC support DAO support Spring Context Application context Web Views JSP / Velocity PDF / Excel UI support, Validation JNDI,EJB support & Remoting Mail Spring Core Supporting utilities Bean container Abb. 7: Die Hauptkomponenten des Spring Frameworks 11 Spring - Flexibel mit Open Source Von Anfang an verfolgten die Erfinder von Spring das Ziel, dem Entwickler möglichst viel Flexibilität einzuräumen. Je nach Anwendungsfall können alle Module des Spring Frameworks verwendet werden oder nur Teile davon. Der Grundgedanke dabei geht allerdings weiter wie bei ADF, das eher auf die End-to-End Programmierung ausgelegt ist. Spring ist vielmehr eine echte Integrationsplattform, die hohen Wert auf die Austauschbarkeit einzelner Frameworks legt. So kann man in Spring innerhalb kürzester Zeit die Persistenzschicht austauschen und beispielsweise iBatis anstatt Hibernate einsetzen. Gleiches gilt für die Anbindung des Frontends und der dort verwendeten Technologien. Egal ob man sich entscheidet mit JSP, JSF oder Adobe Flex Benutzeroberflächen zu realisieren – Spring hat die passenden Konzepte dafür bereits vorgesehen. Diese Flexibilität wird von vielen Entwicklern weltweit geschätzt und garantiert Unternehmen eine hohe Investitionssicherheit. So ist es nicht verwunderlich, dass sich immer mehr Unternehmen dazu entscheiden, große Teile ihrer Java Projekte mit Spring zu realisieren, zumal Spring Projekte grundsätzlich auf beliebigen Application Servern ausgeführt werden können. Flexibilität hoch Spring Framework + Spring ist Open Source, Support verfügbar - Mehr „Handarbeit“ nötig + Hohe Flexibilität, wenig Abhängigkeit - Kein klassisches RAD Framework + Große weltweite Community - zunehmende Komerzialisierung + Komplexe Projekte bleiben beherrschbar - Komplexität durch „Low Level“ Development + Viele Open Source Projekte achten auf - Relativ hohe Rüstzeit Spring Integration + Spring Roo als Beschleuniger Entwicklungsgeschwindigkeit gering langsam Abb. 8: Vor und Nachteile des Spring Framework 12 schnell Grails - Die Skriptsprache für Java Grails - Die Skriptsprache für Java Grails (Groovy on Rails) ist ein erweitertes und innovatives Rapid Application Framework, das auf den Sprachkonstrukten von Groovy und Ruby on Rails beruht. Grails basiert auf verschiedenen Prinzipien und Konzepten, die es dem Framework ermöglichen Entwicklungszeit einzusparen und Code zu vereinfachen. Es eignet sich daher hervorragend für kleinere Projekte, da es Entwicklern einen sehr schnellen Einstieg in die JEE Entwicklung ermöglicht. Als Basis nutzt Grails die etablierten Java Frameworks Spring, Spring MVC, Hibernate und SiteMesh. Das Ergebnis ist somit immer Java Bytecode und Anwendungen sind dadurch auf jedem gängigen Application Server lauffähig. Die Open Source Quellcodes werden inzwischen von SpringSource gepflegt und stehen indirekt auch in Konkurrenz zum Spring-eigenen Rapid Application Framework Roo. Grails Hibernate Java Language Sitemesh JEE Groovy Spring Java Development Kit (JDK) Java Virtual Machine Abb. 9: Bestandteile von Grails Der Grundaufbau von Grails basiert auf dem MVC-Pattern (Model-View-Controller), das in Grails mit Domainklassen, Controllerklassen und Groovy Server Pages (GSP) umgesetzt wird. Prinzipiell ist es aber auch möglich andere Oberflächentechnologien wie Adobe Flex in der View einzusetzen. 13 Grails - Die Skriptsprache für Java Die Domainklassen (Model) sind der Kern der Anwendung und bilden das Geschäftsmodell ab. Domainklassen sind persistent und entsprechen einer physischen Tabelle in der Datenbank. Der wesentliche Vorteil von Grails ist es, Konventionen vor die Konfiguration (Convention over Configuration) zu stellen. Damit wird der Konfigurations- und Entwicklungsaufwand deutlich reduziert. Durch ein ausgefeiltes Plugin-Konzept können Grails Anwendungen zudem schnell durch vordefinierte Funktionen erweitert werden. Grails ist eine Plugin-Laufzeitumgebung, die Standardplugins (z.B. GORM) umfasst und andere Plugins lädt und konfiguriert. Grails-Plugins an sich sind kleine Grailsanwendungen, die in andere Applikationen eingebunden werden und dabei alle relevanten Konfigurationen zusammenführen. Durch diese bei Grails verwendeten Konzepte ist vor allem die agile Entwicklung von Applikationen im Fokus. Dabei entstehen in kürzester Zeit lauffähige Applikationen mit einem begrenzten Funktionsumfang, die dann Schritt für Schritt erweitert oder angepasst werden. Dadurch können auch die Benutzer der Fachabteilungen im Rahmen der Anforderungsspezifikation tieferi in die technische Umsetzung einbezogen werden und erhalten, anders als bei klassischen Vorgehensmodellen, in kurzen Zeitabständen die ersten lauffähigen Versionen der neuen Applikation. Eine laufende und dynamische Anpassung der Entwicklung kann dabei als wesentlicher Vorteil von Grails in Kombination mit agilen Entwicklungsmethoden gesehen werden. Flexibilität hoch + Schnelle Ergebnisse + Groovy ist sehr mächtig & intuitiv + Agilität / Scaffolding + Closures + AJAX Unterstützung + Umfangreiche Plugins verfügbar + Nutzt Spring MVC und bewährte Projekte + DRY Prinzip & wenig Code Grails - Verhältnismäßig junge Technologie - Performance - Dokumentation, relativ kleine Community - Komplexere Anforderung - Akzeptanz bei Kunden Entwicklungsgeschwindigkeit gering langsam Abb. 10: Vor und Nachteile Grails 14 schnell APEX - Webanwendungen direkt auf der Datenbank APEX – Application Express von Oracle Neben den bereits genannten Frameworks, die alle auf gängigen Java Standards basieren, hat sich gerade in der Oracle Welt mit Application Express (APEX) eine vielversprechende Alternative für das Rapid Web Application Development entwickelt. Was ursprünglich unter dem Namen HTML DB als kleines Projekt begann, ist heute bei vielen unserer Kunden im Einsatz und erfreut sich wachsender Beliebtheit. Die gute Resonanz gerade aus agilen Projekten kommt dabei nicht von ungefähr, denn APEX hat gerade in Datenbank-orientierten Unternehmen, die bereits mit Oracle arbeiten herausragende Alleinstellungsmerkmale zu bieten, die gerade für Teams mit vorhandenem PL/SQL Know-How interessant sind. Web Listener (Apache & mod_plsql/EPG) Web Browser Applictaion Express Meta Data Abb. 11: Aufbau der APEX Architektur 15 APEX - Webanwendungen direkt auf der Datenbank Oracle Application Express setzt direkt auf der Datenbank auf und die Webanwendungen werden komplett durch PL/SQL Funktionen generiert. So können die Vorteile der Oracle Datenbank gerade bei datenintensiven Applikationen direkt genutzt werden ohne neue Programmiersprachen zu lernen. Besonders interessant ist dabei, dass keine Entwicklungsumgebung installiert werden muss, sondern APEX Anwendungen direkt im Browser entwickelt werden. Dadurch wird die Geschwindigkeit, mit der Ergebnisse erzeugt werden können, drastisch erhöht und es besteht zu jedem Zeitpunkt die Möglichkeit eine lauffähige Version zu präsentieren. Unterstützt werden die Entwickler dabei durch viele durchdachte Assistenten, die es auch Anfängern ermöglichen in kurzer Zeit komplexe Webanwendungen zu erstellen. Zwar wird mit PL/SQL ein proprietärer Standard verwendet, jedoch ergeben sich dabei auch enorme Vorteile für Firmen, die ihre technologische Ausrichtung ohnehin im Oracle Umfeld haben oder beispielsweise Oracle Forms ablösen möchten ohne einen komplett neuen Technologiestack erlernen zu müssen. Wertvolle Geschäftslogik in Form von PL/SQL kann somit nämlich auch für Webapplikationen effektiv genutzt werden, ohne dabei den „teuren Weg“ über Web Services und SOA zu gehen. Diese lassen sich zwar auch nutzen, jedoch ist APEX nicht als Integrationsplattform zu sehen, die im Rahmen einer SOA Strategie verwendet werden sollte, sondern vielmehr als Werkzeug, mit dem sich datenzentrierte Applikationen in Rekordzeit entwickeln lassen. 16 Zusammenfassung ADF & Spring sind ausgereifte Frameworks, das sich hervorragend für JEE Projekte eignen. Während Oracle mit ADF vor allem auf standardisierte Entwicklung setzt, steht bei Spring die Flexibilität und Erweiterbarkeit im Vordergrund, die in vielen Projekten entscheidend sein kann. Grails ist ein junges Framework, mit dem sehr schnell einfache JEE Anwendungen erstellt werden können. Durch die Übernahme von Sun und die damit verbundene strategische Positionierung von Java als zentraler Kern der zukünftigen Produkte hat sich vor allem Oracle in letzter Zeit als Markteilnehmer etabliert, der die Produkte der Open-Source Bewegung nahtlos in Industriestandards integriert und somit die Investitionssicherheit als auch die Flexibilität für die Kunden in den Vordergrund stellt. Dabei hat sich Oracle APEX bei der Entwicklung kleinerer Anwendungen mit einer überschaubaren Komplexität als eines der wichtigsten und erfolgreichsten Werkezeuge im Markt etablieren können. Durch ein in vielen Unternehmen bereits vorhandenes Know-How in der Anwendung von PL/SQL stellt APEX eine echte Alternative für die schnelle und agile Entwicklung dar. Komplexität Flexibilität gering hoch hoch Spring Framework Oracle ADF Grails Apex Entwicklungsgeschwindigkeit gering langsam schnell Abb. 12: Vergleich Oracle ADF, Spring Framework,Grails,Apex Wächst die Komplexität der umzusetzenden Lösungen bietet Oracle ADF, welches voll und ganz auf die Java-Standards setzt, ein breites Sepktrum an Möglichkeiten an. Vor allem die nahtlose Integration in SOA-Umgebungen macht dabei Oracle ADF zur ersten Wahl. Dabei setzt Oracle auch bei der Entwicklung seiner Fusion Applications und den WebCenter Komponenten auf ADF. Somit ist die Entwicklung und Integration aller Frontends im Unternehmen in einen einheitlichen Standard in greifbarer Nähe. 17 Zusammenfassung Gerade die Trends hin zum sogenannten Enterprise 2.0, welches interne und externe Kommunikation im Stile sozialer Netzwerke erlaubt und zudem Portale für Kunden, Lieferanten und interne Zwecke kombiniert, stellt an Unternehmen hohe Anforderungen an die Integration von Prozessen und Oberflächen, welche mit ADF erfolgreich umgesetzt werden können. Zusätzlich besteht auch die Möglichkeit der kombinierten Nutzung von ADF und Spring, wobei ADF hier als Plattform dient und somit eine Kombination beider Technologien im Unternehmen ermöglicht. Letztenendes ist vor allem der Gesamtkontext bei der Auswahl des richtigen Frameworks entscheidend. Hier spielt vor allem die IT-Strategie des Unternehmens eine wichtige Rolle. Weiterhin ist zu beachten, ob es zukünftig eine Entwicklung hin zu Service-orientierten Architekturen geben wird, was den Integrationsaspekt in den Mittelpunkt der Entscheidung bei der Framework-Auswahl rückt. Dabei haben die Oracle Technologien APEX und ADF in letzter Zeit meist den besten Kompromiss bieten können, vor allem weil hiermit neben der Einhaltung von Industriestandards auch die Berücksichtigung von Open-Source Komponenten möglich ist und die klare Positionierung hin zu Java seitens Oracle eine breite Variation an zukünftigen Möglichkeiten bietet, ohne in die Gefahr zu laufen eine proprietäre IT-Insel zu schaffen. 18 Enterprise Weblication development made easy Weitere Fragen ? Sollten Sie weitere Fragen zur Auswahl der für Sie maßgeschneiderten Technologie und eines leistungsfähigen und flexiblen Webframeworks haben, stehen Ihnen die Experten von esentri jederzeit gerne zur Verfügung. esentri Weblication Workshop Um alle Vor- und Nachteile der einzelnen im Whitepaper dargestellten Technologien speziell auf Ihre Anforderungen auslegen zu können, bieten wir Ihnen einen speziellen Workshop an. Hier nehmen wir den Gesamtkontext Ihrer Anforderungen auf und präsentieren Ihnen nach ausführlicher Analyse der prozessualen und technischen Anforderungen eine für Sie maßgescheiderte Lösung. Hierbei profitieren Sie von der Expertise unserer Oracle- und Open Source Experten, die über viele Jahre umfangreiche Projekterfahrungen gesammelt haben. Fragen Sie uns einfach nach einem individuellen Angebot!