Java 8 und Java EE LogoIn der Java Welt wird generell zwischen Java Standard Edition (Java SE) und Java Enterprise Edition (Java EE) unterschieden. Sie kennen vermutlich Java SE aus der Zeit in der JavaApplets noch sehr beliebt waren. Hierzu musste Sie das Java Runtime Environment (JRE) auf dem PC installieren, damit man die JavaApplets im Browser verwenden konnte.

Den Meisten ist nicht bekannt, dass Java EE ein noch viel mächtigeres Paket mit sich bringt. Die Java EE ist spezialisiert darauf den Entwicklern etablierte IT-Standards auch in Java zu standardisieren. Ziel hierbei ist Investitionssicherheit für Anwendungsentwickler sicherzustellen. Auch Java EE benötigt (wie die JavaApplets) die JRE als Laufzeitumgebung.

Doch welchen Mehrwert bietet Ihnen ein Standard wie Java EE?

Als Entscheider in einer Entwicklungsmannschaft besteht immer der Wunsch auf Produkte zu setzen die sehr lange supported werden. Es besteht der Wunsch im Team tiefes Wissens zum Produkt aufzubauen, als auch das Produkt damit lange einzusetzen, um den Invest in Wissen möglichst lange zu nutzen.

Wer sich mit professioneller Entwicklung mit JavaScript (JS) ebenfalls beschäftigt, kennt vermutlich das Leid, dass man eine neue Komponente gefunden hat, die in den ersten 12-18 Monaten sehr hip war und plötzlich vom Markt verschmäht wird. Dumm nur, wenn eine Entwicklungsmannschaft hier bereits viele Mannjahre an Aufwand investiert hat und diesen Aufwand plötzlich "abschreiben" und neuentwickeln muss. Übrigens viele Java EE Anwendungen verwenden für das User Interface / Oberfläche ebenfalls JavaScript.

Welches Java EE Produkt ist das richtige?

Bei Java EE hat man als Entscheider die Wahl zwischen mehreren Produkten. Die Wahl der Produkte wird nur durch die Wahl der Komponenten im JavaEE eingeschränkt. Damit Sie sich hierzu ein besseres Bild machen können, sehen Sie in folgender Tabelle die wichtigsten JavaEE Standard Komponenten in der Übersicht. Es hängt nun davon ab welche Sie verwenden, oder verwenden möchten.

  Java EE 6 (Release 10.12.2009) Java EE 7 (Release 12.06.2013)
Standard Technology Version Standard (JSR) Included in Full Profile Included in Web Profile Version Standard (JSR) Included in Full Profile Included in Web Profile
Web Application Technologies:    
Java API for WebSocket           JSR356 yes yes
Java API for JSON Processing           JSR353 yes yes
Java Servlet 3.0 JSR315 yes yes 3.1 JSR340 yes yes
JavaServer Faces (JSF) 2.0 JSR314 yes yes 2.2 JSR344 yes yes
Expression Language (EL) 2.2 JSR245 yes yes 3.0 JSR341 yes yes
JavaServer Pages (JSP) 2.2 JSR245 yes yes 2.3 JSR245 yes yes
JavaServer Pages Standard Tag Library (JSTL) 1.2 JSR52 yes yes 1.2 JSR52 yes yes
Enterprise Application Technologies:    
Batch Applications for the Java Platform           JSR352 yes  
Concurrency Utilities for Java EE         1.0 JSR236 yes  
Contexts and Dependency Injection for Java (CDI) 1.0 JSR299 yes yes 1.1 JSR346 yes yes
Dependency Injection for Java 1.0 JSR330 yes yes 1.0 JSR330 yes yes
Bean Validation 1.0 JSR303 yes yes 1.1 JSR349 yes yes
Managed Beans 1.0 JSR316 yes yes 1.0 JSR316 yes yes
Enterprise JavaBeans (EJB) 3.1 JSR318 yes Lite 3.2 JSR345 yes yes
Interceptors 1.1 JSR318 yes yes 1.2 JSR318 yes yes
Java EE Connector Architecture 1.6 JSR322 yes   1.7 JSR322 yes  
Java Persistence API (JPA) 2.0 JSR317 yes yes 2.1 JSR338 yes yes
Common Annotations for the Java Platform 1.1 JSR250 yes yes 1.2 JSR250 yes yes
Java Message Service API (JMS) 1.1 JSR914 yes   2.0 JSR343 yes  
Java Transaction API (JTA) 1.1 JSR907 yes yes 1.2 JSR907 yes yes
JavaMail API 1.4 JSR919 yes   1.5 JSR919 yes  
Web Services Technologies:    
Java API for RESTful Web Services (JAX-RS) 1.1 JSR311 yes   2.0 JSR339 yes yes
Implementing Enterprise Web Services 1.3 JSR109 yes   1.4 JSR109 yes  
Java API for XML-Based Web Services (JAX-WS) 2.2 JSR224 yes   2.2 JSR224 yes  
Web Services Metadata for the Java Platform 2.1 JSR181 yes     JSR181 yes  
Java API for XML-based RPC (JAX-RPC) 1.1 JSR101 ?   1.1 JSR101 optional  
Java Architecture for XML Binding (JAXB) 2.2 JSR222 yes   2.2 JSR222 yes  
Java API for XML Registries (JAXR) 1.0 JSR93 yes   1.0 JSR93 yes  
Java APIs for XML Messaging (JAXM) 1.3 JSR67 yes   1.3 JSR67 yes  
Management and Security Technologies:    
Java Authentication Service Provider Interface for Containers (JASPIC) 1.0 JSR196 yes   1.1 JSR196 yes  
Java Authorization Service Provider Contract for Containers (JACC) 1.4 JSR115 yes   1.5 JSR115 yes  
Java EE Application Deployment 1.2 JSR88 ?   1.2 JSR88 optional  
J2EE Management 1.1 JSR77 yes   1.1 JSR77 yes  
Debugging Support for Other Languages 1.0 JSR45 yes yes 1.0 JSR45 yes yes
Java EE-related Specs in Java SE:    
Java API for XML Processing (JAXP)         1.3 JSR206 yes  
Java Database Connectivity         4.0 JSR221 yes  
Java Management Extensions (JMX)         2.0 JSR3 yes  
JavaBeans Activation Framework (JAF)         1.1 JSR925 yes  
Streaming API for XML (StAX)         1.0 JSR173 yes  

Welches Produkt benötigen Sie?

Nach der Wahl der erforderlichen "Standard Technology" wissen Sie nun, ob Sie Java EE 6 oder Java EE 7 benötigen. Dann sollten Sie nochmals prüfen welchen Umfang von Java EE Sie verwenden oder verwenden möchten. Hierzu prüfen Sie nochmals ob Sie das Java EE Web Profile oder das umfangreichere Java EE Full Profile benötigen.

Dann stellt sich die elementare Frage, möchten Sie OpenSource oder rein kommerzielle Lösungen?

  Java EE 6 (Release 10.12.2009) Java EE 7 (Release 12.06.2013)
Products Version supports Full Profile supports Web Profile Included in Full Profile Included in Web Profile
Open Source products:
Wildfly 8.x yes yes yes yes
Wildfly 9.x yes yes yes yes
Wildfly 10.x yes yes yes yes
Tomcat 7.x yes, with TomEE 1.7.x yes - -
Tomcat 8.x yes, maybe with TomEE 1.7.x yes yes, with TomEE 7.x yes
Jetty 9.0.x no yes no yes
Jetty 9.1.x no yes no yes
JBoss AS 7.x yes yes - -
Glassfish 3.x yes yes no no
Glassfish 4.x yes yes yes yes
Commercial products:    
RedHat Enterprise Application Platform (based on JBoss AS) 6.x yes yes no no
RedHat Enterprise Application Platform (based on Wildfly) 7.x yes  yes yes yes
IBM WebSphere Application Server 8.x yes yes no no
IBM WebSphere Application Server 9.x yes yes yes yes
Oracle (BEA) WebLogic Server 12c yes yes no no
Oracle (BEA) WebLogic Server 12cR2 yes yes yes yes

Puhh, das ist Ihnen zu viel, oder Sie können damit nichts anfangen?

Kein Problem! Wir können Ihnen persönlich dabei helfen. In unserem Team sind Java-Entwickler die seit der ersten Stunde mit Java (1997) entwickeln. Kontaktieren Sie uns!