News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 7/1/2009 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
Is the mystery Borland suitor Serena?
Borland software is considering an offer from another company after a preliminary deal with MicroFocus. Is Serena the new company?
06/30/2009 01:55 PM EST

Windows 7 - An eBayer's dream product?
Windows 7 pre-orders can make people money on eBay.
06/29/2009 03:48 PM EST

Know thine cloud provider
Cloud computing require companies to understand compliance and regulation. Third parties will play a big role in regulated industries.
06/29/2009 02:58 PM EST

 

Microsoft Worldwide Partner Conf.
7/13/2009 to 7/16/2009
New Orleans
Microsoft

OSCON (Open Source Convention)
7/20/2009 to 7/24/2009
San Jose
O'Reilly Media

XBRL Technology Workshop & Summit
7/28/2009 to 7/30/2009
Santa Clara
XBRL US

ACM SIGGRAPH
8/3/2009 to 8/7/2009
New Orleans
ACM SIGGRAPH

OpenSource World (formerly LinuxWorld)
8/12/2009 to 8/13/2009
San Francisco
IDG World Expo


 
Most Read Latest News Blog Resources

Evolving the Java Platform


Sun fellow gives a look beyond Java 5.0 through Mustang, Dolphin and more



May 15, 2005 — 
The Java platform continues to evolve at a brisk pace. More than 100 new specifications are under development in the Java Community Process as well as many smaller enhancements and refinements. This article highlights some of the key themes and directions for the next releases of Java 2 Standard Edition and Java 2 Enterprise Edition.

With so many new Java initiatives going on, it’s important to keep some high-level perspectives on what we at Sun and in the JCP are trying to achieve with the Java platform. For me, the key high-level value is increasing developer productivity. The Java community isn’t creating new specifications for the fun of it; we’re doing this because we believe they will help developers more easily create powerful commercial applications. But we need to do more than just create stacks of specifications; we also need to keep a clear focus on making them easy to use.

As part of both J2SE 5.0 and J2EE 5.0, we introduced a new driving theme: “Ease-of-Development.” The purpose of this theme is to continually remind us of the key root principle of developer productivity. It doesn’t matter how powerful our APIs are—if they are too hard to use, they are not effectively helping developers. We need to continually balance power, richness and simplicity.

J2SE 5.0 and Beyond
We delivered the J2SE 5.0 “Tiger” release last fall. It was our largest core Java update since JDK 1.0, and it introduced significant updates to both the Java language and the core platform APIs.

One feature in Tiger that is going to be enormously important to enterprise developers is the introduction of an annotation mechanism into the Java language. These annotations permit a form of declarative programming, where developers can specify desired behavior by marking source code with annotations rather than having to explicitly code up behavior. This style of annotation-driven programming is going to be a core value of the whole Java platform going forward.

We are currently developing the two successor releases to Tiger. These are Mustang (J2SE 6.0), which will ship in the first half of 2006, and Dolphin (J2SE 7.0), which will ship around the end of 2007. We won’t be doing a 5.1 release; we will instead be providing regular small patch releases between our major releases.

Mustang (J2SE 6.0)
The J2SE 6.0 (Mustang) release includes key updates across the core J2SE platform. The main driving themes of Mustang are:

• Compatibility and Stability
• Diagnosability, Monitoring and Management
• Ease-of-Development (including tools support)
• Enterprise Desktop
• XML and Web Services
• Transparency
Mustang will include a complete client-side Web services stack, based on the J2EE 5.0 stack, including support for all the main XML, SOAP and WS-I standards.

On the desktop we will be continuing to refine GUI look-and-feel quality and tuning up the performance of the graphics layer to better exploit hardware accelerators. This includes tuning for the new Windows Longhorn release, to make sure that J2SE will look great on Longhorn.

As part of Ease-of-Development, we are including key updates to the JDBC database access API, where we are using Java annotations to simplify the specification and execution of typical database queries and updates.

Probably the most significant single feature in Mustang is the addition of a full-scale scripting engine, including a lightweight JavaScript implementation. We think the Java language is great, but we also think that scripting languages are a valuable adjunct to the core language.

Dolphin (J2SE 7.0)
We are resisting the temptation to make Java language changes in Mustang. We recognize that James Gosling achieved a genuine masterpiece with the simplicity of the Java language design, and we want to be very cautious in evolving the core language.

But at the same time, languages do need to evolve, and we are exploring a few key changes for the Dolphin release.

We’re interested in introducing direct support for XML into the Java language. Many Java developers work with XML, and we’re interested in finding ways of smoothing that integration.

We’d like to improve support for programming in the large. For example, we’re interested in adding mechanisms to allow packages to explicitly share their package-private state with other packages. We’re also investigating significantly upgrading the Java packaging mechanisms to make it easier to bundle and distribute complex applications.

The Java language is only one of many languages used with the Java platform. As part of Dolphin, we are planning to add a new Java Virtual Machine instruction, which is targeted at so-called “dynamic languages,” such as Groovy or Python. These languages need relatively elaborate mechanisms for executing method calls, and it seems that providing direct virtual machine support will both accelerate execution for these languages and provide final indisputable proof that the Java platform and the JVM are targeted at more than just the Java language.

What About J2EE?
J2EE 5.0 is going to be the largest upgrade to J2EE since its initial introduction in 1999. The core theme of J2EE 5.0 is Ease-of-Development. We’ve always had a strong emphasis on power and scalability for J2EE. We want to retain that power but make it easier to exploit.

Enterprise JavaBeans 3.0. The most important changes in J2EE 5.0 are to the transactional data access layer in EJB 3.0.

First, there is a greatly simplified persistence mapping between relational database tables and in-memory Java objects. This replaces the existing J2EE persistence rules with a focus on Plain Old Java Objects (POJOs), which need to follow much simpler rules to achieve data persistence.

Second, the rules for defining an object as a transactional EJB have been greatly simplified. Previously developers needed to create various ancillary interfaces. That work has now been automated, based on the new Java language annotations mechanism.

EJB 3.0 eliminates most of the boilerplate involved in creating transactional Java objects. This reduces the amount of code that needs to be created and maintained while keeping the real power.

In addition to EJB 3.0, J2EE includes simplifications and enhancements across all the component J2EE standards, including notable upgrades to the core XML and Web services support.

Web Services and SOA. There is strong industry interest in using XML-based Web services to create a service-oriented architecture (SOA) model for distributed systems. The attraction of Web services and SOA over earlier distributed systems models (such as CORBA, RMI or DCOM) is their focus on a more loosely coupled services model, both in making it easier to map requests and data between different environments and in allowing the use of more asynchronous interactions. Among other virtues, this vision of Web services and SOA seems to offer a viable route to first-rate interoperability between the Java and .NET worlds.

The cornerstone of Web services and SOA in the Java platform is the JAX-RPC standard. This defines a high-level Java programming model that is automatically mapped into the XML syntax of the Web services standards.

JAX-RPC is being greatly simplified in J2EE 5.0 by the use of Java language annotations to specify the definition and use of Web services. It is now a simple matter of adding a few selected annotations to classes and methods to expose them as XML Web services for external use. In addition, the JAXB data-binding mechanism makes it easy to map between complex Java types and corresponding XML types.

A key goal of JAX-RPC Web services support is cross-platform interoperability. For example, we want developers to be able to work with the J2EE JAX-RPC standards and have full interoperability with .NET applications using the Microsoft Indigo application model.

This interoperability between JAX-RPC and Indigo occurs at two levels. At application development time, each environment supports mapping between language-level interface definitions and the XML Web Services Definition Language (WSDL) and mapping between language-level data definitions and XML Schema Definitions (XSD).

This means that both Java and .NET applications are talking a common underlying vocabulary, even if that underlying vocabulary is sometimes expressed differently in Java and in C#. Then, at runtime, these application-level programming concepts are mapped into standard XML on-the-wire protocols, including using standard XML data encodings, the SOAP messaging layer, the HTTP and HTTPS transports, etc.

It often feels like there is an excess of Web services standards. How on earth can developers keep track of the latest evolutions of WS-Policy, XML Schema, WS-Addressing, WS-Security, WS-Trust and WSDL 2.0, to mention just a few? The good news is that, by and large, you should never need to know about most of these.

The shared goal of both JAX-RPC and Indigo is to provide high-level application programming models that allow definition and use of Web services as normal language-level classes. Then behind the scenes, platform libraries map these Java or C# programming concepts into the various formatting and protocol standards. Equally critically, as the standards evolve, the application layer can remain constant and the runtime libraries can buffer the applications from the details of the protocol du jour.

Leading vendors, including BEA, IBM, Microsoft, Oracle and Sun, are cooperating in groups like the W3C and the Web Services Interoperability Organization (WS-I) to make sure that there will be effective interoperability among their different protocol stack implementations. These platform vendors will need to understand and implement all of these standards as part of creating their interoperable protocol stacks, but typical developers should never need to see them.

My strong advice to Java Web services developers is to program to the high-level JAX-RPC and JAXB models, and wherever possible leave the XML plumbing and protocol details to the platform libraries. This will allow us to implement the interoperability details for you, including adding future support for new protocols without disrupting your applications.

J2EE and JAX-RPC provide rich Web services support, and thus support the core service-oriented architecture model. However, while the ability to define and use Web services is a critical part of the SOA model, it is only the base level.

One key goal of SOA is that after we define our distributed system components as XML Web services, we can then move on to integrating these components at a higher level to create enterprise business systems.

For example, various different parts of a business might create Web services to manage parts of inventory and order processing. Then, at a higher level, these component pieces can be integrated into a single order processing workflow.

These issues are being addressed in various Java standards, notably the Java Business Integration standard (JSR 208). These standards define a common integration model that will allow individual Web services to be orchestrated into large business flows.

The use of SOA for Web services business integration is likely to be a key focus of the Java community over the next few years. Much of this work is already emerging in parallel with J2EE 5.0, and it may well be one of the central focuses for J2EE 6.0.

Looking Forward
A great deal of new development is going on in the Java platform, from devices to desktop to server. This article highlights a few key enterprise-focused themes, but this represents only a sampling of the many initiatives under way.

Graham Hamilton is a vice president and fellow within the Java platform team at Sun.


Share this link: http://www.sdtimes.com/link/28614
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading