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.