In 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!