Welcome to this first installment of the JCP column! Here you can read about the Java Community Process program: newly submitted JSRs, new draft specs, Java APIs that were finalized, and other news from the JCP program.
Like any self-respecting IT industry effort, the JCP program proudly features its own collection of acronyms. To help you out, and because this is the first installment, there's a little cheat sheet at the end of this column.
J2ME Platform Swings On
Vodafone has submitted JSR 209 titled "Advanced Graphics and User Interface Optional Package for the Java 2 Micro Edition (J2ME) Platform" - AGUI for short. This JSR plans to bring a number of Java 2 Standard Edition (J2SE) APIs to devices, such as Swing, Java 2D graphics and imaging, image I/O, and the input method framework. Not only does this allow for very rich applications to be written for this environment, but accessible applications as well. However, more is happening in the J2ME environment - Sun has submitted the JSR 211 Content Handler API for managing multimedia and Web content on phones and other devices; and Nokia is enhancing the JSR 135 Mobile Media API for J2ME via a maintenance review.
Ease of Development
This is a topic dear to the hearts of the JCP Executive Committee members, and also many, many developers I'm sure. Several new JSRs and a few older ones are directly aimed at increasing the ease of development for the Java environment. JSR 175 will allow for code annotations or metadata that can be processed by development and deployment tools. JSR 201 defines a set of several small Java programming language changes. JSR 181's goal is to provide a simplified model for Web services development by using metadata and building on the efforts of JSR 175. Many of these JSRs have a special focus on development tools so the technologies can be easily used by IDEs to ease development. Oracle's JSR 198 is another example as it defines a standard extension API for developing IDE add-in modules.
Workflow, Web Services, and Quality Management
New directions are also being taken in the Java 2 Enterprise Edition (J2EE) environment. BEA is leading JSR 207, Process Definition for Java, while Sun is leading JSR 208, Java Business Integration. JSR 207 will define metadata, interfaces, and a runtime model, enabling business processes to be implemented and deployed in J2EE containers. This foundation can be used to build implementations of business process initiatives like BPEL4WS, WSCI, and W3C Choreography. JSR 208 will define SPIs to enable the creation of a back-end integration environment for these business process initiatives and to support developer-focused technologies such as BEA's JSR 207.
Finally, Watchmark Corporation is leading JSR 210, OSS Service Quality Management API, which is a new JSR for the OSS/J initiative. OSS/J is an example of one of the vertical subcommunities within the JCP - in this case the telco industry is coming together to develop common Java APIs for IP, billing, provisioning, and so forth. OSS/J is a collection of about 10 JSRs.
What Are Those 900 Numbers About?
JSRs with a number higher than 900 are maintenance reviews on APIs that predate the JCP. In addition, sometimes a maintenance review is done on a JSR that's not final yet. To minimize confusion and to better distinguish between the JSR and the intermediate maintenance review, the Program Management Office assigns a 900 number. An example of this scenario was JSR 109 and JSR 921.
Acronym Cheat Sheet JCP: Java Community Process
JSR: Java Specification Request
JSPA: Java Specification Participation Agreement
PMO: Program Management Office
EC: Executive Committee
OSS/J: Operations Systems Support for Java
That's it for this month. I'm very interested in your feedback. Please e-mail me with your comments and questions.
Onno Kluyt is the director of the JCP Program Management Office, Sun Microsystems.