Status Quo Java Open Source Applikationsserver - JUG Dortmund

09.10.2012 - J2EE 1.2. Enterprise. Java Platform ... Tomcat, TomEE, OpenEJB Vergleich. © MATERNA .... JBoss Trading – Java EE 5 to Java EE 6 Migration.
5MB Größe 5 Downloads 329 Ansichten
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