JavaOne2006 - Day2

Java Development News:

JavaOne2006 - Day2

By Nitin Bharti, Frank Cohen and Rich Seeley

16 May 2006 | TheServerSide.com

Day 1 | Day 3 | Day 4

BEA Blends Open Source into Tooling Strategy
Oracle Outlines Its Vision of SOA 2.0
Bringing XML to Java
Buzz from the Show Floor
Things Said around JavaOne
JavaOne News from Day 2

BEA Blends Open Source into Tooling Strategy

Bill Roth, VP of the Workshop group at BEA Systems, gave a keynote address at JavaOne that covered BEA products and open-source efforts. The session reaffirmed BEA as a stalwart supporter of Java through delivery of commercial products, open-source projects, and standards efforts.

There is a certain level of normal commoditization that happens with middleware technology, according to Roth. Each time you think middleware is a commodity the bar raises on integration, complexity, deployment topology, quality-of-services, and quality (bug squashing, leaks, holes) according to Roth. BEA customers, Roth explained, care more about quality than where a piece of software comes from.

He gave developers a sampling of the new technology in WebLogic Server 9.2, including dynamic configuration, real-time functions, hot swappable applications, a new Voice Over IP (SIP/VOIP) container, whole server migration utilities, overload protection, and MAN/WAN based session replication. Developers responded positively to these improvements and new features.

Innovation opportunities for BEA are currently in Spring, Rails, edge technology like RFID, AJAX, adaptive and self-healing technology, and SOA, Roth said. He told developers that with so much left to do there just is not time for companies that take a Lord of the Rings approach to standards development. There will never be "One standard to rule them all" according to Roth.

Roth told developers that BEA is highly involved with several open source projects. For instance, Roth expects BEA to incorporate an OpenJPA (JSR 220) based on Kodo 4.0 in BEA technology. OpenJPA is in the Apache Incubator now. Roth told developers that WebLogic Server support for EJB 3 delivers session beans, message-driven beans, resource Injection via Spring (JSR 250) collaboration using Kodo as a persistence provider. BEA is working with Interface21 to deliver Java annotations (JSR 225) to WebLogic Server. He also told developers to expect this code in Spring next week.

He went on to describe BEA's strategy of blended technology: commercial, open-source, and standards-based. He demonstrated how the new BEA Workshop blends Beehive, Spring, Struts, WLS, and Tomcat.

On the subject of other languages, Roth pointed to JavaScript, PHP, Ruby, and Groovy. BEA is looking at a multi-language future. To back this up Roth did a demonstration that blended application development, EJB 3 and OpenJPA, and multi-language support by showing the new AppXRay utility to analyze the JSPs and configuration files to show code dependencies. AppXRay shows a visual map of dependency relationships between a Web page, JavaScript and Java classes.

Roth demonstrated EJB 3 functions in BEA Workshop by exploring a relational database schema and mapping it into EJBs. He clicked on a schema and AppXRay built the EJBs to provide a Web interface. This is similar to Ruby On Rails but much more visual with lots of extra options. With the new visual tools, developers don't lose any code-level access. The new EJB 3 Persistence Entities Editor shows relational schema in design mode and Java source in edit mode.

Roth finished by demonstrating a PHP application running on WebLogic Server. BEA adds value to PHP by providing session management, graceful migration, high-level clustering and availability. Roth showed Workshop on Eclipse by editing PHP code and running it to deliver an HTML page. Workshop supports code completion and class linking.

Oracle Outlines Its Vision of SOA 2.0

The Oracle vision of the future of service-oriented architecture was outlined at JavaOne today in a keynote by Thomas Kurian, the company's senior vice president.

"We see a new application development framework emerging," he said.

Oracle's vision is based on three trends Kurian said his company sees in application development: Adoption of the new Java EE 5, Web 2.0 and what he referred to as SOA 2.0. The SOA and Web 2.0 applications will employ Ajax user interfaces created with JavaServer Faces, he predicted.

The Oracle executive foresees the convergence of these technology trends, making it possible for developers to build applications and Web services quickly, provide for interoperability and flexibility between those applications and services, and finally provide rich Ajax user interfaces.

The Oracle vision of the "next application platform SOA 2.0" is based on Oracle technology called the Service Fabric, which Kurian describes as service neutral technology that allows developers to "wire together" Web services in an SOA architecture.

"At Oracle we're building a Service Fabric on top of the Spring framework," he said. The Service Fabric also can be used to integrate service engines for routing services and transformations, he said. The combination of the Service Fabric, Service Component Architecture (SCA), routing, transformation and rules will constitute next generation of ESBs, the Oracle executive predicted.

For security, Oracle's Service Fabric relies heavily on the WS-* standards, WS-Security and WS-Trust, as well as SAML, which are built into the Service Fabric, Kurian said.

Steve Harris, vice president of the Java Platform Group at Oracle, described Service Fabric as "the runtime infrastructure for our SCA implementation."

Oracle has been one of the leading backers of SCA, which defines the endpoints, packaging and deployment of services. While the specification hasn't found its way into a standards body as of yet it does boast the backing of many heavyweights in the vendor community.

Harris said Oracle's Service Fabric would allow various SCA-defined service engines -- such as BPEL or rules engines -- to be assembled, making sure that policies are being evenly enforced and that the proper binding is given to certain protocols and events.

"The fabric itself is an implementation choice, not something I would expect to see become a standard vendor offering," Harris said. "In a lot of ways it's an evolution of the SOA platform."

Jumping on the open source bandwagon, Kurian pointed to Oracle's announcement on Tuesday that it is contributing tools for its vision of SOA 2.0 to several open source bodies.

Oracle announced Tuesday that it plans to make its Ajax user interface technology, including its components for JSF, available to the open source community in "the next few months." Oracle also announced that it has donated "more than 100 Oracle Application Development Framework (ADF) Faces components to the Apache MyFaces project." Oracle is also contributing technology to GlassFish and the Eclipse Foundation and is currently in discussions with the open source community on making more of its Java tools for SOA available.

Bringing XML to Java

Mark Reinhold, Sun's chief engineer for Java SE, presented his thoughts on adding native XML support to Java. Reinhold began the session by telling developers that the W3C adopted the XML specification 8 years 7 months and 3 days ago.

Reinhold said he investigated many options to bring native XML to Java. For instance, he noted that JAXB does not quite feel right when working with document-oriented XML. In this case using DOM felt better. That pretty much ended his comments on XML binding technology. The rest of his talk focused on making ad-hoc usage of XML easier.

Reinhold told developers he finds 4 areas of pain in working with ad-hoc XML: construction, conversion, navigation, and streaming. He expressed his opinions about DOM, dom4j, JDOM, and XOM. For constructing XML he disapproves of dom4j and JDOM in that these allow you to create poorly formed XML; XOM got it right, he said. For conversion Reinhold likes XOM best. As an example he pointed to the way the others return CDATA elements as the content of an element when developers are really looking for the content of the CDATA section. For navigation, Rhienhold likes a combination of collections, generics, and paths (like XPath.) For streaming, he noted that JDOM and dom4j do not support streaming and XOM does. Rhienhold pointed out that none of these supports generics.

Rhienhold made the case that writing ad-hoc XML applications is hard.

Reinhold presented at JavaOne to explain his early ideas on creating native XML support in Java. He told developers that he had no implementation or specification in his pocket. That is too bad too since he told me after the presentation that if he submitted a proposal today the Java Community Process would assign JSR 300.

Reinhold dismissed the current proposals to add XML to Java as untenable because it would be too much of a jolt to the developer community. Rhienhold thinks java.lang.String is the better model. He is thinking about java.lang.XML. For instance:

void addUser(Element element, String user, String password) {
    element.add(
               <account>
               <user>{user}</user>
               <password>{password}</password>
               </account>);
}

In this paradyme XML would be implemented much like String as an imported package.

import java.lang.XML.*;
java.lang.XML myElement = <foo/>

Reinhold's work will implement a new XML document object model (java.lang.XML) and a new syntax (). For construction, the new XML package would use xml literals. For conversion the package uses datatype coders - a new term Reinhold uses for abstraction of an underlying conversion implementation. For instance, the package could leverage XSD, XQuery, XPath and others but would be abstracted as a datatype coder. For navigation, Reinhold proposes a combination of collections, generics and paths. And for navigation Reinhold proposes a hybrid of events and streams.

For conversation types Reinhold is thinking about an abstract DataCoder class that uses generics to define a mapping to XML conversion implementations like XSD.

package java.xml;
abstract class DataCoder{ 
String encode(Object ob) {
 <T> decode( String data, Class<T> c); 
 static final Datacoder XSD; }

Reinhold asked the audience for their preference of literal declaration. He presented two types of syntax.

return <feature><id>{ ++nFeatures }</id></feature>

And an alternative syntax.

return #feature { #id { ++nFeatures }, #name {name} };

The developer audience was split between the two formats. Personally I (Frank Cohen) see this as a boxers-versus-briefs kind of question. Everyone will have a different preference.

Reinhold has a huge amount of work before this can become an official JCP project, including definitions of syntax, mutability, validation, namespaces, type-checking, document types, and processing instructions. I asked why he didn't just steal something like XQuery which has solved the above? He said he is happy to steal from anything but that his attempt is to avoid codifying any XML handling implementation into the language because once it is there it is permanent. He went on to say XQuery is its own language so it doesn't make sense to try to embed it in Java. (I also heard an audible gasp when I mentioned XQuery. The same kind of gasp you would hear if your little brother showed up at the restaurant you were at for your first date.)

Reinhold's answer prompted one developer to make a comment that "XML does not belong in the Java language because it takes a snapshot of the current state-of-the-art and makes it a permanent part of the language." Rhinehold responded that he specifically did not want to incorporate XML Schema, XPath, XQuery into Java.

Click here for Reinhold's presentation.

Buzz from the Show Floor

Java developer reaction to JEE 1.5 has been very good at JavaOne.

Many developers remember the past three years of JEE development. In 2004 the developer community mood was low with many believing Sun was behind the curve on making JEE easier to use.

Developers were contending with difficult deployment descriptors, serialization problems, and a general lack of higher-level features such as session management and timed transactions. Sun's answer in 2005 was J2EE 1.4 with a strong emphasis on Web Services. However, Web Service support was not necessarily of help to EJB developers. This year with JEE 1.5 out the developer community reception puts Sun ahead of the curve again.

Things Said around JavaOne

"Annotations from the language are great. Custom annotations that become their own language are bad," said Bob Blainey.

"Java appears to be losing the battle with PHP. PHP shares nothing and performs slowly. Ruby On Rails (RoR) is not trying to kill Java.

It looks like RoR is trying to kill PHP. Java seems to miss the 'simple wins' message," said Tim Bray.

"If your tools appear on your architecture diagram then you are in trouble," said Rob Gingell.

"The Mythbusters guys are going to be at the Friday T-Shirt toss but they won't be entering a machine. Their ideas for an entry are just too big to be safe in a large crowded room!" said James Gosling.

JavaOne News from Day 2

Related Content

Related Resources