Skip to content.

Manageability

Sections
Personal tools
You are here: Home » blog » stuff » Alternative Persistence Written in Open Source Java

Alternative Persistence Written in Open Source Java

Sometimes you have to deviate away from the well travelled path to achieve success. Persistence is one are the most travelled path have been the Object Relational (OR) mapping solutions like Hibernate, TopLink, JDO implementations and EJB CMP. However, you can't believe that there exists a silver bullet for OR mapping problem. Therefore, I've come up with a new list that with some novel OR mapping alternatives:

  1. SimpleORM - SimpleORM provides a simple but effective implementation of OR mapping on top of JDBC at low cost and low overhead. No XML files to configure, minimal reflection, no pre processing, and certainly no byte code post processing. This simple and elegant framework does not require any clever tricks. SimpleORM takes great care with database semantics. Locking, quality of information, and caching are all treated properly. SimpleORM allows allows for raw JDBC and non-Java database access and constraints without compromising database integrity. Optimistic locks are used for inter-transaction locking. And nothing gets shipped until its true semantics are properly documented.
  2. Jaxor - Jaxor is a code-generating (rather than using byte code post processing) OR mapping tool which takes information defined in XML relating to the relational entities to be mapped and generates classes, interfaces and finder objects. Jaxor implements many of the design patterns discussed in the book "Patterns of Enterprise Application Architecture" including Active Record, Data Mapper, Dependent Mapping, Identity Field, Identity Map, Lazy Load, Metadata Mapping, Money through, and Unit of Work.
  3. Chameleon - Chameleon is two projects rolled into one. It is both an open source implementation of an Adaptive Object Model, and a persistence service. Chameleon will allow accessing not only relational data stores but any data store that can be accessed via the J2EE JCA. Supports self referencing objects, recursive queries and cross database retrievals.
  4. Bhavaya - Bhavaya is a Java library that provides real-time and up-to-date access to database data. It contains a persistence layer that inflates and maintains Java objects from database data, keeping the objects current with the data. The library also provides a large number of user interface and utility classes often required when dealing with continually changing data. The Bhavaya persistence layer is different from other implementations such as Hibernate in that the properties of Bhavaya's objects always reflect the current value of the data in the database. That is, if the database data changes then the data in Bhavaya's objects is automatically updated. Bhavaya does not require any pre-existing architecture, it can be used, easily, with existing databases and existing object schemas.
  5. IBatis SQL Maps - Simplicity is the biggest advantage of SQL Maps over other frameworks and object relational mapping tools. To use SQL Maps you need only be familiar with JavaBeans, XML and SQL. There is very little else to learn. There is no complex scheme required to join tables or execute complex queries. Using SQL Maps you have the full power of real SQL at your fingertips. The SQL Maps framework can map nearly any database to any object model and is very tolerant of legacy designs, or even bad designs. This is all achieved without special database tables, peer objects or code generation.
  6. OFBiz Entity Engine - No Object-Relational Mapping. Data is all relational, front to back, meaning no extra object to relation and relation to object translation code. Relational data is also the data structure used in logic, or rules, languages providing a seamless integration between the Rules Engine and the Entity Engine. Functionality implemented as events and services that are static Java methods, BeanShell scripts, rulesets or workflows. Data is manipulated directly in entities rather than using an object model.
  7. Mondrian - Mondrian is an OLAP engine written in Java. It executes queries written in the MDX language, reading data from a relational database (RDBMS), and presents the results in a multidimensional format via a Java API. Online Analytical Processing (OLAP) means analysing large quantities of data in real-time. Unlike Online Transaction Processing (OLTP), where typical operations read and modify individual and small numbers of records, OLAP deals with data in bulk, and operations are generally read-only. The term 'online' implies that even though huge quantities of data are involved — typically many millions of records, occupying several gigabytes — the system must respond to queries fast enough to allow an interactive exploration of the data. As we shall see, that presents considerable technical challenges.
  8. Compass - The focus of Compass is to enable the use of powerful Search Engine semantics within applications to query data object models. Compass architecture makes this possible through the use of flexible Object / Search Engine Mapping (OSEM) technology. Search Engine abstraction layer using the Lucene search engine provides simple APIs, transactional support, batch or dynamic contexts and different index optimizers.
  9. Hydrate - Hydrate is a Java tool that provides for fast efficient and error-free transformation of data between three different representations: relational databases, objects in an object-oriented programming language and extended markup language (XML). It is different from other open source and commercial tools that do object relational mapping or object XML mapping because its focus is in mapping existing relational and XML data into an object model of your choice as opposed to taking an obejct model and persisting it, or taking an XML schema and creating objects from it. Hydrate represents a rewrite of a commercially developed framework that has been operating in commercial production systems for 5 years.
  10. Carbonado - Carbonado is a relational persistence abstraction layer, capable of binding to different storage technologies. One feature is the ability to issue queries without translating to SQL. Using Carbonado against a BDB offers high performance by skipping all the translation layers offered by other solutions. In order to query against a BDB, Carbonado adds support for indexes and joins. A rule-based query optimizer decides which indexes to use for a given query. A common use of Carbonado is to replicate into a BDB, using it as a complete cache. All queries go against the cache, sparing your central RDMS from the load. Carbonado was developed internally at Amazon.com.

Please let me know what I should also include.

[update] Here's a good motivational read: " Long anticipated, the arrival of radically restructured database architectures is now finally at hand.".

Created by admin
Last modified 2006-11-06 10:39 AM

visitors
reading
 
 

Powered by Plone

This site conforms to the following standards: