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.
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."
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.
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:
- The first open source release from the SeeBeyond acquisition, the Java CAPS BPEL Engine, is available as part of the OpenJava ESB Community at: http://java.sun.com/integration/community.jsp.
- NetBeans Enterprise Pack, with code taken from the Java Studio Enterprise product, is available today with full sources on http://www.netbeans.org/products/enterprise.
- Java Messaging System (JMS) is available through the Java MQ project, hosted on http://mq.dev.java.net.
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.
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).
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.
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.
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.
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.
- Terracotta Sessions for Tomcat
- TxExpo, Transaction Analysis on Logs released
- JSFToolbox 1.0 Released - JavaServer Faces for Dreamweaver
- Tangosol and DataSynapse Partner
- BEA announces Kodo 4.0, BEA WebLogic Server preview
- Java Licensing available for GNU/Linux
- Four new Plug-ins for Netbeans
- BackBase AJAX Java Edition 1.1 with JSF announced
- Canoo releases version 6.1 of UltraLightClient