On The Cutting Edge — MIDP 3.0: The Next Generation In Java ME Application Development

Ever since Java for Mobile Devices was released in 1998, it has been widely adopted by most manufacturers and application programmers. Java ME is available on more than 80% of the handsets and it seems to be a very favorable programming environment due to its wide availability. Though portability has suffered due to fragmentation issues, it still seems to be the #1 choice for mobile application programmers.

Some of the biggest drawbacks of Java ME today are that MIDP 1.0 and 2.0 implementations do not support concurrency, background execution and inter-MIDlet communications.

An Expert group was formed in March 2005 to address these above issues. The expert group is led by Motorola and has been widely represented by members from more than 100 companies including Device Manufacturers, Network Operators, Application & Content Developers, VM Vendors etc. Motorola has committed to releasing the MIDP 3.0 Reference Implementation and the TCK to the Open Source community based on the Apache License to reduce fragmentation and increase consistency of MIDP implementations. The expert group is expected to finalize the specifications by Mid-2008.

MIDP 3.0 aka JSR271 extends MIDP 2.0 to allow MIDlets to be auto-launched, run in the background and to enable inter-MIDlet communication. Extended functionality includes secure record stores/provisioned record stores, IPv6 support, support for multiple displays and orientation and the ability to monitor system events.

One of the new concepts is that of LIBlets, a shareable software component that one or more MIDlets may use at runtime. LIBlets are code fragments that have no execution context of their own; they are like shared libraries which are loaded when needed.

Some changes in packaging are also planned - a single JAR file could contain a MIDlet suite or a LIBlet. The MIDlet suites and LIBlet should describe the dependencies to other LIBlets on which they depend. A MIDlet suite will fail to install if any of its dependencies cannot be satisfied.

An important aspect of JSR 271 is to run MIDlets not only on top of the CLDC configuration, but also on the more capable CDC configuration. The expert group has recognized that the devices of today are more capable and hence, have taken this approach. Backward compatibility of MIDP 2.0 MIDlets has also been thought of - and hence MIDP 3.0 devices will be capable of running MIDP 2.0 MIDlets as well.

Concurrent execution of MIDlets has always been possible with MIDP 2.0 - however MIDP 3.0 clearly defines the expected behaviors and basic concurrency issues. Every MIDlet and associated LIBlets will be launched within their own application context. Because classes and static data are not shared among MIDlets, inter MIDlet communication is made possible. The Application Management System (AMS) provides a means to launch multiple applications, execute MIDlets in the background invisible to the user. MIDP 3.0 also allows Auto Start MIDlets and Screen Saver MIDlets as well.

More information on the MIDP 3.0 specification and reference implementation is available at https://opensource.motorola.com/sf/sfmain/do/viewProject/projects.jsr271

With concurrent MIDlets, concept of shared libraries, and enhanced LCDUI support, MIDP 3.0 provides developers a platform to create compelling and revenue generating content that is closer to the needs of the consumer. Motorola has always been an innovator in this fast paced industry and by taking a lead role in the expert group, application developers can start to see cool devices with MIDP 3.0 implementations when the specifications get finalized.

Combined with the many enhancements MIDP 3.0 offers, developers will enjoy more functionality and access within MIDlets on Motorola products that will, without question, further application development and create more opportunity for innovation.

– Asokan Thiyagarajan, Motorola Technology Evangelist

Back
© 2010 AsokanInc. All Rights Reserved.