With Sun planning increased Web services support for the 'Mustang' release of Java 2 Platform, Standard Edition...
(J2SE), client side Java developers may find that they are closer to the server side than they think.
In a teleconference last week, James Gosling, chief technology officer of the developer products group at Santa Clara, Calif.-based Sun Microsystems Inc., and Graham Hamilton, vice president and fellow in the Java platform team at Sun, described the new features in Mustang, including full-scale client support for Web services.
"We are upgrading our core XML support and adding Web services basic profile services," Hamilton said. "Much of this support already exists in J2EE [Java 2 Enterprise Edition], but we want to move this into the client platform such as J2SE 6.0."
Work on Mustang is occurring under Java Specification Request (JSR 270), or what is known as an umbrella specification. JSR 270 doesn't define any new features or enhancements; rather, it enumerates features and enhancements defined in other JSRs, or through the Java Community Process maintenance process.
Some of the Web services specifications being considered for inclusion as Mustang components are the Java application programming interface (API) for XML-based RPC (JAX-RPC) 2.0, the Java Architecture for XML Binding 2.0 and XML Digital Signature APIs.
In the next release of the platform, Java applets will have the ability to communicate with Web services, Hamilton said. An applet is a Java program embedded inside an HTML page that gets executed by a browser's Java Virtual Machine when the page is loaded.
"An applet at the moment can currently use Remote Method Invocation or the Common Object Request Broker Architecture (CORBA)," Hamilton said. "However, our customers wanted to be able to use Web services where they previously only used CORBA."
Mustang enables developers to run Java in the browser to communicate with either Java on the back end, or .NET on the back end using Web services, according to Gosling.
There is concern that implementing Web services APIs inside applets might make them too heavyweight; however, Gosling clarified that the JAX-RPC code does not reside in the applet itself but instead gets called by the applet.
"We are size-conscious with J2SE," Gosling said. "We're trying to cut out some of the spaghetti code."
Other major themes behind the next Mustang release include performance, improving monitoring and management, simplifying database driver lookups, creating an enterprise desktop and adding more transparency to the code.
Open sourcing Java
Making the Java source code more transparent and accessible to developers is a delicate issue, Gosling said. Sun wants to make Java as open and flexible as possible, but it also wants to ensure that an open sourced Java is still compatible across different platforms.
To address this issue, Sun created Project Peabody, which aims to improve developer access to Java source code, simplify the licensing process, ensure compatibility and improve communication.
"Sun is trying to do this delicate balancing act to create a licensing and collaboration atmosphere that's as close to open source as we can get while not violating the expectations of the other half of the world in terms of interoperability and compatibility," Gosling said.
The "other half of the world" consists of companies like eBay, large banks and government institutions, such as the Brazilian health care system, that are running enormous, business critical applications on Java.
"[These institutions] value interoperability, compatibility and testing," Gosling said. "They are uninterested and hostile to the wild world of open source."