Channels ▼

Web Development

The Future of Java Revisited

Java Enterprise Edition (EE)

Oracle has long been a big time Java proponent and one of the largest JCP members. The company was involved with the Java EE specification when it was created over a decade ago. Therefore, it should be no surprise that Oracle has become a big player in the Java middleware space.

Through development efforts and acquisitions, Oracle has assembled the Oracle Fusion platform, which consists of a full Java EE stack, SOA-based services, an ESB, transaction server, development tools, and much more. With the acquisition of Sun, Oracle now owns the Glassfish software suite, which is also the Java EE reference implementation. They made it clear that Glassfish will stay mainly as the reference implementation, listing it for business use only in tactical applications. Exactly what Oracle means by tactical isn't clear, but I would assume it will be allowed for use with existing customers, and possibly for embedded use. Given previous statements about focusing on Java SE embedded solutions, this is probably a safe assumption. Oracle's WebLogic application server will remain the strategic component in the Fusion stack.

As for the reference implementation and the future of Java EE, Oracle stated they would put effort into the following areas:

Modularity and Open Standards. Java EE 6 implies a more modular Java EE implementation through the definition of profiles. This is to allow vendors to create smaller subsets of their entire Java EE stack for specific uses, addressing the issues of cost and complexity associated with using Java EE. Increasing the modularity, and defining standards to do so in the process, helps to simplify Java EE even further, and allows it to be used in situations it may not be best suited for today.

Currently Java EE 6 specifies two profiles: the web profile (Servlets, JSP, and JSF only), and the Java EE enterprise profile (the entire stack). Obviously there's room in between for more standard profile definitions. For instance, a telecommunications server profile with support for Session Initiation Protocol (SIP) is one suggestion.

Beyond profiles, modularization can be used to deploy middleware into devices other then servers. For instance, embedding part of the Java EE stack into mobile devices such as security cameras, RFID readers, or any other "smart" device you can think of, opens the door to a standard Java programming model that can be deployed in a wide range of uses.

UI and Rich Internet Applications. HTML is still the implied UI protocol for Java EE applications, generated with Java Servlets, Java Server Pages, or Java Server Faces. Given the static nature of the resultant web pages, the concepts around Ajax emerged outside the scope of Java EE. Although the Ajax and Comet approaches have been powerful and have led to dynamic and much more usable web-based applications, the lack of standards and good development tools around JavaScript are viewed as a drawback.

Although Oracle hasn't outlined its specific plans in this area, I predict that a solution where JavaFX is integrated with Java EE in the future will be proposed to address the issues around Ajax. In fact, based on statements made by Larry Ellison at JavaOne in 2009 regarding Ajax and JavaFX, this sounds like a safe assumption.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.