Channels ▼


Open Source Perst Lite OODB For J2ME Devices Released

Issaquah, WA - McObject has just released a micro-footprint version of the Perst open source, object-oriented embedded database, targeted at embedded systems and intelligent devices developed on the Java 2 Platform, Micro Edition (J2ME).

Called Perst Lite, it has a code size that is about 30% smaller than standard Perst, well within the resource constraints of most intelligent embedded devices.

Embedded systems developers increasingly use Java, especially as micro-processors improve in their speed executing Java code. Sun Microsystems' J2ME, with its flexible user interfaces, robust security, and built-in networking, is proving especially popular for consumer electronics and mobile devices. In April, Evans Data Corp. announced survey results in which 52 percent of a sample of 500 wireless application developers reported using J2ME, up from 46 percent six months earlier.

But J2ME differs in major respects from standard Java (Java 2 Platform, Standard Edition, or J2SE), complicating vendors' ability to provide popular Java application development tools for embedded Java.

One of the major enhancements in Perst Lite is the substitution of its own lightweight code for standard Java's reflection mechanism.

Object-oriented database systems for Java rely on the language's reflection capability to inspect the object format at run-time and discover the format of the stored object. But J2ME, which targets small-footprint and embedded systems, omits reflection due to this function's complexity and resource requirements. This has limited the availability of OODBMSs for J2ME.

Perst Lite gets around this barrier by incorporating a utility that generates object serialization and de-serialization code for the application that incorporates the database. This code replaces reflection, but without the complexity and large run-time code footprint that caused reflection to be dropped from J2ME.

Another programming concept, "weak references," is commonly used by Java OODBMSs to permit garbage collection (automatic reclaiming of memory) while preventing out-of-control object cache growth. However, because weak references complicate garbage collection, many J2ME variants for specific devices do not support them. To address this issue, and permit efficient memory management, Perst Lite incorporates alternative object cache logic that does not depend on weak references.

Many developers prefer to use object-oriented database systems when working in object-oriented languages such as Java, crediting object database systems with better programming language integration than their relational counterparts. When a relational database is used, the application needs code that translates the relational representation of the data to the object representation required by the host language. This need increases application code size and impairs performance.

Perst Lite retains most of the features of the full version of Perst, including B-tree, Patricia Trie, Bit index, T-Tree and R-Tree indexes as well as List, Relation, and Set collections, all protected by transactions supporting the ACID properties (Atomicity, Consistency, Isolation and Durability). Perst Lite also offers multithreaded access, data encryption and asynchronous replication.

Under Perst's dual license, users can modify Perst and Perst Lite database source code and use it freely in other open source applications (software for which source code is made available) under the GNU General Public License (GPL). McObject's commercial license is required if source code of the Perst- or Perst Lite-based applications is to be withheld.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.