The Java platform continues its evolution through the JCP this week. An important change log has been published for the contents of the next release of the Java 2 Standard Edition platform, which is already in beta. Web Services support got a boost with the final release of the Web Services Description Language API specification. There have also been a slew of community review approvals, indicative of the fact that the Java community has actively endorsed several new feature sets to the Java platform.
Three JSR’s were approved for further development under the guidelines of the JCP. These JSRs were approved via ballot voting by the Executive Committee members (http://jcp.org/en/participation/committee):
- JSR-209 Advanced Graphics and User Interface Optional Package for the J2ME Platform
- JSR-210 OSS Service Quality Management API
- JSR-211 Content Handler API
These JSR’s were described in my previous installment at http://www.developer.com/java/other/article.php/2170761
Draft specifications available to the JCP community have been released for review. These specifications broadly cover XML streaming and security services for the Java Mobile Platform.
The intent of this JSR is to define a collection of APIs that provide security services to J2ME enabled devices. It will provide security mechanisms to support a wide variety of application-based services, such as access to corporate network, mobile commerce, and digital rights management. These services rely on the existence of a “Security Element” in the device for storage and execution of sensitive data and operations. This Security Element will provide secure storage to protect sensitive data, secure execution (such as cryptographic operations to support payment protocols, data integrity, and data confidentiality) and the ability to customize and enable secure features provided by the device. The most commonly implemented Security Element currently is a Smart card, which is widely deployed in wireless phones. This specification provides an access model that enables applications running on J2ME enabled devices to communicate with a smart card inserted in the device. This access model intends to provide a flexible mechanism to allow service and equipment providers to define secure operations.
The Community review closes on 5th May 2003. JCP members may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr177/index.html
The goal of this specification is to develop APIs and conventions that support processing XML as a stream of XML (as opposed to using a document metaphor for processing). The specification will address three main areas:
- Develop APIs and conventions that allow a user to programmatically pull parse events from an XML input stream. Pull parsing is a programming technique in which the developer calls methods requesting the next event during parsing rather than receiving an automatic callback from the parser (like in SAX processing)
- Develop APIs that allow a user to write parse events to an XML output stream.
- Develop a set of objects and interfaces that encapsulate and implement programmer friendly access to information contained in an XML stream.
The streaming API gives parsing control to the programmer by exposing a simple iterator based API. This allows the programmer to ask for the next event (pull the event) and allows parsing state to be stored in a procedural fashion.
The Community review closes on 12 May 2003. JCP members may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr173/index.html
This JSR intends to extend the existing wireless messaging API’s (JSR-120) to support Multimedia Message Service (MMS), which would allow Java mobile applications to create, send and receive rich media messages containing text, graphics, animations, audio and video.
The Community review closes on 5th May 2003. JCP members may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr205/index.html
This JSR was described in more detail in my previous installment at http://www.developer.com/java/other/article.php/1583471
JSR Community Draft approvals
The Community Draft Specification is the specification developed in collaboration by members of the expert group for the JSR. The following community draft specifications were approved via ballot voting by the Executive Committee members (http://jcp.org/en/participation/committee):
Session Initiation Protocol (SIP) is an upcoming standard for establishing sessions over an IP networks. SIP is a signaling protocol similar to tone based dialing on telephone networks. SIP specifies how to establish, maintain and terminate a simple two-way telephone call or a collaborative multi-media conference session over an IP network. The goal of this JSR is to provide an API that allows SIP protocol handling for the Java Microedition enabling SIP support for small devices.
SIMPLE is an extension to SIP (covered earlier in this article, JSR-180) that provides support for Instant Messaging like chat. The JAIN (Java Advanced Intelligent Network) API’s are a set of libraries that enable the rapid development of Next Generation telecom products and services on the Java platform. The JAIN APIs bring service portability, convergence, and secure network access to telephony and data networks. The JSR’s intend to specify interfaces that adhere to the SIMPLE protocol providing presence and instant messaging support to the JAIN API’s.
This is an umbrella JSR that covers the use and relation of various other JSR’s relating to the wireless industry. In particular, this JSR describes and overall architecture of how the various proposed wireless API technologies work together to form a complete handset solution for the wireless services industry. This JSR was updated with a list of other JSR’s under the umbrella of this JSR and provides a reference to the Java Wireless Architecture Roadmap.
This proposed JSR will provide a scalable, small-footprint, interactive 3D API for use on mobile devices.
The way in which we interact with web-based services is through a browser of some sort. The browser may be on my desktop, on my PDA or on my mobile phone. I may also choose to render all the characters in a particular font. Web servers that produce the data we interact with often tailor the information suitable for the device on which it is going to be displayed. Composite Capability / Preferences Profile (CC/PP) describes the “delivery context” of data that is served by a web application. CC/PP is a W3C standard. This specification intends to implement a set of APIs for processing delivery context information allowing developers to write device independent code that can deliver tailored content to a multitude of web clients.
This JSR is to define a standard set of APIs for XML digital signatures services. The XML Digital Signature specification is defined by the W3C. XML Signatures can be applied to any digital content (data object), including XML. An XML Signature may be applied to the content of one or more resources. Enveloped or enveloping signatures are over data within the same XML document as the signature; detached signatures are over data external to the signature element. More specifically, the XML Digital Signature specification defines an XML signature element type and an XML signature application; conformance requirements for each are specified by way of schema definitions and prose respectively. The XML Digital Signature specification also includes other useful types that identify methods for referencing collections of resources, algorithms, and keying and management information.
Public Review Specifications
Note: This JSR was previously referred to as JMX Remoting.
Java Management Extensions (JMX, JSR-3) currently provides the means to create Java based management agents, through standardized techniques for instrumentation, and standardized agent services. But it does not standardize the means to access these agents remotely. There are no API’s that define a common technique to connect to and access these management agents from remote machines. This JSR intends to define a Client interface for communicating with management agents thereby exposing a single interface to the client, hiding and abstracting the underlying tunneling and messaging protocol.
The Public review closes on 24th April 2003. You may access the public review at http://jcp.org/aboutJava/communityprocess/review/jsr160/index.html
JSR Final Release
The final release specification was released for WSDL support marking an important milestone in the advancing support for Web Services in the Java platform. At this stage the final specification, Technology Compatibility Kit (TCK) and reference implementations are available for developers to use.
Web Services Description Language (WSDL) is an XML based format for describing a web service. In particular it provides information on what services are provided, how to invoke them and what parameters need to be passed to the service for successful invocation. The intent of this JSR is to provide a standard set of APIs for representing and manipulating services described by WSDL documents. These APIs will define a way to construct and manipulate models of service descriptions.
You may download the final specification and reference implementation from http://www-124.ibm.com/developerworks/projects/wsdl4j/.
Another important milestone was reached with an updated specification for the release contents of the next version of the Java 1.4 platform. This release will be 1.4.2 codenamed Mantis. This updated specification consists of minor changes across the board, touching the core Java libraries, database libraries, sound and graphics (AWT) libraries and applet specifications. The complete Change Log is available at http://java.sun.com/j2se/1.4.2/jcp/beta/. A page annotating the API differences is available at http://java.sun.com/j2se/1.4.2/jcp/beta/apidiffs/index-diffs.html
- Swing: http://java.sun.com/j2se/1.4.1/docs/guide/swing/index.html
- Java 2D Graphics and Imaging: http://java.sun.com/j2se/1.4.1/docs/guide/2d/index.html
- Image I/O: http://java.sun.com/j2se/1.4.1/docs/guide/imageio/index.html
- Input Method Framework: http://java.sun.com/j2se/1.4.1/docs/guide/imf/index.html
- Standards for 3G telecommunication networks on which much work of the JSR-210 is based: http://www.3gpp.org
- The TeleManagement Forum: http://www.tmforum.org
- Wireless Identity Module Specification: http://www.wapforum.org
- Java APIs for XML based RPC: http://www.jcp.org/jsr/detail/101.jsp
- XML Data Binding Specification: http://www.jcp.org/jsr/detail/31.jsp
- XML Pull Parser 2: http://www.extreme.indiana.edu/xgws/xsoap/xpp/
- XML Stream API: http://e-docs.bea.com/wls/docs70/xml/xml_stream.html
- Xerces XNI Pull Parser Configuration: http://xml.apache.org/xerces2-j/xni-config.html
- DOM Pull Parser for Python: http://www.prescod.net/python/pulldom.html
- Microsoft’s XML Reader: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlreaderclasstopic.asp
- All about Session Initiation Protocol (SIP): http://www.sipcenter.com/aboutsip/whatissip.html
- Composite Capability/Preference Profiles (CC/PP): Structure and Vocabularies: http://www.w3.org/TR/2001/WD-CCPP-struct-vocab-20010315/
- The Java Wireless Architecture Roadmap: http://jcp.org/aboutJava/communityprocess/jsr/JSR185_roadmap.pdf
- The Wireless Messaging API implementation (JSR-120): http://java.sun.com/products/wma/
- Java Management Extensions: http://java.sun.com/products/JavaManagement/
- W3C/IETF XML Signature specification: http://www.w3.org/2000/09/xmldsig#
- Web Services Description Language specification: http://www.w3.org/TR/wsdl
- Java 2 Standard Edition Platform: http://java.sun.com/j2se/
What do you think of the JCP? What do you think of the current JSR’s? Do you have any suggestions for this column? Feel free to write to me at [email protected].