On November 15, 2011 I posted a blog entry about the Application Infrastructure products from IBM and Oracle and mentioned that WebLogic Server has not seen much innovation in recent years. Oracle must have heard that message and on November 16 they sent announcement that on December 1, 2011 they will reveal a new version of WebLogic Server 12c (where c stands for “cloud”). It is not yet clear when this version will become generally available. We will find out in December.
At the time when BEA was an independent company they were relatively quick to market with support for latest versions of J2EE. Since Oracle acquired BEA things have changed. If you look at the list of JEE6 certified platforms you wont find WebLogic server there.
WebSphere Application Server v8 shipped in June 2011 and it is the first production grade product to be fully JEE6 certified (GlassFish Application Server is certified, but is not considered to be ready for mission critical deployments according to Oracle). As of today Oracle is yet to ship a WebLogic version with full JEE6 support. One might ask – why is this important? There are number of ease of use improvements and simplification of the programming model as well as significant new capabilities offered in JEE6. In the past six years IBM has consistently been the first to market with support for latest Java specifications. By providing development tools and runtime for these specifications ahead of other vendors IBM allows our customers to take advantage of these platform improvements to increase their competitiveness in the market place and reduce development costs.
Here are some of the key JEE6 improvements that are available in WAS v8 today, but are not available in WebLogic 11g:
- Enterprise JavaBeans (EJB) 3.1 – enhances developer productivity through simplification including testing outside of the application server, new timer support and asynchronous enhancements, singleton pattern support, avoid the need to replicate interface methods in the implementation class, ability to package EJB classes in .WAR files, etc.
- Java Servlet 3.0 – provides easier web application development with enhanced annotations and integrated Web 2.0 programming model support, security enhancements, asynchronous support, pluggability, simplified configuration and other improvements.
- Contexts and Dependency Injection for Java (CDI) 1.0 – accelerates time to value through tighter and simpler integration between Web (JSF) and business logic (EJB) tiers resulting in a significantly simplified programming model for web-based applications, provides a programming model suitable for rapid development of simple data-driven applications. This is a domain where Java EE has been perceived as overly complex in the past.
- Bean Validation 1.0 –improves developer productivity through declarative means for describing validation constraints for data. Prior to Bean Validation feature in JEE6, developers had to write their validation rules in the presentation framework (JSF), then in the business layer (EJB, POJO), and also in the persistent layer (JPA) and keep all of them synchronized. This was time consuming and error-prone. The bean validation model is supported by constraints in the form of annotations placed on a field, method, or class of a JavaBeans component.
- Java Architecture for XML Binding (JAXB) 2.2 – provides improved performance via new default marshalling optimizations. JAXB defines a programmer API for reading and writing Java objects to and from XML documents thus making reading and writing of XML via Java very easy.
- Enterprise Web Services 1.3 – delivers improved integration and reuse support by enhancing the programming model, XOP and MTOM control, deployment descriptor updates, EJB bindings and hundreds of other enhancements.
- Java API for XML-Based Web Services (JAX-WS) 2.2 – provides developer productivity and security enhancements, enhanced client programming model, improved binding and addressing capabilities.
Tom Alcott put together a great overview of version 8.0 of the WebSphere Application Server. Take a look at his article on IBM developerWorks.
In the next post I will look at the performance aspects of the JEE servers.