Find JSRs
Submit this Search

Ad Banner

JCP Talk: JavaWorld Interviews JCP Chair Rob Gingell

JCP Talk: JavaWorld Interviews JCP Chair Rob Gingell

Proprietary J2EETM extensions


The tactic of "embrace and extend" is often associated with Microsoft. However, it seems that the Java 2, Enterprise EditionTM (J2EETM) community has lately started to experience a similar phenomenon: As J2EE vendors' customers request features, those vendors are, naturally, obligated to provide those added capabilities in their J2EE app servers, leading to vendor-specific extensions. As developers take advantage of WebLogic-, WebSphere-, or SunONE-specific extensions, their code becomes less and less portable across J2EE implementations. Could that trend not lead to the same vendor lock-in the J2EE specs were supposed to protect against? Does the JCP, or some other Java process, address that issue?

Rob Gingell:

Earlier we talked about the tension involved in managing the froth on top of standards. In the J2EE marketplace the froth has thus far been pretty minimal. There are hundreds of thousands of downloads of the J2EE reference implementation [RI] from By comparison, there are only a tiny number of J2EE products that make up the multi-billion dollar J2EE industry. Why all those downloads?

Developers of J2EE applications often use the RI as the development platform specifically to avoid getting inadvertently locked in to a specific J2EE implementation. At last Spring's JavaOne, we announced the application verification kit: A tool developers can use to inspect their applications to ensure that they're dependent only on what they're choosing to be dependent upon.

As a standard, J2EE has tended towards "minimal froth." That's good for customers in one respect, but it could be argued that it might be better if a few more competing enhancements existed beyond the specification. There's not an absolute right answer to this. It's a tension that needs to be maintained.

Early on, as the platform was being created, keeping the froth minimal was probably very helpful in bootstrapping the marketplace. With the marketplace seemingly well-developed at this point, do we do more advancement by bringing things through the JCP only, or do we do things in products followed by doing them in the JCP? Or do we do some things in the JCP that represent commonly agreed-upon attributes of new capabilities, leaving the not-agreed-on parts to be sorted out in products? How does one best find what "practice" to codify without doing some of it?

I don't think it should be a goal minimize the "froth." Part of managing the tension involves having a marketplace of developers who understand the trade-offs they're making, and a marketplace of customers that demand that the froth be kept in check. Using tools, such as the applications conformance kit, to ensure that, when developers and their customers choose to use a value-added, pre-standard feature, they know that they're using just what they need, and no more, and that their continued loyalty to that extension is dependent on it becoming common practice.

Ultimately, all standards exist to provide the economic service of telling us what not to waste time on anymore, to cover things in which variation is not value-enhancing and, in fact, is value-detracting. For technologies in rapid change, keeping things very close together helps accelerate the entire market and encourages adoption. For mature technologies, the boundary conditions become more the tolerance of the market.

Members of the JCP Executive Committee have held intermittent discussions about that issue. Happily, from my perspective, it's a very thoughtful conversation that has put hard issues out for people to talk about. There's never going to be "the answer" in terms of a set of absolute thresholds for defining what should be done in or out of the JCP. There's just this tension to be managed. That the JCP has been, and continues to be, a community dedicated to the proposition of compatibility having enabled the over 3 million Java developers speaks well of the desire to manage the tension to avoid destructive variation.

This interview was part of Javaworld's ongoing coverage of the Java Community Process. Visit for more articles on the JCP.

Frank Sommers is founder and CEO of Autospaces, a company dedicated to bringing Web services and Jini to the automotive sales and finance industries. He is also Editor-in-Chief of the Newsletter of the IEEE Task Force on Cluster Computing, and Javaworld's Web services and Jiniology columnist.

1 | 2 |  3 | 4    Previous page | JCP News Stories page