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
Bremen
Helmut an de Meulen
Hamburg Berlin Gesellschafter
FI
Dortmund
S
Dresden
Düsseldorf
DK GB
Bad Vilbel
NL
PL D CZ A
CH I
Erlangen
Heidelberg
SK
1.300 Mitarbeiter
RO BG
155 Mio. € Umsatz 2011
Göppingen München
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?
2003
2010 1989
1989
1975 1986
1996
http://users.jyu.fi/~koskinen/smcosts.htm © MATERNA GmbH 2012
www.materna.de
5
JavaEE Generationen Anzahl zertifizierte Server
15 (5 OS) 24 (3 OS) 29 20
J2EE 1.4 Webservice
JavaEE 5 Ease of Development POJOs
11 (4 OS)/ 6 (5 OS) JavaEE 6 Rightsizing Dependency Injection
J2EE 1.3 Robustness
J2EE 1.2
5 (4 OS)
Enterprise Java Platform
Web Profile December 1999
© MATERNA GmbH 2012
September 2001
November 2003
www.materna.de
March 2005
December 2009
6
Seitenanzahl
JavaEE einiges wird einfacher …
Anzahl SPECS nimmt zu
Quelle: www.eisele.net © MATERNA GmbH 2012
www.materna.de
7
JavaEE gestern und heute
13 Jahre JavaEE J2EE 1.2 -1.4 1999 – 2004 Monolith
© MATERNA GmbH 2012
JEE 5.0 -7.0 2005 – heute Modular
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 RIServlet-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
Lizenzart
Deutsch CopyleftEffekt
© MATERNA GmbH 2012
ASL 2.0
LGPL 2.1
ILAN
CDDL 1.0
Apache Software Lizenz
GNU Lesser General Public License
International License Agreement for NonWarranted Programs
Common Development and Distribution License
JA beschränkt
JA ohne
ohne
www.materna.de
beschränkt
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 TomEE X X
TomEE JAXRS X X
TomEE+ 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)
X
X
X
X
Java Authentication and Authorization Service (JAAS)
X
X
X
X
Java Authorization Contract for Containers (JACC)
X
X
X
X
JavaMail API Bean Validation Enterprise JavaBeans
X X X
X X X
X X X
X X X
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
Java Servlets Java ServerPages (JSP)
Tomcat X X
Java API for RESTful Web Services (JAX-RS)
© MATERNA GmbH 2012
www.materna.de
OpenEJB
18
Apache Geronimo Versionen Kurzüberblick
Projekt im August 2003 gestartet
JEE 5.0
J2EE 1.4
Geronimo 1.0
2006
© MATERNA GmbH 2012
Geronimo 1.1
2007
JEE 6.0
Geronimo 2.0 Geronimo 2.1 Geronimo 2.2 Geronimo 3.0
2008
www.materna.de
2009
2012
19
Geronimo fertige Assemblies – schlanke Software
WAS CE
Big-G
WEBProfile
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 JBossProdukte (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 + + + + + + 0 -
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 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
2009
2010
GlassFish Server 3.1
GlassFish Server 3.1.2.2
• Centralized administration • Clustering / HA • GlassFish Server Control
• Bug Fixes • Incremental features
2011
GlassFish Server 3.0.1
GlassFish Server 3.1.1
• Oracle branding • Oracle platform support • Oracle interoperability
• Bug fixes • Updated components • Incremental features
© MATERNA GmbH 2012
www.materna.de
2012
2013
GlassFish Server 4 • Java EE 7 • Multitenancy • PaaS-enablement
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
© MATERNA GmbH 2012
Marktrelevanz Unterstützung von Standards Lizenzart Releaseplan, -zyklen Support Dokumentation Integration in bestehende Umgebung Plattformen IDE-Integration Migrationsunterstützung Vergleichstest (SPECjAppServer-2004-, SPECjEnterprise2010-Benchmark )
www.materna.de
32
Gesamtüberblick
Lizenz Plattformen
GlassFish
JBoss
Geronimo
CDDL1.1, GPL 2
LGPL 2.1
ASF
LINUX, Windows, MAC,
LINUX, Windows
LINUX, Windows,
SOLARIS, AIX Version Fazit
© MATERNA GmbH 2012
SOLARIS, AIX
3.1.2.2 + sehr gute Dokumentation, viele Beispiele + Cluster Support + gute IDE-, BUILDIntegration + gute Administrier-, Automatisierbarkeit + Supportmöglichkeit + aktuelle Referenzimplementierung + regelmäßige Release
7.1.1
3.0.0
+ gute Dokumentation + gute Integration in JBoss, RedHatProdukte + gute Testbarkeit Arquillian + gute IDE-, BUILD-Integration
+ gut anpassbares Produkt mit ausgereiften BestOf-BreedKomponenten + frei Lizenz + Langzeitsupport + + Updates für Vorversionnen + hybride Version + OSGi EEBundles
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
© MATERNA GmbH 2012
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
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 OpenSourceApplikationsservern (meist von Apache und RedHat), die ab 2014 CloudReady 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
© MATERNA GmbH 2012
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
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:
[email protected]
© MATERNA GmbH 2012
www.materna.de
47