asp tutorials, asp.net tutorials, sample code, and Microsoft news from 15Seconds
Data Access  |   Troubleshooting  |   Security  |   Performance  |   ADSI  |   Upload  |   Email  |   Control Building  |   Component Building  |   Forms  |   XML  |   Web Services  |   ASP.NET  |   .NET Features  |   .NET 2.0  |   App Development  |   App Architecture  |   IIS  |   Wireless
 
Pioneering Active Server
 Power Search





Active News
15 Seconds Weekly Newsletter
• Complete Coverage
• Site Updates
• Upcoming Features

More Free Newsletters
Reference
News
Articles
Archive
Writers
Code Samples
Components
Tools
FAQ
Feedback
Books
Links
DL Archives
Community
Messageboard
List Servers
Mailing List
WebHosts
Consultants
Tech Jobs
15 Seconds
Home
Site Map
Press
Legal
Privacy Policy
internet.commerce














internet.com
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

HardwareCentral
Compare products, prices, and stores at Hardware Central!

Introducing Perst, an Open Source, OO Embedded Database for .NET
By Ted Kenney
Rating: 2.2 out of 5
Rate this article


  • email this article to a colleague
  • suggest an article



    On February 6, 2006, McObject announced its official release of Perst, an open source, object-oriented embedded database for Java and C#. In addition to high performance and a modest footprint, one of Perst's greatest achievements is its tight integration with Java and C#, resulting in exceptional 'transparent persistence' and ease in working with objects in these fast-growing programming languages.

    Offered since 2003 by its original engineer in Russia, Perst has built an impressive following: more than 1,000 developers have downloaded it, and the database has been adopted for major commercial software products. Effective immediately, McObject is offering Perst as a free download for evaluation and non-commercial use, and spearheading its development in the open source community. McObject also now sells Perst support as well as commercial licenses.

    Under Perst's dual license, users can modify database source code and use it freely in non-commercial applications (software that is neither sold nor used internally by a business, and for which source code is made available) under the GNU General Public License (GPL). McObject's commercial license is required if Perst-based software will be sold or used for business, or if source code is to be withheld.

    "iSpheres uses Perst to implement streaming data persistence for complex events processing, and to provide time series persistence for XMLBeans, Java Beans and HashMaps. Perst has proven to be an excellent choice for our Java-based, real-time enterprise software application. Its Java implementation is highly readable and understandable. Perst's simplicity of design, along with open source code, has enabled us to optimize certain indexes for working with streaming data."
        - Kal Krishnan, VP of Engineering, iSpheres Corporation

    Perst is ideal for Java and C# applications requiring a modest footprint and fast, multi-platform data management--typical uses include packaged software, mobile and embedded applications, Web services and industrial systems. With a run-time code footprint of between 30K and 300K, Perst fits well within the resource constraints of many embedded systems applications.

    Perst's fundamental achievement lies in making persistent Java and C# objects as efficient and easy to use as possible. In most cases, Perst automatically loads the persistent objects without explicit programmer command. When used with aspect-oriented tools such as AspectJ and JAssist, Perst provides completely transparent persistence.

    Perst classes enable efficient filtering of collection elements. For efficient access to persistent objects, Perst also implements specialized collection classes optimized for different data layouts and access patterns, including: a classic B-Tree implementation; R-tree indexes for spatial data representation; main-memory database containers, based on T-Tree indexes, optimized for memory-only access; the Patricia Trie index to support IP address data; a TimeSeries class to efficiently deal with small fixed-size objects; specialized versions of collections for thick indices (indices with many duplicates), and bit indices (keys with a restricted number of possible values).

    "Perst not only met our requirements, but excelled in all major categories and handily beat the competition in head-to-head memory and performance comparison."
        - Sam Edge, Founder, Impartif

    In contrast to object/relational databases, or tools that provide object/relational mapping, Perst stores data directly in Java/C# objects. This eliminates the need for expensive (in performance terms) run-time conversions between the database representation of the data and the Java/C# representation.

    Unlike many other object-oriented databases, Perst requires no dedicated compiler, byte code processor or specialized Java run-time environment, yet provides a high degree of application transparency. The Perst API is convenient, flexible and easy to use. Perst requires no end-user administration, and along with its simplicity, Perst ensures integrity via transactions that adhere to the "ACID" properties (Atomicity, Consistency, Isolation and Durability) with very fast recovery.

    Perst also provides features such as garbage collection, detection of hanging references, automatic schema evolution, XML import/export utilities, master-slave replication support (with the option to run read-only queries on slave nodes), and integration with AspectJ and JAssist AOP tools.

    "Why Perst? It's simply the best in its category. Perst meets Java and C# developers' need for a small-footprint, object-oriented embedded database that matches these languages' productivity, while embracing our core values of developer-friendliness, outstanding performance, and minimal overhead."

    "With open source and the Internet, anything is possible. Just as a graduate student in Finland can launch an operating system that thoroughly disrupts software markets, so can a smart programmer in Russia create a database that upends embedded data management for Java and .NET."
        - Steve Graves, CEO and co-founder, McObject

    What Perst Is and Is Not

    What Perst Is

    Perst is an object-oriented embedded database for applications that need to deal with persistent data. It is easy to use and provides high performance. Its main advantage is its tight integration with the programming language. There is no gap between the database and the application data models since Perst directly stores data in language objects. Thus, there is no need for data-packing or unpacking code to map between the application's data model and the database's data model, in contrast to the requirements of relational and object-relational databases.

    Unlike many other object-oriented database management systems (OODBMSs), Perst does not require a special compiler or pre-processor. Yet, it is able to provide a high level of transparency. The Perst API is convenient, flexible, easy to use and very fast, as much as four times faster than alternative commercial Java OODBMS.

    Perst is a very compact database system, with a core consisting of only five thousand lines of code. It makes little demand on system resources. Moreover, Perst does not require any administration efforts. Despite such simplicity, Perst supports transactions with the ACID properties, with very fast recovery after an application error.

    There are two implementations of Perst - pure Java and pure C# (C Sharp). The C# implementation was produced from Java using a Java-to-C # converter (note that significant manual changes are required to make this work). The C# implementation supports a larger number of primitive types (C# has unsigned integer types and enums). In all other respects, the two databases are completely equivalent and provide the same API. Perst.NET supports standard and compact .Net frameworks and can therefore be used to develop WinCE and PocketPC applications.

    What Perst Is Not

    Perst is not an enterprise-class database management system, nor an object-relational mapping tool.

    Perst is not a client/server architecture database system and cannot support multiple concurrent processes sharing a common database. (Multiple threads within a single process are supported.)

    Perst does not have a high level query language, such as SQL.

    Additional Information

    More information, and Perst database software for Java and .NET, is available from www.mcobject.com/perst.

    About McObject

    Founded by embedded database and real-time systems experts, McObject offers proven data management technology that makes intelligent devices smarter, more reliable and more cost-effective to develop and maintain. McObject counts among its customers industry leaders such as DaimlerChrysler, EADS, JVC, Tyco Thermal Controls, F5 Networks, Genesis Microchip, Motorola and Boeing. McObject, based in Issaquah, WA, is committed to providing innovative technology and first-rate services to customers and partners. The company can be reached at +1-425-831-5964, or visit www.mcobject.com.

    McObject and Perst are registered trademarks of McObject LLC. All other company or product names mentioned herein are trademarks or registered trademarks of their respective owners.

  • Rate This Article
    Not HelpfulMost Helpful
    1 2 3 4 5
    Other Articles
    Jul 21, 2005 - N-Tier Web Applications using ASP.NET 2.0 and SQL Server 2005 - Part 1
    While the .NET Framework made building ASP.NET applications easier then it had ever been in the past, .NET 2.0 builds on that foundation in order to take things to the next level. This article shows you to how to construct an N-Tier ASP.NET 2.0 Web application by leveraging the new features of ASP.NET 2.0 and SQL Server 2005.
    [Read This Article]  [Top]
    Apr 28, 2005 - New Files and Folders in ASP.NET 2.0
    With the release of ASP.NET 2.0, Microsoft has greatly increased the power of ASP.NET by introducing a suite of new features and functionalities. As part of this release, ASP.NET 2.0 also comes with a host of new special files and folders that are meant to be used to implement a specific functionality. This article examines these new files and folders in detail and provides examples that demonstrate how to utilize them to create ASP.NET 2.0 applications.
    [Read This Article]  [Top]
    Mar 10, 2005 - The DataSet Grows Up in ADO.NET 2.0 - Part 2, Cont'd
    Alex Homer continues his detailed look at the major changes to the DataSet class. In this part, he looks at two features that allow developers to work with data in a more structured and efficient way when using the DataSet with a SQL Server 2005 database server.
    [Read This Article]  [Top]
    Mar 9, 2005 - The DataSet Grows Up in ADO.NET 2.0 - Part 2
    Alex Homer continues his detailed look at the major changes to the DataSet class. In this part, he looks at two features that allow developers to work with data in a more structured and efficient way when using the DataSet with a SQL Server 2005 database server.
    [Read This Article]  [Top]
    Mar 3, 2005 - The DataSet Grows Up in ADO.NET 2.0 - Part 1, Cont'd
    In this article, Alex Homer looks at the changes between the version 1.x and version 2.0 DataSet and their associated classes, showing you how you can take advantage of the new features to improve your applications' capabilities and performance.
    [Read This Article]  [Top]
    Mar 2, 2005 - The DataSet Grows Up in ADO.NET 2.0 - Part 1
    In this article, Alex Homer looks at the changes between the version 1.x and version 2.0 DataSet and their associated classes, showing you how you can take advantage of the new features to improve your applications' capabilities and performance.
    [Read This Article]  [Top]
    Feb 16, 2005 - Writing a Custom Membership Provider for the Login Control in ASP.NET 2.0
    In ASP.NET 2.0 and Visual Studio 2005, you can quickly program custom authentication pages with the provided Membership Login controls. In this article, Dina Fleet Berry examines the steps involved in using the Login control with a custom SQL Server membership database.
    [Read This Article]  [Top]
    Dec 29, 2004 - ClickOnce Deployment in .NET Framework 2.0
    In this article, Thiru Thangarathinam examines .NET 2.0's new ClickOnce deployment technology that is designed to ease deployment of Windows forms applications. This new technology not only provides an easy application installation mechanism, it also eases deployment of upgrades to existing applications.
    [Read This Article]  [Top]
    Dec 15, 2004 - A Sneak Peek at ASP.NET 2.0's Administrative Tools
    With ASP.NET 2.0, Microsoft has made great strides in increasing developer productivity and has made implementing previously complex solutions relatively easy. Where this version of ASP.NET really shines, however, is in its new administrative tools that allow developers to spend less time managing the configuration of the servers and software and more time developing great code.
    [Read This Article]  [Top]
    Nov 17, 2004 - The ASP.NET 2.0 TreeView Control
    Thiru Thangarathinam introduces ASP.NET 2.0's new TreeView control which provides a seamless way to consume and display information from hierarchical data sources. The article discusses this new control in depth and explains how to use this feature rich control in your ASP.NET applications.
    [Read This Article]  [Top]
    Mailing List
    Want to receive email when the next article is published? Just Click Here to sign up.

    Support the Active Server Industry