Sun says it has 'simplified' Java EE, but are its glory days at an end?
Last May, Sun released Java Enterprise Edition 5 (Java EE, known in previous editions as J2EE), the latest version of the standards platform that underpins many commercial and open-source application servers.Whether Java EE is 'lightweight' or 'heavyweight' depends on the requirements of the implementation
In a new interview with SearchWebServices, Kevin Schmidt, director for SOA products at Sun Microsystems, answered some of the criticisms around Java EE.
The most commonly heard criticism of Java EE (and all the J2EEs before it) is the complexity of the platform. Schmidt said that Sun has been focusing on that issue, noting the inclusion of NetBeans and EJB 3.0 may help hide some of that complexity:
"There have been significant improvements around EJBs, with EJB 3.0 and annotations that simplify the complexity. The tooling with NetBeans makes it easy to build components. NetBeans provides a variety of different project types and wizards that allow you to say, 'I want to create this type of components,' and the tooling does the majority of the work for you in building the templates by using annotations to simply write your code or business logic rather than having to know a lot of the details about the specification. The tooling aids in building servlets and building JSP, and building Web applications."
Some industry observers have said Java EE is becoming irrelevant, or not applicable, in the world of SOA. As reported in this blogsite, analysts such as Burton Group's Richard Monson-Haefel have said that "SOA and Web services diminished the importance of what you have running on the backend." Monson-Haefel also predicted that in five years, Java EE will be on the way out, replaced by more lightweight frameworks such as Ruby on Rails. ZapThink's Jason Bloomberg also observed that "the Java EE world is fundamentally not built for SOA."
However, Sun's Schmidt says that whether Java EE is "lightweight" or a "heavyweight" platform depends on the requirements of the company doing the implementation. In fact, he said, Java EE does provide "what is considered to be a lighter-weight solution. Often times when you talk about lightweight versus heavyweight, it all depends on the individual's perspective. The way that you would build an application and use a subset of Java EE that runs in a full Java EE container may still be lightweight because you're not configuring each and every part that Java EE provides. Certainly, when you build a Java EE application, you're not required to use of every part of the standard."
In addition, Schmidt maintains, Java EE provides an important platform from an enterprise perspective, noting that Java EE 5 provides essential features such as the container and the transactions around pooling resources. "Traditionally, enterprise class requires security, manageability, management of the services and resources," he said. "Those are things that are important to the enterprise and are features Java EE 5 provide for." In addition, the portablilty of Java EE across platforms will be needed for some time to come.
SOA industry consultant David Chappell has also weighed in on the discussion around Java EE, noting, first, that the historical vendor alliance behind J2EE is rapidly coming apart. "It was never reasonable to expect powerful vendors like IBM and BEA to remain Sun’s vassals, especially now that their J2EE market share vastly exceeds that of their putative lord. Combine this with Sun’s reluctance to give up control, and the result should surprise no one: the Sun-led J2EE alliance is at an end."
David observes that the J2EE as we knew it is forking into three distinct branches: Java EE, led by Sun; open source approaches, as exemplified by frameworks/tools such as Struts, Spring, Hibernate and Eclipse; and "Open SOA collaboration" led by IBM and BEA. David predicts that IBM and BEA's approach to Open SOA will likely gel around core server technologies such as Java Servlets and Java Server Pages (JSP) for browser access, Service Data Objects (SDO) for data access, and Service Component Architecture (SCA) for creating and connecting business logic.