JavaOne2006 - Day1

Java Development News:

JavaOne2006 - Day1

By Nitin Bharti, Frank Cohen and Rich Seeley

08 May 2006 | TheServerSide.com

Discussion


Day 2 | Day 3 | Day 4

Java Courts Open Source
RedBoss or JHat?
Java EE 5
Sun Previews Java Mustang
Web Services Stack Improvements
JEE 5 Coming in 2007
Distributed Caching Using Spring
Scripting, Scripting, Scripting
JavaOne News from Day 1

Mid-May in San Francisco is a milder time of year, yet still pleasant. If you happened to walk down Fourth Street on the morning of JavaOne, you'd be amongst the ranks of an army of software developers descending upon the Moscone center, sporting the latest Java gear, intently scanning their conference schedules. With attendance pegged at over 10,000 this year, Java is not only in season, it is in full bloom.

During the morning keynote, Sun talked about how proud they are at Java's adoption by software developers and announced new open source licensing-related agreements for Java.

Java courts open source

Jonathan Schwartz, now the CEO at Sun, introduced Rich Green as the new Executive Vice President for Software at Sun, and the two had an interesting discussion about making Java open-source.

"Compatibility matters," said Green. "The value of Java lies in its consistency" and its continued, guided evolution. Nevertheless, "it's not a question of whether [we will open source Java, it's a question of how."

Rich gave his insight into the debate within Sun: While open-sourcing Java is a good thing many at Sun are concerned with maintaining Java's integrity as a universally compatible platform. A Java application today runs on the Sun JVM, BEA JRockit, IBM's virtual machine, and others. Maintaining that compatibility is what keeps Sun hesitating, according to the discussion on stage. At one point Green said about open-sourcing Java: "Why not?" This sounded like an invitation for the Java user community to speak-up and give plenty of input.

Rich announced that Java itself would be put into open-source distribution. He described situations where Linux distributions, open-source applications, and libraries built to enhance Java were prevented from distributing Java because of the Sun community license. The license is hand-crafted to make it possible for GNU/ Linux distributions such as Ubuntu, Gentoo and Debian to distribute the JDK and JRE. As a result, Java will appear in more places and Sun believes that will create more demand for Sun products.

RedBoss or JHat?

About mid-way through the morning keynote, JBoss CEO Marc Fleury came up on stage sporting a red beret (in sharp contrast to the "Joker" uniform he sported at TSSJS 2003);, Fleury was unable to disclose any details of the recent Red Hat acquisition of JBoss; however, he said the deal would be finalized by the end of the month. Red Hat announced earlier this month that it would acquire JBoss for $350 million.

Fleury talked about the changing face of Java IDEs and the importance of moving away from API-based programming towards a more lightweight model. This is one of the key new features that the Java EE 5 platform will provide.

"Netbeans is the first platform with full [Java] EE support," Fleury said. In a move that further delineated the boundaries between the Eclipse and NetBeans open source communities, Fleury announced that JBoss would be joining the NetBeans open source effort, which was followed by a loud round of applause.

Java EE 5

Jeff Jackson, SVP of Java enterprise platforms and developer products at Sun, highlighted some of the other new features of Java EE 5, such as Web 2.0 support, .NET interoperability and simplified SOA development.

Java EE 5 is the first "open" version of the enterprise platform, which was released under the CDDL license to the GlassFish open source community of developers.

With protocol level interoperability between what were once rival platforms, .NET and enterprise Java applications will be able to one talk to another using Java EE 5. This was demonstrated on stage using a Vista WCF client which talked to a retail application built using Glassfish; the Glassfish application in turn talked to an Indigo wholesale service application, all using WS-Trust to establish a chain of secure communication.

"Sun wants to prove that interoperability works," said Jackson. "It's not just about plugathons. Enterprise customers told both of us [Sun and Microsoft] that we want .NET and Java to work together."

Echoing Fleury's call towards "simplified programming", one of the demos showed how the retail application was assembled using a NetBeans BPEL plug-in that used a UML-style interface to show all the message exchange patterns between the different applications, sans any code.

Jackson pointed out that the sample application is part of WSIT (Web Services Interoperability Technology), a collection of WS-* implementations at https://wsit.dev.java.net.

Jackson also pointed to other enterprise Java tools that would be made available online this week:

Sun previews Java Mustang

Sun gave an update on the upcoming Java SE 6 (codenamed Mustang.) Java SE 6 is being developed in an open-source community development environment. Weekly development builds are posted to http://mustang.dev.java.net, including complete source code, the build and Javadocs. The weekly builds give gradual but significant measurement of their effectiveness. The Mustang project seeks to improve garbage collection scaling and parallelism, use of underlying hardware technologies and to improve Swing performance. Graham Hamilton, VP of engineering for the Mustang project, reports that Sun likes community development because it avoids the cliff-hanger release cycles and addresses big problems earlier in the development cycle.

Hamilton said Sun is on schedule to deliver Java SE 6 in October 2006. They expect Java SE 7 (codenamed Dolphin) in the second half of 2008. Hamilton told the audience not to expect a Java SE 5.1 or 6.1 release. Instead, Sun will work on small bugfix updates every 8 to 16 weeks. In a later session, Sun revealed that they expect a Java SE 6 beta release in June 2006.

Sun gave additional details on the Java SE 6 (Mustang) release. Sun will enhance the monitoring and management capabilities of Java by upgrading the JConsole utility and underlying APIs. For instance, JConsole will now include an overview tab showing memory, CPU, and network utilization in one page. And exceptions such as the 'out of memory' exceptions will include many more details on current system state when the exception happened.

Fruit from the Sun/Microsoft hatchet-burying made its way into Java SE 6. Sun will deliver a new layout manager and graphical improvements to make Java SE 6 applications more Windows XP-like in terms of look and feel. Java SE 6 has native Windows XP and Windows Vista drivers for rendering widgets, support for minimizing frames into the Windows system tray, and direct APIs to open the Windows default browser, mail client, and some applications based on MIME type. Windows Vista ships in November 2006 and Sun plans to include an Internet Explorer plug-in with the Vista look and feel.

Java SE 6 comes with specific enhancements to improve intialiasing on LCD screens using enhancements to the Java 2D package. Hamilton said to expect 30 to 60% performance improvements by exploiting hardware acceleration. The new Swing group layout manager (codenamed Matisse) will be included for better drag-and-drop support. Developers will even be able to provide a splash screen, including updates, to show as their applications come up.

Web Services Stack Improvements

Sun made several announcements for Web Service developers. JAX-Web Services 2.0 (JAX-WS, codenamed Tango) is planned to give WS-I basic profile interoperability plus it will come with a simple security model.

"Stay up at the socket level," Sun's Bill Shannon told developers.

Sun is expecting many changes at the protocol and message serialization levels (runtime, WS stack, XML and SOAP) in an overall effort to improve interoperability between consumers and services.

For instance, developers can expect that JAX-WS 2.0 will map Java to WSDL and XML Schema in both directions. Microsoft told developers that they are working to improve interoperability with Java-based Web Services. The Microsoft Web Service Enhancements (WSE) 3.0 package provides WS-Trust, WS-Security, and WS-Reliable Messaging stacks. Sun is planning to plug those into its JAX-WS APIs under the covers, although no timeframe was given.

Michael Jones from Microsoft was nicely open about their security interoperability: WSE 2.0 was the first Microsoft effort that supported WS-Security with Java 1.4 applications. WSE 3.0 is being tested with Glassfish now and will deliver new security profiles.

Sun told developers that future release of Web Service components for Java will come from the Glassfish project on Java.net. Say good bye to the Java Web Services Developer Pack (JWSDP) and hello to Glassfish (https://glassfish.dev.java.net/javaee5/ws-mgmt/wsmgmthome.html).

JEE 5 Coming in 2007

Fresh from the JCP approval 2 weeks ago, Sun's Bill Shannon told developers to expect JEE 5 reference implementations this week. Although there isn't yet a JEE 5 SDL or Compatibility Test Suite (CTS) for download it appeared that some exhibitors in the conference pavilion were already showing their implementations. JEE 5 leverages annotations to do everything. New features include simplified Web Services support, dependency injection to reduce the need for JNDI and properties files, a new persistence API, and added JavaServer Faces. JEE 5 provides full compatibility with J2EE 1.4.

Distributed Caching Using Spring

Jonas Bonér gave a presentation on using Terracotta's distributed clustering framework to scale up Spring-based applications. Bonér is creator of the ApectWerkz AOP framework and now senior engineer at Terracotta. Bonér told developers that JMS is a bad idea to try to scale applications. JMS only works if you are a JMS fanatic because the code you need to write is really long, complex and error prone. JMS is asynchronous but updates must be handled in a synchronous manner. Also, Bonér asked how do you handle concurrent modifications? Lastly, Bonér pointed to performance problems from JMS requirements to do object serialization from all the marshalling and unmarshalling of cached objects.

Bonér was equally critical of JCache as a standardization effort to implement distributed hash maps. JCache also does transactions and notifications. Bonér noted that everytime you update something you need to serialize the whole store, even if you are changing just one stored element. Bonér said, "No one codes like this."

Bonér noted of JCache that developers need to maintain references to objects manually and JCache breaks Java pass-by-reference semantics.

For instance, a JCache serialized object will make a clone of objects it references making it difficult for developers to know if they are referencing an object or a clone of an object. For example you can't just say obj = obj because this may not work in a distributed cache environment.

Scripting, Scripting, Scripting

The impact of Tim Bray's leadership on dynamic scripting issues is apparent in several places at JavaOne. JSR 292 will add new bytecode - invokedynamic - for dynamic scripting language method invocations in the absence of static type information. This is lead by Gilad Bracha, one of Sun's JVM heavy-weights. JSR 223 is a native interface to scripting languages from within a Java programs. Coyote is a project that adds-back the NetBeans scripting module for Groovy, Jython and others.

Java SE 6 (Mustang) bundles Rhino and is fully accessible through JSR 223 interfaces. There are scripting languages all over JavaOne, including Beanshell, Jython, JRuby. Before Bray's involvement all Sun seemed to be good for is dismissive perspectives on scripting from James Gosling. Much of the scripting news seemed to upstage even the JEE 5 and other announcements.

For instance, Caucho - the makers of Resin - annnounced Quercus, a 100% Java implementation of PHP and PHP libraries. Citing the Netcraft (April 2006) survey of 28 million domains using PHP, Quercus has the potential to attract PHP developers to the Java platform as a straight replacement of mod_php in Apache. Caucho told developers that they are seeing an astonishing 4 to 6 times performance improvement over the C-version of PHP. Quercus runs with JVM thread safety - something not available to PHP developers today - to enable things like database connection pooling in a threaded environment.

Quercus is expected to ship by December 2006.

In a second announcement Sun showed Phobos, a new light-weight, scripting-friendly Web application environment. The current focus is on Javascript and Phobos is being developed as part of the Glassfish community. Phobos is good for Ruby on Rails-style work within a Java context and is good for Web applications, mash-up, and Web 2.0 applications. Sun showed developers wrapping an Ajax widget in a Rhino Javascript and plugging it into a Web application. This uses jMaki as the wrapping. Details are at http://phobos.dev.java.net.

While the original stated attempt for JSR 223 was to provide a standard way for Java programs to call Perl and PHP scripts through a JNI interface, JSR 223 ships with drivers to dynamic scripting languages that run in the VM, including JRuby, Groovy and others. Scripting has a new home at http://scripting.dev.java.net.

JavaOne News from Day 1