With all eyes focused on the maturing Web services ecosystem, and application servers the centerpiece of any Web services project, this week's JavaOne conference will include a lot of jockeying for position by the various Java 2 Enterprise Edition (J2EE)-based app server and development tool vendors.
Even before the Java love fest in San Francisco, Oracle and BEA Systems were working the streets to get a head start on each other as well the rest of a field that includes IBM, Borland and Sun.
Oracle, which has traditionally positioned itself as the low-cost tool provider, comes to this year's JavaOne with the message for developers of "no compromise productivity".
"Typically", said Oracle 9iAS marketing vice president John Magee, "productivity comes at the expense of portability to the application server of your choice." Magee identified BEA's WebLogic Workshop as the poster child for this phenomenon.
"BEA has a new framework," said Magee, "that sacrifices portability in the name of increased productivity. To get that productivity, they take the black box approach. It's a self-contained environment that decides how the application is architected, how it's deployed, where code goes, and it embeds metadata into code itself, which makes it hard to manage the applications."
BEA, he continued, "generates Enterprise Java Beans (EJB) from the application definition, and you may not want to use EJBs. You may only want Java Server Pages (JSP). If you move into their world, you're restricted to architecting applications a certain way. What comes out is an application that only works on WebLogic servers. They shield developers from complexity and have made strides in the area of productivity, but the compromise is flexibility."
The sort of architecture of which Magee spoke -- where the tools from each vendor tend to produce code that works better on their sibling application servers -- is commonplace in the industry.
IBM's WebSphere Studio Application Developer (WSAD) works better with WebSphere. BEA's WebLogic Workshop works best with WebLogic. Oracle's 9i JDeveloper has always worked best with Oracle 9i Application Server (9iAS). One reason for this is that each of the most popular J2EE-based application server offerings include a package of vendor-specific extensions offering specific functionality not found in the J2EE specification. The Java Community Process (JCP) allows for such extensions as long as the development tools that access those extensions make it clear to developers when they're about to leave the world of guaranteed J2EE compatibility and portability. Each application server's sibling tool contains the facilities to access whatever vendor specific extensions are available.
More recently, in the name of developer productivity, these tools have added functionality such as group development, version control, database integration, and lifecycle management -- all packaged under graphical user interfaces that not only take the drudgery out of application development for experienced developers, but that also expand the range of knowledge workers who can make use of the tools
However, Oracle's Magee is suggesting that although developers may indeed become better and more productive, their applications will only work in certain environments. Magee said the new Oracle 9i JDeveloper 9.0.5, which Oracle is announcing at JavaOne and the preview release of which will be available this summer, is promising the best of both worlds.
"Our design goal for the new JDeveloper was productivity with choice," said Magee. "We don't want to lock people out of customising their environments or into doing things one way."
Built into JDeveloper is something called Oracle Application Development Framework (ADF). Sounding like Switzerland-like toolmaker Borland, Magee explained that that "Oracle ADF provides an architectural structure for applications that supports all J2EE-compliant application servers and all Web services standards. It handles infrastructure coding such as talking to databases, and generating user interfaces, business logic and validation rules. JDeveloper, in turn, offers developers the productivity they might get out of competing development tools, but without sacrificing portability or the ability to customise the environment."
Also, said Magee, the new JDeveloper console "reconfigures itself so that the developer only sees the tools and technologies that they want to work with."
Magee offers a compelling pitch. If JDeveloper offers enhanced productivity to a range of developer types without sacrificing J2EE portability and customisability, perhaps Oracle is onto something. But, since Magee picked on BEA, I checked in next with BEA. WebLogic Workshop senior product manager Carl Sjogreen wasn't prepared to take the innuendo lying down.
"Several vendors have come out with their proposed counterpoint to making Java easier," acknowledged Sjogreen. "Thus, I understand the context of Oracle's interest in trying to discredit Workshop." Sjogreen agrees with Magee that there have been many attempts at making development easier to use by focusing on putting pretty tools and wizards on top of the fundamentally complex concepts that result in enterprise applications.
"While these tools demo well," he said, "they aren't realistic for building real world applications. As soon as you need to do something outside of the narrow constraints of the tool, you are back to low-level J2EE development. While this might speed development somewhat, it doesn't truly bring in the masses of developers who have experience with other procedural programming languages like VB, PowerBuilder, COBOL, and so forth to the Java platform." Acknowledging that WebLogic Workshop hides some complexities, Sjogreen went on to say that "Workshop lets you build the application you want, write the business logic that adds value, and we take care of the deployment details." But Sjogreen challenged Magee's contention that such abstraction comes at the expense of flexibility. "Users who do know about these concepts can always leverage the underlying J2EE components that they need. You are never limited by the Workshop framework."
Sjogreen also addressed Magee's attack on portability. "Workshop is fundamentally based on standards. Our technologies support all the leading Web services standards like SOAP, WSDL, WS-Security, XQuery, and so forth. Our Web application framework is based on the open-source Struts framework provided by Apache. In order to fundamentally make development easier and more accessible to all developers, it's necessary to add a framework that helps developers focus on the code they care about, and use simple concepts like controls and properties to configure their application. Where we've innovated, we've contributed back to standards.
"The core approach of using code annotations to declaratively configure an application without writing code will be part of the next release of the Java language (J2SE 1.5), and we've submitted Java Specification Requests (JSRs) for the key innovations in Web services and workflow (JSR 181 and 208 respectively). Moreover, we've announced a commitment to provide a publicly available, free, reference implementation of these standards that is designed for maximum portability. As with any innovation, making development easier takes some time, but we are doing extensive work with customers and the Java community to ensure that Workshop applications are portable."
Whether either company (or others) can deliver on their promises of increased range of programmer access, flexibility, and portability (normally Borland's domain) remains to be seen.
Clearly, this is the next big step for vendor-specific development tools, and will remain one of the competitive focal points. But one thing is certain. At this year's JavaOne, fear, uncertainty, and doubt-mongering will be in full force.
Let the editors know what you think in the Mailroom.