Status Quo Java Open Source Applikationsserver Frank Pientka, Dortmund, 9.10.2012 MATERNA GmbH 2012 www.materna.de 1
Agenda Vorstellung Materna, Person Softwareentwicklung heute Wo steht Java EE? OpenSource JavaEE Applikationsserver Migrationswege und Möglichkeiten Ausblick und Fazit MATERNA GmbH 2012 www.materna.de 2
MATERNA-Unternehmensgruppe Dr. Winfried Materna Helmut an de Meulen Bremen Hamburg Berlin FI Gesellschafter DK S Dortmund Düsseldorf Dresden GB NL CH D I CZ A PL SK RO BG Heidelberg Bad Vilbel Göppingen Erlangen München 155 Mio. Umsatz 2011 1.300 Mitarbeiter Gegründet 1980 Lünendonk TOP 17 2011 MATERNA GmbH 2012 www.materna.de 3
Vorstellung des Referenten: Frank Pientka Dipl.-Informatiker (TH Karlsruhe) Senior Architekt in Dortmund isaqb-gründungsmitglied heise.de/developer/federlesen-kolumne Über 10 Jahre Erfahrung mit Java und Middleware Veröffentlichungen und Vorträge zu: Datenbanken, Applikations- und Portalservern MATERNA GmbH 2012 www.materna.de 4
Wie entwickelt sich Software mit der Zeit? JDK 1.0 (1996, 8 Packages, 212 Classes) JSE 7.0 (2011, 209 Packages, 4024 Classes) JSE 8.0 (2013, x Packages, y Classes) Das Cobol des 21. Jh? Wie viele Codezeilen 2017? Wie wird Komplexität beherrschbarer? 2010 1996 2003 1989 1989 1975 1986 http://users.jyu.fi/~koskinen/smcosts.htm MATERNA GmbH 2012 www.materna.de 5
JavaEE Generationen Anzahl zertifizierte Server 15 (5 OS) 11 (4 OS)/ 6(5 OS) 29 24 (3 OS) J2EE 1.4 Webservice JavaEE 5 Ease of Development POJOs JavaEE 6 Rightsizing Dependency Injection 20 J2EE 1.2 Enterprise Java Platform J2EE 1.3 Robustness 5 (4 OS) Web Profile December 1999 September 2001 November 2003 March 2005 December 2009 MATERNA GmbH 2012 www.materna.de 6
JavaEE einiges wird einfacher Seitenanzahl Anzahl SPECS nimmt zu Quelle: www.eisele.net MATERNA GmbH 2012 www.materna.de 7
JavaEE gestern und heute J2EE 1.2-1.4 1999 2004 Monolith 13 Jahre JavaEE JEE 5.0-7.0 2005 heute Modular MATERNA GmbH 2012 www.materna.de 8
Java-Applikationsserver sind bedroht MATERNA GmbH 2012 www.materna.de 9
Modularität statt Monolithen gefragt Foto: Ehapa MATERNA GmbH 2012 www.materna.de 10
System in Module zerlegen Modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. (On the Criteria To Be Used in Decomposing Systems into Modules, D.L. Parnas, December 1972) MATERNA GmbH 2012 www.materna.de 11
Makro- vs. Mikro-Kernel Microkernels have won. The only real argument for monolithic systems was performance. (Andrew Tanenbaum, 1992) MATERNA GmbH 2012 www.materna.de 12
OpenSource Applikationsserver: Überblick Apache Tomcat (Jakarta, SUN RI- Servlet-Webserver, ASL): 1999, 3.0 7.0 JBoss AS (org, com, RedHat, LGPL): 2001, 3.0 7.1 GlassFish (Sun, Oracle, CDDL, GPLv2 ): 2005 1.0 3.1 Apache Geronimo (ASL, IBM WAS CE): 2005 1.0 3.0 MATERNA GmbH 2012 www.materna.de 13
Überblick über Lizenzmodelle ASL 2.0 LGPL 2.1 ILAN CDDL 1.0 Lizenzart Apache Software Lizenz GNU Lesser General Public License International License Agreement for Non- Warranted Programs Common Development and Distribution License Deutsch JA JA Copyleft- ohne beschränkt ohne beschränkt Effekt MATERNA GmbH 2012 www.materna.de 14
Vergleich der Codezeilen: ohloh.net MATERNA GmbH 2012 www.materna.de 15
Gartner Magic Quadrant for Enterprise Application Servers 2011 MATERNA GmbH 2012 www.materna.de 16
Apache Tomcat Am weitesten verbreiteter Servlet-Container Niemals JavaEE-zertifiziert Spartanische GUI, Doku Lange Release-Zyklen, kein Support Manuelle Erweiterungen nötig TomEE Mit Heraku, Elastic Beanstalk in die Cloud TomEE für JavaEE6-Profil zertifiziert, 1.5 mit JAX-RS, Plus http://tomee.apache.org/comparison.html MATERNA GmbH 2012 www.materna.de 17
Tomcat, TomEE, OpenEJB Vergleich Tomcat TomEE TomEE JAXRS TomEE+ OpenEJB Java Servlets X X X X Java ServerPages (JSP) X X X X Java ServerFaces (JSF) X X X Java Transaction API (JTA) X X X X Java Persistence API (JPA) X X X X Java Contexts and Dependency Injection (CDI) Java Authentication and Authorization Service (JAAS) X X X X X X X X Java Authorization Contract for Containers (JACC) X X X X JavaMail API X X X X Bean Validation X X X X Enterprise JavaBeans X X X X Java API for RESTful Web Services (JAX-RS) X X X Java API for XML Web Services (JAX-WS) X X Java EE Connector Architecture X X Java Messaging Service (JMS) X X MATERNA GmbH 2012 www.materna.de 18
Apache Geronimo Versionen Kurzüberblick Projekt im August 2003 gestartet J2EE 1.4 JEE 5.0 JEE 6.0 Geronimo 1.0 Geronimo 1.1 Geronimo 2.0 Geronimo 2.1 Geronimo 2.2 Geronimo 3.0 2006 2007 2008 2009 2012 MATERNA GmbH 2012 www.materna.de 19
Geronimo fertige Assemblies schlanke Software WAS CE Big-G WEB- Profile Little-G Micro-G Eigenes Paket Nur soviel, wie nötig MATERNA GmbH 2012 www.materna.de 20
Apache Geronimo + stabiles, schlankes und gut anpassbares Produkt mit ausgereiften Best-Of-Breed-Komponenten + gute IDE-, BUILD-Integration + Langzeitsupport + gute Mitwirkungsmöglichkeit, jedoch kleine Community + regelmäßige Release auch für Vorgängerversionen + hybride Version für OSGi, Jetty/Tomcat, CXF, Axis2 - wenig Dokumentation, Beispiele + kleinstes Produkt mit 74-91MB + sehr freie ASF-Lizenz MATERNA GmbH 2012 www.materna.de 21
Apache Geronimo, TomEE Zertifiziert und ausgereifte Technologien Gute GUI, schlechte Doku Gute Verbindung von JavaEE und OSGi Nischenprodukt mit hohem Potential Migrationsunterstützung Lange Release-Zyklen, Support (5+3 Jahre) MATERNA GmbH 2012 www.materna.de 22
JBoss AS neuer Name gesucht! Am weitesten verbreiteter JavaEE-Server Gute Dokumentation (7er @TODO) Veraltete Architektur & GUI bis 5.1 Späte JavaEE-Zertifizierung Migrationsunterstützung Professioneller Support MATERNA GmbH 2012 www.materna.de 23
JBoss AS Erster zertifizierter J2EE 1.4 OpenSource-Server Große Nutzergemeinde, Weiterentwicklung durch RedHat, nicht durch Community Lizenzchaos (22 Lizenzen von GPL bis MIT) Dokumentation zu unterschiedlichsten Themen Gute Integration in weitere JBoss- Produkte (Portal, ESB, DIE, OpenShift ) MATERNA GmbH 2012 www.materna.de 24
JBoss Produkte MATERNA GmbH 2012 www.materna.de 25
JBoss EAP Roadmap MATERNA GmbH 2012 www.materna.de 26
JBoss AS + gute Dokumentation + verbesserte Administrierbarkeit + gute Integration in JBoss, RedHat-Produkte + gute Cloud-Integration + gute Testbarkeit Arquillian + gute IDE-, BUILD-Integration - seltenere und unregelmäßige Release nur für aktuellste Version 0 große Community, mit wenig Mitwirkungsmöglichkeiten - relative neue Architektur - eingeschränkte Abwärtskompatibilität - Langzeitsupport nur für kommerzielle Variante (JBoss EAP 6) - größtes Produkt 103 MB MATERNA GmbH 2012 www.materna.de 27
GlassFish JavaEE-Referenzimplementierung Aktuelle Standards verfügbar Gute Dokumentation, GUI Gute Integration in ORACLE-Produkte, IDE Migrationsunterstützung MATERNA GmbH 2012 www.materna.de 28
GlassFish Roadmap GlassFish v3 Java EE 6 support Single instance GlassFish Enterprise Mgr GlassFish Server 3.1 Centralized administration Clustering / HA GlassFish Server Control GlassFish Server 3.1.2.2 Bug Fixes Incremental features 2009 2010 2011 2012 2013 GlassFish Server 3.0.1 Oracle branding Oracle platform support Oracle interoperability GlassFish Server 3.1.1 Bug fixes Updated components Incremental features GlassFish Server 4 Java EE 7 Multitenancy PaaS-enablement MATERNA GmbH 2012 www.materna.de 29
GlassFish Cluster Architektur Flexibel Skalierbar Administrierbar MATERNA GmbH 2012 www.materna.de 30
GlassFish + sehr gute Dokumentation, viele Beispiele + Cluster Support + Migrations-, Upgrade-Unterstützung + gute IDE-, BUILD-Integration + gute Administrier-, Automatisierbarkeit (GUI, CLI), LightFish Monitor + Supportmöglichkeit + aktuelle Referenzimplementierung + regelmäßige Release auch ältere mit klarer Roadmap + mittlere Produktgröße 83 MB MATERNA GmbH 2012 www.materna.de 31
Auswahlkriterien Marktrelevanz Unterstützung von Standards Lizenzart Releaseplan, -zyklen Support Dokumentation Integration in bestehende Umgebung Plattformen IDE-Integration Migrationsunterstützung Vergleichstest (SPECjAppServer-2004-, SPECjEnterprise2010-Benchmark ) MATERNA GmbH 2012 www.materna.de 32
Gesamtüberblick GlassFish JBoss Geronimo Lizenz CDDL1.1, GPL 2 LGPL 2.1 ASF Plattformen LINUX, Windows, MAC, SOLARIS, AIX LINUX, Windows LINUX, Windows, SOLARIS, AIX Version 3.1.2.2 7.1.1 3.0.0 Fazit + sehr gute Dokumentation, viele Beispiele + Cluster Support + gute IDE-, BUILD- Integration + gute Administrier-, Automatisierbarkeit + Supportmöglichkeit + aktuelle Referenzimplementierung + regelmäßige Release + gute Dokumentation + gute Integration in JBoss, RedHat- Produkte + gute Testbarkeit Arquillian + gute IDE-, BUILD-Integration + gut anpassbares Produkt mit ausgereiften Best- Of-Breed- Komponenten + frei Lizenz + Langzeitsupport + + Updates für Vorversionnen + hybride Version + OSGi EE- Bundles MATERNA GmbH 2012 www.materna.de 33
Wem würden Sie vertrauen? MATERNA GmbH 2012 www.materna.de 34
Migration und Modernisierung Es wird zu eng Der Support läuft aus Mehr Flexibilität im neuen Hause Doch wie sieht der Weg aus? MATERNA GmbH 2012 www.materna.de 35
MATERNA GmbH 2012 www.materna.de 36
Was brauche ich wirklich? ZU VIEL!!! MATERNA GmbH 2012 www.materna.de 37
Häufige Migrationsgründe: Support, Wartungskosten End-Off-Life Zyklus ORACLE JSE 6.0 Februar 2013 Hibernate 3.2 Oktober 2011 IBM WebSphere Application Server 6.1 September 2013 JBoss Enterprise Application Server 4.3 Januar 2011 JBoss Enterprise Application Server 5.x November 2013 Apache Tomcat 5.5.36 Oktober 2012 Apache Geronimo 2.1 Februar 2013 ORACLE WebLogic Server 9.x Premier November 2011 ORACLE WebLogic Server 10.3 Premier Januar 2014 ORACLE GlassFish Server 3.0.x Dezember 2014 ORACLE OC4J 10g R3 Premier Juni 2014 JavaSE 8, JavaEE 7 ist für 2013/14 geplant MATERNA GmbH 2012 www.materna.de 38
Möglichkeiten der Migration/ Modernisierung Nur das nötigste: Laufzeitumgebung aktualisieren, letztes Bug-Fix verwenden, lebenserhaltend Etwas länger: Produkt-, Versionsaktualisierung: Laufzeitverlängerung Parallelaktualisierung-/Entwicklung: Schmetterling Teil-Neuentwicklung: kleines Hühnchen Komplettablösung: Standardsoftware, Neuentwicklung: großer Elefant MATERNA GmbH 2012 www.materna.de 39
Stufen der Migration? Aufwand Infrastruktur Deployment Cluster Server Anwendung EJB IDE, Monitoring Deployment Deskriptor Wissen MATERNA GmbH 2012 www.materna.de 40
Migrationspfade Assessment Was migrieren? Planning Wie migrieren? Skills Development Environment Runtime Environment Code Migration Runtime Migration Unit Test Test Systems Test Production Review results MATERNA GmbH 2012 www.materna.de 41
Migrationsunterstützung Anleitungen Werkzeuge (Deploymentpläne, Codeanalyse, IBM WebSphere Application Server Migration Toolkit) Beispiele: Sun Pet Store 2.0 JavaEE5 Spring-to-JavaEE6: Pet Clinic Spring 2+JavaEE5 JBoss Trading Java EE 5 to Java EE 6 Migration DayTrader Migration J2EE 1.4, JavaEE5 Geronimo, WebSphere Apache Roller 5.0 RC3, Roller 5 and Java EE 6, Glassfish 3, JBoss 6, Websphere 8 JBoss Developer framework TicketMonster JEE6 Seam 2 -> Java EE 6 Spring -> Java EE 6 Java EE 5 -> Java EE 6 JBoss AS 5 or JBoss AS 6 -> JBoss AS 7 MATERNA GmbH 2012 www.materna.de 43
Fazit und Ausblick Java und OpenSource ist aus der Softwareentwicklung nicht mehr weg zu denken gut geeignet für die Herausforderungen der Zukunft JavaEE 6 hat sich gemacht und ist wieder am Ball! JavaEE 7 für Q2 2013 mit GlassFish 4.0, Tomcat 8 vorgesehen Aktuelle Applikationsserver bieten flexible, stabile und leistungsfähige Ablaufumgebungen an (OSGi-, Cloud-ready) OpenSource-Applikationsserver sind verlässliche, zertifizierte und kostengünstige Alternativen 70% aller Java-Neuanwendungen laufen 2012 auf OpenSource- Applikationsservern (meist von Apache und RedHat), die ab 2014 Cloud- Ready sind (Gartner) MATERNA GmbH 2012 www.materna.de 44
Fazit und Ausblick Modularisierung und Virtualisierung befinden sich in nächster Entwicklungsstufe, um Komplexität zu kontrollieren Für viele Projekte steht der Schritt in die Zukunft und die Bewährungsprobe noch bevor! OpenSource und Java bleiben weiter auf Erfolgskurs Java ist für die Herausforderungen der Zukunft gut vorbereitet MATERNA GmbH 2012 www.materna.de 45
Weitere Informationen Apache Geronimo: Serverhandbuch, Frank Pientka, DPunkt-Verlag, 01/09 Boss der Apachen, Frank Pientka, ix kompakt, 01/09 Geronimo lebt, Frank Pientka, JM 01/12 OpenSource Java-Anwendungsserver, Frank Pientka, JM 11/06 Status quo: GlassFish, JBoss und Geronimo, Frank Pientka, JM 12/10 Dreikampf: Eine Testfahrt mit GlassFish, JBoss und Geronimo, Frank Pientka, Java aktuell, 02/2012 MATERNA GmbH 2012 www.materna.de 46
Vielen Dank für Ihre/Eure Aufmerksamkeit! MATERNA GmbH Dipl. Inform. Frank Pientka Senior Software Architect Business Division Applications Telefon: +49 231 5599-8854 Telefax: +49 231 5599-272 E-Mail: Frank.Pientka@materna.de MATERNA GmbH 2012 www.materna.de 47