During the month of December 2006 two very important Java ME specifications milestones were reached:

  1. MIDP3 (JSR 271) entered the Early Draft Review phase
  2. Mobile Service Architecture (JSR 248) is now final release

Two important specifications indeed…

MIDP3 is introducing a number of interesting features, as described below; features that were really needed by the developer community.

And when taking both MSA and MIDP3 into consideration, together they have the potential of changing the mobile handset and application's landscape; Java already is in millions of handsets worldwide, but it is lacking some richness in functionality and APIs that I am personally betting that MIDP3 + MSA will address. There will be kinks, across implementations, across handset vendors. There will be political and licensing issues that we must all survive through. And there are other APIs not included in MIDP3 and MSA that are of interest, but we must start somewhere, and MIDP3 + MSA should set the stage for the next generation of mobile computing and handsets.

From article The Mobile Service Architecture Specification: "MSA is a complete architecture for mobile services. Like its predecessor, JSR 185: Java Technology for the Wireless Industry, MSA is an umbrella over a collection of familiar, updated, and new JSRs that cooperate to support applications with a wide range of standardized capabilities. It broadens the architecture defined by JSR 185 to incorporate new technologies for high-volume mobile devices. To ensure greater compatibility among implementations, MSA also documents a set of clarifications that removes or reduces ambiguities that have been uncovered in some JSRs."

MIDP3 is the next generation of the Mobile Information Device Profile, the most popular and pervasive Java ME profile; and it will continue to be so for a long time. MIDP3 is introducing a number of great features, and I can't wait. Below are some of the new features:

  • New MIDlet packaging and provisioning improvements
  • MIDP on top of CDC
  • MIDlet Concurrency, background MIDlets, screen saver MIDlet, and MIDlet launching
  • New RMS features such as support for record tagging and fast access, removable RMS, and other
  • Inter-MIDlet communication and events
  • Support for shared libraries (LIBlets) – this is huge, and was a considered pre-MIDP2; good to see it included
  • UI API improvements and gadgets
  • HTTP connection changes to include support PUT and DELETE in support of REST-like web services
  • Much more — see the specification and the Javadoc

From the MIDP3 specification: "MIDP 3.0 is designed to operate on top of the Connected Limited Device Configuration (CLDC), which is described in CLDC 1.1 (JSR 139), but will also work on top of CLDC 1.0 (JSR 139) or CDC 1.1 (JSR 218). It is anticipated that most MIDP 3.0 implementations will be based on CLDC 1.1."

Note that the EG decided to split some of the original network-specific requirements/features into its own specification, JSR 307: Network Mobility and Mobile Data API, which will define the APIs and other for initiating and controlling data sessions in a mobile device and providing applications control over wireless network selection.

I will tell you that the MIDP3 expert group (EG) and its spec lead Motorola (Mike Milikich et. al.) have done a great job defining MIDP3, and I am very pleased with how the EG reached out to the developer community for feedback early on; this is a first on the JCP as far as I am concerned (for example, I can't say the same about MSA, where my experience as an EG Observer wasn't that great), and I've been involved with JCP for 7+ years. In MIDP3 all developer community requests were considered by the EG, and most made it to the specification. The EG defined a simple Wiki at first, then a developer survey, then use-cases and requirements and design proposals. Some proposals made it, others where combined, others didn't make it at all. The MIDP3 project is now available under Motorola's MIDP3 open source initiative — see the official JSR 271 Wiki. I would like to nominate Mike for Star Spec Lead.

The MIDP3 EG is large and broad both vertically and horizontally (thus not easy to manage and keep moving forward), with mobile Java community leaders from carriers, and handset manufacturers, to software companies and individuals.

We Need You!

Right now is the time for you to provide feedback to the MIDP3 EG. After this early review period ends, the EG will take into consideration all the gathered feedback, and include it or not in the spec, and then the spec will go public. The MIDP3 review closes on 5 February 2007. If you are a developer of mobile (Java ME) applications and care about the future of Java on handsets, reviewing this JSR and providing feedback should be one of your priorities. The time is now. Send comments to comments-jsr271@opensource.motorola.com.

ceo