A Database Emerges for Java ME

In a recent blog post, "Need a database with that phone?", Sun Evangelist Terrence Barr stated, "We in the Mobile & Embedded Community frequently get asked about database support for Java ME."

Sun's Java ME environment for mobile and embedded devices is growing in popularity. What better marker is there for an operating environment's arrival than demand for compatible database management systems, to support complex, high value applications? (Some of you will remember the veritable blizzard of DBMS releases that accompanied Linux's emergence as a `mainstream' operating system six or seven years ago).

Some of the major players in embedded Java mobile devices are noticing Perst Lite, McObject's streamlined object-oriented, open source embedded database for Java ME. Cell phone giant Nokia recently featured Perst Lite as the Application of the Week in its developers community.

In addition, both the Embedded.com and Mobile Handset Design Line developers portals recently published an article by Perst Lite's developer, Konstantin Knizhnik, describing his experience deploying a Java ME midlet incorporating Perst Lite on Blackberry and Nokia devices. Read the article, titled "Porting a Java ME midlet between Blackberry and Nokia S40 and S60 devices" on Embedded.com.

The project that sparked this article - re-implementing a client's professional sports recruiters application with Perst Lite replacing a slower relational database, and deploying this midlet on Blackberry and Nokia S40 S60 devices - offered the opportunity to test Java's "write once, run anywhere" promise on Java ME mobile devices.

The result? Konstantin's Java ME midlet transferred between different vendors' devices, and between Nokia's different environments, relatively seamlessly.

The only device-specific stumbling blocks related to the the Record Management System (RMS), a persistent storage mechanism in Java ME. This was solved with minor changes to the midlet source code that should address future device-specific RMS implementations.