InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

DB40 v7 and Increasing Popularity of ODBMS

Posted by Alexander Olaru on Dec 21, 2007

Sections
Architecture & Design,
Development,
Operations & Infrastructure
Topics
Java ,
.NET ,
Data Access
Tags
Object Databases ,
db4o
db4o has been growing fast lately, having recently released v7.0 beta of their flagship db4o embedded ODBMS, and claiming over 30,000 deployments of their open source ODBMS.  Is this a sign of changing times reflecting the ODBMS landscape?

InfoQ interviewed Nik Wekwerth of db4objects (db4o), about his view on the state of ODBMS and new features in the recent db4o release.  The discussion started with the enumeration of some of the drivers behind the seemingly increasing popularity of object databases within the developer community. In Nik’s view ODBMS are back and their adoption is growing fast due to 3 factors:
  • ease of native access in Java and .NET
  • suitability for specific problem domains
  • open source
He detailed each of these factors:

...Developers don't have to learn a new language, [in the db40 case] they just drop in a .jar or .dll file into their project and are up and running... Simplicity of use and full integration to the programming language, the native approach, are key to the success of object databases in general...Queries that are native to Java or .NET leverage benefits of development tools such as type-safe coding, eliminate the mismatches that surface when complex structures are used with object-relational mappers, and save the effort of learning the intricacies of another language.

...The requirements of the application should define whether a developer should use an rdbms or an odbms. Many application domains are better suitable for object oriented structures and persistence, such as complex configuration or security data, searchable multi-media or spatial data, and very complex relationships inherent to a data domain. Another determinant is whether persistence is fully “embedded” into the application, i.e., invisible to the end user, in which case an object database is much cleaner and easier to maintain than an application that has to map objects to tables.

...open source is a big driver in the recent surge of adoption of object databases.  Developers have actually always liked the idea of an ODBMS.  It was more the DBAs and managers that were bought into RDBMSs like Oracle, be it for the right (data abstraction) or the wrong reasons (golf tournaments).  Open source has put developers back into a more powerful position.  They can now more autonomously make design decisions “below the radar of management” and prove that object databases helps them save time, build more compelling architectures and ultimately save their customers a lot of money.

db40 has seen a lot of adoption for scenarios where it is embedded within an application, with no separate deployable database visible to end users or developers. Nik characterized these as zero-admin environments where an object database' simplified API,  elimination of any run-time administration, and open source properties make it very suitable for embedding into not only devices like robots, cars, and cell-phones, but also packaged software, SCADA systems and caches anywhere in the network. Nik mentioned that Ricoh is using them in their printers & copiers.

Commenting on adoption in the enterperprise, Nik cited an example of ow financial institutions leverage db4o as an intelligent cache of data from their central database to enable faster transactions. He also added that object
databases can live nicely side by side with rational databases because, as in db4o’s case, they allow data to be replicated into the relational database.

The discussion shifted afterwards to the new features in db4o v7.0:

 The biggest highlight is Transparent Activation (TA). TA simplifies object retrieval by automating object activation. With TA, enabled objects are only activated when they are requested. The key here is that developers don't have to define the activation depth manually any more, which simplifies coding. Another benefit is that memory consumption is optimized, as objects are only loaded into memory when they are requested.

With Transparent Activation developers no longer need to worry, when and how objects are loaded. db4o has more information at runtime than developers have at development time, so it can do a smart job and only load the objects that are really needed.

The commercial-only offering of the product includes 2 other important features:

  • ObjectManager Enterprise - a plug-in for Visual Studio which enables database browsing and querying from within the IDE.
  • XtremeConnect - a virtual pairing technique that allows for remote pair programming via Skype and TightVNC.

db4o is also preparing for an upcoming release of the product for the .NET platform. He described the similarities and differences between the Java and the .NET versions:

Both our Java and our .NET version are produced from a common shared code base. All our distributions are produced in a fully automated continuous build that converts code between platforms. In some places we do make some adjustments for the respective platforms, because we follow standard conventions...Only a few differences apply: The current db4o Replication System (dRS) is build on Hibernate and is more complete for Java than .NET. On the .NET side we are in the process of providing a LINQ interface shortly.

As a result, Nik mentioned that “the database file format is the same. You can open databases with .NET that were produced with Java and vice versa. You can also connect to a .NET server from a Java client and vice versa.”

The interview concluded with Nik sharing his vision in regards to the opportunities that Google’s Android platform brings to their product. db4o allows ISVs that build software for Android to develop:

...client-side applications that can adapt automatically over time (as db4o detects and adjust to schema changes) and can collaborate and share data among different applications. db4o can take care of all aspects of data administration, e.g. when you update your software with a new data model over the air.

db4o also works directly with members of the Open Handset Alliance to overcome the database shortcomings of Android and provide powerful cross-application persistence enhancements. As a result, for instance, mobile carriers can provide exciting new services around user generated data (UGD) such as complete backup functions of all application data. If you loose your handset, you can get a new handset and all your personal data is already preloaded. Another use case is p2p data sharing and p2p social networking.

What is your opinion? Are you using an ODBMS in your applications? What are the scenarios in which you think an odbms works better than the traditional rdbms approach?

Process for adoption - standardised APIs by Andy Jefferson Posted
  1. Back to top

    Process for adoption - standardised APIs

    by Andy Jefferson

    From db4o 5.5 (using JPOX 1.2) you can also utilise a (standardised) JDO/JPA API and persist/retrieve/delete objects just like you do with your RDBMS. This provides an easy adoption path for projects interested in the technology. Using this JDO/JPA layer, users have had transparent activation/lazy loading for some time, and now they also have it inbuilt in db4o. In addition using this layer you have a JDOQL querying capability, hence not having to learn the excellent SODA language, instead utilising queries that your application has been using for some time, and in the future JPQL too.

    Java Persistent Objects (JPOX)

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.