JCP Watch: Java Help 2.0, Java Wireless Architecture

Three new Java Community endorsed standards were ratified inthe past month. These JSRs are the Java Help 2.0 APIs, the Java Wireless ArchitectureSpecifications and the Information Module Profile for J2ME. Additionally, inpreparation of the upcoming Java 1.5 platform (Tiger) release, severalpertinent JSRs have been made available to the JCP community for review, whichare described below. In a significant development, the community reviewspecification for changes to the JCP was released to the public.

Community Review

The Community Draft Specification is the specificationdeveloped in collaboration by members of the expert group for the JSR.

This JSR aims to define a new version of the Java CommunityProcess to address some of the day-to-day issues of Spec Leads and ExpertGroups through relatively minor, easy to implement changes to the process. Noneof the changes require modification to the participation agreements (the JSPAor IEPA). This JSR will not consider any issues that are difficult to implementor that require changes to the JSPA.

Some JSRs may need to span Editions and therefore span theExecutive Committees. This JSR will consider defining when that is possible,and how that works.

JSRs should be more transparent to the community, and itshould be easier to tell when a JSR is working and when it is dormant. This JSRwill consider requiring Spec Leads to provide a status report to the PMO on aregular basis, which would be posted to the web site for community memberviewing.

There is value to the Spec Leads to have two classes of ExpertGroup members - active members and observers. This JSR will consider ways toenable observer memberships to Expert Groups.

This JSR would also consider giving Executive Committeemembers the right to assign a member as an observer to the expert group for anyJSR that is assigned to the Executive Committee on which they serve.

There is a mistake in the process document with regards tosuper-majority voting. This JSR would change the process from requiring supermajority ballots to J2SE umbrella JSRs that propose language changes torequiring super majority ballots on any JSRs that propose language changes.

In order to promote more feedback at the review periods, thisJSR will consider changing Community Review to Early Draft Review and making itopen to the public. Also, this JSR will consider removing the Community ReviewBallot and replacing it with a ballot after the second public review, calledPublic Review Ballot.

This JSR will also consider requiring spec leads to deliver aTCK Coverage Document that will enable Executive Committee members to judge thesufficiency of a TCK.

This JSR will consider moving the disclosure of TCK and otherbusiness terms to a point earlier in the process.

The Specification Lead, Aaron Williams of Sun Microsystemssent out a call to all those involved in the JCP process. Since this is acommunity effort, I would like to reproduce the contents of the email sent hesent out and encourage readers of this column to participate.

This update (to the JCP) is designed to encourage JSRs tobe more transparent to the community and public, and to make it easier forpeople to get more meaningfully involved in the work of the community.

JSR 215 entered Community Review last Friday, and the expertgroup is working now to ensure we get as much feedback as we can during thisreview period. To this end, we have decided to open our community reviewto the public. We would really appreciate you taking the time to downloadand review the materials, and provide comment and feedback. Thosematerials can be found here: http://jcp.org/aboutJava/communityprocess/review/jsr215/index.html.

Please help make the JCP an ideal model for developingcommunity endorsed standards by downloading, reviewing and providing feedback!

This JSR will modify and extend the Java Class File formatto support updates to the Java platform and language specifications. The JSRwill add support for quicker and more efficient byte code verification, classliteral support directly from the class file format and will increase certainimplicit size limits within the class file.

This JSR is an update toJAXP 1.2 (JSR-63 Java API for XML Processing 1.2) to support the currentevolving XML processing standards. The revised XML standards incorporatechanges based on several years of growing implementation experience. Inparticular this update will address the following revisions of core XMLstandards such as DOM Level 3 Specifications, XML 1.1 and related Namespacesspecifications and SAX 2.0.1. This update will also focus on improvingperformance of XML processing, allowing better client control over thecharacteristics of the XML processor, XInclude support and support for futurerevisions to XPath and XSLT.

The Community review closes on 15th September2003. JCP members may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr206/index.html.

Unicode is an effort to create a universal mechanism todescribe characters. In order to achieve this, Unicode provides a unique numberfor every character, no matter what the platform, no matter what the program,no matter what the language. This mapping of character to number is called characterencoding. The J2SE supports the Unicode 3.0 specification, which mapscharacters to fixed length 16 bit numbers.

However, Unicode is an evolving standard. The latest Unicodespecification has given up its first design principle of using fixed-width16-bit characters, in order to allow the representation of more than 65,536characters required in certain Asian languages. The range of Unicode charactersfrom 0 to 65,536 is commonly denoted as U+0000 - U+FFFF and is called the BasicMultilingual Plane (BNP). Unicode 3.1 defines characters outside this range,called supplementary characters. This implies that certain encodings have to berepresented by more than the fixed width 16-bit values currently supported. JSR204 intends to add support for these supplementary Unicode characters outsidethe BNP.

The Community review closes on 29th September2003. JCP members may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr204/index.html.

This JSR will define a dense download format for Javaclassfiles. It is expected that this format can achieve considerable sizesavings over compressed JAR files. Currently the Java platform uses JavaArchive (JAR) encapsulation of these applications and their classes. The Javaarchive format can compress these classes at the byte level only, leading to ameager reduction factor of about two. There is a need to compress the classesmuch more efficiently, thus making network transfers faster and therefore morereliable. As a starting point, the Sun developed PACK format, which has beensuccessfully tested to achieve reduction factors of 7-9 will be used.

The Community review closes on 2nd September 2003. JCPmembers may access the Community review at http://java.sun.com/aboutJava/communityprocess/participant/jsr200/index.html.

JSR Community Draft Approvals

The Community Draft Specification is the specificationdeveloped in collaboration by members of the expert group for the JSR. Thefollowing community draft specifications were approved via ballot voting by theExecutive Committee members. (http://jcp.org/en/participation/committee).

Platform profiling is the ability to extract usagestatistics of a running JVM. Metrics include memory usage, CPU usage, objectreferences etc. There is an experimental interface - the Java Virtual MachineProfiling Interface (JVMPI) that suffers from a number of design flaws,scalability issues, sizeable overhead and imprecise profiling. The newprofiling architecture intends to non-compatibly supercede JVMPI but providesimilar yet enhanced functionality. These APIs will allow inter-operability ofprofiling and advanced garbage collection technologies. The APIs will allowreliable implementation on the widest range of virtual machines, part of whichwill be achieved by grouping functionality into optional sets. Queries forwhich optional capabilities are supported will be provided. The APIs will betargeted to provide a Java programming language model of execution, however,some aspects of the virtual machine, native and operating system models may bedirectly provided or provided via an extension mechanism. The APIs willaccommodate implementations which can dynamically enable and disable profiling;and thus will allow implementations which have negligible performance impactwhen profiling is disabled. While profiling in the application developmentphase will be the primary goal of this specification, the design objectives forlow performance overhead and data perturbation will also support profiling inthe deployment phase.

These APIs will provide Java applications, system managementtools and RAS-related tools with the ability to monitor the health of the Javavirtual machine as well as manage certain run-time controls such as classloading, memory and garbage collection statistics, thread statistics, objectreferences and state, operating system and platform information. It will alsoprovide control for JIT compilation, thread creation, garbage collectoroperation and heap allocation. It will support JMX invocation and its featureset and implementation will be developed to in synergy with the new platformprofiling architecture.

Public Review Specifications

JSR-164 JAIN SIMPLE Presence (http://jcp.org/en/jsr/detail?id=164)

and

JAIN SIMPLE Instant Messaging (http://jcp.org/en/jsr/detail?id=165)

SIMPLE is an extension to SIP (covered earlier in thisarticle, JSR-180) that provides support for Instant Messaging like chat. TheJAIN (Java Advanced Intelligent Network) APIs are a set of libraries thatenable the rapid development of Next Generation telecom products and serviceson the Java platform. The JAIN APIs bring service portability, convergence, andsecure network access to telephony and data networks. The JSRs intend tospecify interfaces that adhere to the SIMPLE protocol providing presence andinstant messaging support to the JAIN APIs.

The public review of this specification ends on August 31st2003. To contribute, send email to jsr164-pr-comments at research.panasonic.comor jsr165-pr-comments at research.panasonic.com. The reviews are available forJSR-164 at http://jcp.org/aboutJava/communityprocess/review/jsr164/index.htmland JSR-165 at http://jcp.org/aboutJava/communityprocess/review/jsr165/index.html.

Proposed Final Draft Specifications

(http://jcp.org/aboutJava/communityprocess/first/jsr184/index.html)

This proposed JSR will provide a scalable, small-footprint, interactive 3D API for use on mobile devices.

JSR-188 CC/PP Processing (http://jcp.org/en/jsr/detail?id=188)

and

(http://jcp.org/aboutJava/communityprocess/first/jsr188/index.html)

The way in which we interact with web-based services isthrough a browser of some sort. The browser may be on my desktop, on my PDA oron my mobile phone. I may also choose to render all the characters in aparticular font. Web servers that produce the data we interact with oftentailor the information suitable for the device on which it is going to bedisplayed. Composite Capability / Preferences Profile (CC/PP) describes thedelivery context of data that is served by a web application. CC/PP is a W3Cstandard. This specification intends to implement a set of APIs for processingdelivery context information allowing developers to write device independentcode that can deliver tailored content to a multitude of web clients.

JSR Final Ballot Approvals

The final specifications were approved were approved viaballot voting by the Executive Committee members. (http://jcp.org/en/participation/committee).At this stage, the complete final specification is available for download alongwith documentation and reference implementations of the specification.

JavaHelp software is a full-featured, platform-independent,extensible help system that enables developers and authors to incorporateonline help in applets, components, applications, operating systems, anddevices. Authors can also use the JavaHelp software to deliver onlinedocumentation for the Web and corporate Intranet. JavaHelp 2.0 is a majorupdate to the 1.0 specification. The updates include enhancements to merging,multi topic printing, improved secondary window and popup usage, JFC ToolTipHelpSet support, HelpSet presentation controls and additional Navigators.

You may download the final specification from http://developer.java.sun.com/developer/earlyAccess/javahelp/.

JSR Final Releases

At this stage the final specification, Technology Compatibility Kit (TCK) and reference implementations are available for developers to use.

This is an umbrella JSR that covers the use and relation ofvarious other JSRs relating to the wireless industry. In particular, this JSRdescribes and overall architecture of how the various proposed wireless APItechnologies work together to form a complete handset solution for the wirelessservices industry. This JSR was updated with a list of other JSRs under theumbrella of this JSR and provides a reference to the Java Wireless ArchitectureRoadmap This also links to an Open letter from the Expert group describing thestatus and future of this JSR.

You may download the final specification from http://jcp.org/aboutJava/communityprocess/final/jsr185/index.html.

This JSR will define a J2ME profile targeting embedded networkeddevices that wish to support a Java runtime environment similar to the MobileInformation Device Profile (MIDP) version 1.0, but that do not provide thegraphical display capabilities required by MIDP 1.0. The Information ModuleProfile (IMP) will be a strict subset of MIDP 1.0, where the APIs relating toGUI functionality (the LCDUI) are simply removed. Functionality not alreadypresent in MIDP 1.0 is not anticipated or desired.

You may download the final specification from http://jcp.org/aboutJava/communityprocess/final/jsr195/index.html.