Perst

Last updated
Perst
Developer(s) McObject
Initial release2003;21 years ago (2003)
Operating system Cross-platform
Type ODBMS
License GPL or proprietary
Website www.mcobject.com/perst

Perst is an open source, dual license, object-oriented embedded database management system (ODBMS). Both the Java programming language, and the C# programming language versions are compact and Perst has been implemented on smart phones running the Android and Windows Phone (WP7) operating systems.

Contents

History

Perst was launched in 2003, in Russia. It was designed to achieve high-performance by tightly integrating the database with the programming language: Perst directly stores data in the language objects. In 2006 McObject LLC, based in Issaquah, WA took over the development of Perst. It continues to offer free downloads and has added commercial license options.

Perst was first written in Java, and ported to C#. Although originally designed for desktop- and server-based software, Perst has also found usage in providing database management for mobile applications running on devices such as smartphones. These mobile devices typically have hardware constraints, with limited RAM and few CPU cycles available and non-standard (for database systems) operating requirements (such as support for Java ME, or Silverlight in the Windows Phone 7 mobile platform). [1] [2] [3] [4]

Versions

Currently available versions of Perst are Perst for .NET, Perst for Java and Perst Lite. Perst for Java and Perst Lite are bundled in a single software distribution.

Perst for .NET supports C# versions 1.0 and 2.0 with the same source code. Support for specific C# 2.0 features (such as template classes) is provided at compile time. It is compatible with both standard and compact .NET frameworks, as well as Silverlight, and can operate on both Microsoft Windows Phone 7 (WP7) and Windows Embedded Compact (formerly Windows CE).

Perst for Java supports J2SE/J2EE versions 1.3 and 1.4, as well as J2SE/J2EE version 5. It is compatible with the Android smartphone environment.

Perst Lite is the Perst for Java implementation that runs on devices (such as BlackBerry smartphones) based on the Java ME (J2ME) mobile device platform. It has a memory footprint approximately 30 percent smaller than standard Perst. [5]

In detail

Size

The Perst engine’s size is 5,000 lines of source code, and its run time random-access memory (RAM) needs range from 30K to 300K. [6] ]

Transactions

Perst transactions support the ACID properties (atomicity, consistency, isolation, durability) with automatic recovery.

Querying

Perst provides a subset of SQL for filtering elements of a container class. For access to stored objects, Perst implements specialized collection classes including:

Schema evolution

To facilitate changes to an existing database design (database schema), Perst implements "lazy" database schema evolution. When an object instance is loaded from the database, its class descriptor is compared with the format of the class in the application. If they are not identical, and the object is to be changed, then the object is converted and stored in the new format. With an "eager" schema evolution format changes would sweep through the database all at once.

Additional features

Example Implementations

ProScout is a demo midlet for using Perst Lite in the Java ME environment. The demonstration is of a discrete note-taking facility for a sports recruiter. Originally implemented for the Blackberry, it has also been deployed on the Nokia S60. [11]

McObject provides a demo app of a CRM system using Perst for .NET, including a fully text-searchable contact database that runs in the desktop browser in Silverlight. [12] Andy Wigley, of appamundi, ported this demo app to Windows Phone and described the project in a series of blog postings. [13]

Licensing

Users can redistribute and/or modify Perst under the terms of the GNU General Public License (version 2 or later) as published by the Free Software Foundation. For individuals or organizations that cannot or do not wish to comply with the GPL, a commercial license is available from McObject.

Related Research Articles

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME.

<span class="mw-page-title-main">S60 (software platform)</span> Smartphone software platform

The S60 Platform was a software platform for smartphones that runs on top of the Symbian operating system. It was created by Nokia based on the 'Pearl' user interface from Symbian Ltd. It was introduced at COMDEX in November 2001 and first shipped with the Nokia 7650 smartphone. The platform has since seen 5 updated editions. Series 60 was renamed to S60 in November 2005.

Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition framework and sits on top of Connected Limited Device Configuration (CLDC), a set of lower level programming interfaces. MIDP was developed under the Java Community Process. The first MIDP devices were launched in April 2001.

The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one or more profiles to give developers a platform for building applications on embedded devices with very limited resources such as pagers and mobile phones. The CLDC was developed under the Java Community Process as JSR 30 and JSR 139.

A Rich Internet Application is a web application that has many of the characteristics of desktop application software. The concept is closely related to a single-page application, and may allow the user interactive features such as drag and drop, background menu, WYSIWYG editing, etc. The concept was first introduced in 2002 by Macromedia to describe Macromedia Flash MX product. Throughout the 2000-s, the term was generalized to describe browser-based applications developed with other competing browser plugin technologies including Java applets, Microsoft Silverlight.

<span class="mw-page-title-main">Internet Explorer Mobile</span> Mobile version of Internet Explorer web browser by Microsoft

Internet Explorer Mobile was a mobile version of Internet Explorer developed by Microsoft, based on versions of the MSHTML (Trident) layout engine. IE Mobile comes loaded by default with Windows Phone and Windows CE. Later versions of Internet Explorer Mobile are based on the desktop version of Internet Explorer. Older versions however, called Pocket Internet Explorer, are not based on the same layout engine.

Java APIs for Bluetooth Wireless Technology (JABWT) is a J2ME specification for APIs that allows Java MIDlets running on embedded devices such as mobile phones to use Bluetooth for short-range wireless communication. JABWT was developed as JSR-82 under the Java Community Process.

Nokia Browser for Symbian was the default web browser for the S60 and Symbian mobile phone platform. The browser is based on a port of Apple Inc.'s open-source WebCore and JavaScriptCore frameworks which form the WebKit rendering engine that Apple uses in its Safari Web browser.

Java Application Descriptor (JAD) files describe the MIDlets that are distributed as JAR files. JAD files are commonly used to package Java applications or games that can be downloaded to mobile phones. Java applications enable mobile phones to interact functionally with online web services, such as the ability to send SMS messages via GSM mobile Internet or interact in multiplayer games. Some BlackBerry devices use JAD files for themes, while on some mobile phones without memory cards it is not possible to download any apps.

<span class="mw-page-title-main">Opera Mobile</span> Freeware web browser for mobile devices

Opera Mobile is a mobile web browser for smartphones, tablets and PDAs developed by Opera.

<span class="mw-page-title-main">Microsoft Silverlight</span> Application framework for writing and running rich Internet applications

Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. While early versions of Silverlight focused on streaming media, later versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.

Kinoma, a division of Marvell Semiconductor, is a software engineering group providing an open-source, cross-platform ECMAScript stack aimed at developing software for Internet of Things products and other embedded devices. Additionally, Kinoma provides Kinoma Create, a hardware prototyping platform aimed at the independent maker community.

PDA Optional Packages for the J2ME Platform JSR 75 is a specification that standardizes access in the Java on embedded devices such as mobile phones and PDAs to data that resides natively on mobile devices. JSR 75 is part of the Java ME framework and sits on top of CLDC, a set of lower level programming interfaces. It has 2 main components. Not all devices that claim to implement JSR 75 will implement both components.

A mobile operating system is an operating system used for smartphones, tablets, smartwatches, smartglasses, or other non-laptop personal mobile computing devices. While computers such as typical/mobile laptops are "mobile", the operating systems used on them are generally not considered mobile, as they were originally designed for desktop computers that historically did not have or need specific mobile features. This line distinguishing mobile and other forms has become blurred in recent years, due to the fact that newer devices have become smaller and more mobile unlike hardware of the past. Key notabilities blurring this line are the introduction of tablet computers, light-weight laptops, and the hybridization of the two in 2-in-1 PCs.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

<span class="mw-page-title-main">Db4o</span> Open source object database

db4o was an embeddable open-source object database for Java and .NET developers. It was developed, commercially licensed and supported by Actian. In October 2014, Actian declined to continue to actively pursue and promote the commercial db4o product offering for new customers.

<span class="mw-page-title-main">Symbian</span> Discontinued mobile operating system

Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian OS is a descendant of Psion's EPOC, and was released exclusively on ARM processors, although an unreleased x86 port existed. Symbian was used by many major mobile phone brands, like Samsung, Motorola, Sony Ericsson, and above all by Nokia. It was also prevalent in Japan by brands including Fujitsu, Sharp and Mitsubishi. As a pioneer that established the smartphone industry, it was the most popular smartphone OS on a worldwide average until the end of 2010, at a time when smartphones were in limited use, when it was overtaken by iOS and Android. It was notably less popular in North America.

Asphalt is a series of racing video games developed and published by Gameloft. Games in the series typically focus on fast-paced arcade racing set in various locales throughout the world, tasking players to complete races while evading the local law enforcement in police pursuits.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

Codename One is an open-source cross-platform framework aiming to provide write once, run anywhere code for various mobile and desktop operating systems. It was created by the co-founders of the Lightweight User Interface Toolkit (LWUIT) project, Chen Fishbein and Shai Almog, and was first announced on January 13, 2012. It was described at the time by the authors as "a cross-device platform that allows you to write your code once in Java and have it work on all devices specifically: iPhone/iPad, Android, Blackberry, Windows Phone 7 and 8, J2ME devices, Windows Desktop, Mac OS, and Web. The biggest goals for the project are ease of use/RAD, deep integration with the native platform and speed."

References

  1. See, for example, “Building a database for Windows Phone 7 qualifies as epic,” from Brandon Watson, Microsoft Director of Developer Experience for Windows Phone 7, in his blog post Windows Phone 7 Device Requests, 6/17/2010.
  2. Database duo deliver Windows Phone 7 apps storage, The Register, 6/30/2010.
  3. Embedded database engine for Silverlight applications, Architecture + Strategy blog, MSDN.
  4. Developing an object-oriented database for J2ME-based embedded devices. EE Times, 12/14/2006. This article discusses the technical challenges that had to be overcome in Java ME (J2ME) in order to support an ODBMS in that environment.
  5. Databases for Java ME, part 2: Not just JavaDB but also Perst Lite, Terrence Barr’s blog on Java.Net. 12/7/2007 Archived 2012-02-26 at the Wayback Machine . Barr, a Sun Microsystems evangelist for Java ME, in this blog post and in a preceding one (Need A Database With Your Phone?, 9/5/20070 Archived 2011-08-18 at the Wayback Machine , describes the emerging demand for data management in applications that run on Java ME-based smartphones, and the handful of database systems available to satisfy this need.
  6. McObject releases Perst, an open source embedded database for Java. Java Developer’s Journal, 2/9/2006
  7. McObject releases Perst vs. SQLite benchmark on Android. Dr. Dobb’s Journal, 1/2/2008
  8. "Embedded database adds LINQ support". Archived from the original on 2013-02-09. eWeek’s Windows For Devices, 6/9/2008
  9. McObject Released Perst 4.0, New Native Full-Text Search and More for Android. Archived 2011-05-20 at the Wayback Machine Open Handset Magazine, 1/27/2009
  10. For further discussion of features see McObject’s Perst embedded database specification; also its Perst for Java: Introduction and Tutorial and Perst for .NET: Introduction and Tutorial
  11. Porting a Java ME Midlet Between Blackberry and Nokia S40 and S60 Devices, http://eetimes.com/design/embedded/4007203/Porting-a-Java-ME-Midlet-Between-Blackberry-and-Nokia-S40-and-S60-Devices
  12. Perst and Silverlight Embedded Database Demo Application
  13. Perst - a database for Windows Phone 7 Silverlight