Download 6.11 Platform Support

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

IMDb wikipedia , lookup

Oracle Database wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Serializability wikipedia , lookup

Functional Database Model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Database wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Relational model wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Concurrency control wikipedia , lookup

Database model wikipedia , lookup

Versant Object Database wikipedia , lookup

Transcript
OODBMS Comparison
Comparison of Object Oriented Database Systems
By
Ali Barfatani: Poet & GemStone sections
David Buchanan: Versant section & Conclusion
Matthew Buchanan: Objectivity & ObjectStore Sections
Mark Downing: Jasmine section & Introduction
Napier University, Edinburgh
-1-
OODBMS Comparison
Table of Contents
1.0
1.1
1.2
1.3
1.4
ABSTRACT .............................................................................................................................. 4
PURPOSE ..................................................................................................................................... 4
METHODS .................................................................................................................................... 4
OBJECTIVES ................................................................................................................................ 4
DISCUSSION ................................................................................................................................ 4
2.0
INTRODUCTION .................................................................................................................... 5
3.0
LITERATURE REVIEW ........................................................................................................ 6
3.1 COMPARISON OF FOUR OODBMS, PETER KUENG, INSTITUTE OF FRIBOUG RUE FAUCIGNY 2,
SWITZERLAND. ..................................................................................................................................... 6
3.2 OBJECT DATABASE, AN ODMG APPROACH, RICHARD COOPER................................................. 6
3.3 THE JASMINE OBJECT DATABASE MULTIMEDIA APPLICATIONS FOR THE WEB, SETRAG
KHOSHAFIAN, SURAPOL DASANANDA, NORAYR MINASSIAN ....... ERROR! BOOKMARK NOT DEFINED.
3.4 OBJECT-ORIENTED DATABASE SYSTEMS, ELISE BERTINO, LORENZO MARTINO......................... 7
3.5 JASMINE OBJECT DATABASE WEB SITE ....................................................................................... 7
3.6 EVALUATION OF OBJECT-ORIENTED DATABASE SYSTEMS, C. HUEMER, G. KAPPEL, S. RAUSCHSHOTT, W. RETZSCHITZEGGER, A MIN TJOA, S. VIEWEG, R. WAGNER ................................................ 8
3.7 OBJECTSTORE TECHNICAL OVERVIEW ....................................................................................... 8
3.8 OBJECTIVITY/DB TECHNICAL OVERVIEW ................................................................................... 8
3.9 DATABASE MANAGEMENT SYSTEMS: RELATIONAL, OBJECT-RELATIONAL, AND OBJECTORIENTED DATA MODELS, L. BERGHOLT, J. STEEN DUE, T. HOHN, J. LINDSKOV KNUDSEN, K.
HJERRILD NIELSEN, T. SONNE OLESEN, E. HAHN PEDERSEN ............................................................... 9
3.10 THE JASMINE OBJECT DATABASE MULTIMEDIA APPLICATIONS FOR THE WEB, SETRAG
KHOSHAFIAN, SURAPOL DASANANDA, NORAYR MINASSIAN ............................................................... 9
4.0
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
5.0
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
6.0
6.1
6.2
6.3
6.4
VERSANT VERSION 6.0...................................................................................................... 10
BACKGROUND ........................................................................................................................... 10
ARCHITECTURE ......................................................................................................................... 10
RECOVERY ................................................................................................................................ 10
CONCURRENCY ......................................................................................................................... 10
SCHEMA EVOLUTION ................................................................................................................ 11
VERSIONING .............................................................................................................................. 11
PROGRAMMING LANGUAGES .................................................................................................... 11
PERSISTENCE ............................................................................................................................. 11
TOOLS ....................................................................................................................................... 11
QUERY SUPPORT ....................................................................................................................... 11
LEGACY SUPPORT ..................................................................................................................... 12
PLATFORM SUPPORT ................................................................................................................. 12
JASMINE ................................................................................................................................ 12
BACKGROUND ........................................................................................................................... 12
ARCHITECTURE ......................................................................................................................... 12
RECOVERY ................................................................................................................................ 13
CONCURRENCY ......................................................................................................................... 13
SCHEMA EVOLUTION ................................................................................................................ 13
VERSIONING .............................................................................................................................. 13
PROGRAMMING LANGUAGES .................................................................................................... 14
PERSISTENCE ............................................................................................................................. 14
TOOLS ....................................................................................................................................... 14
QUERY SUPPORT ....................................................................................................................... 14
PLATFORM SUPPORT ................................................................................................................. 15
GEMSTONE........................................................................................................................... 15
BACKGROUND ........................................................................................................................... 15
ARCHITECTURE ......................................................................................................................... 15
RECOVERY ................................................................................................................................ 16
CONCURRENCY ......................................................................................................................... 16
-2-
OODBMS Comparison
6.5
6.6
6.7
6.8
6.9
6.10
6.11
7.0
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
8.0
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
8.12
9.0
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
9.10
9.11
9.12
SCHEMA EVOLUTION ................................................................................................................ 16
VERSIONING .............................................................................................................................. 17
PROGRAMMING LANGUAGES .................................................................................................... 17
PERSISTENCE ............................................................................................................................. 17
TOOLS ....................................................................................................................................... 17
QUERY SUPPORT ....................................................................................................................... 18
PLATFORM SUPPORT ................................................................................................................. 18
POET/FASTOBJECTS ......................................................................................................... 18
BACKGROUND ........................................................................................................................... 18
ARCHITECTURE ......................................................................................................................... 18
RECOVERY ................................................................................................................................ 19
CONCURRENCY ......................................................................................................................... 19
SCHEMA EVOLUTION ................................................................................................................ 19
VERSIONING .............................................................................................................................. 19
PROGRAMMING LANGUAGES .................................................................................................... 19
PERSISTENCE ............................................................................................................................. 19
TOOLS ....................................................................................................................................... 19
QUERY LANGUAGE SUPPORT .................................................................................................... 20
PLATFORM SUPPORT ................................................................................................................. 20
OBJECTIVITY/DB................................................................................................................ 20
BACKGROUND ........................................................................................................................... 20
ARCHITECTURE ......................................................................................................................... 21
RECOVERY ................................................................................................................................ 21
CONCURRENCY ......................................................................................................................... 21
SCHEMA EVOLUTION ................................................................................................................ 21
VERSIONING .............................................................................................................................. 22
PROGRAMMING LANGUAGES .................................................................................................... 22
PERSISTENCE ............................................................................................................................. 22
TOOLS ....................................................................................................................................... 22
QUERY SUPPORT ....................................................................................................................... 23
LEGACY SUPPORT ..................................................................................................................... 23
PLATFORM SUPPORT ................................................................................................................. 23
OBJECTSTORE .................................................................................................................... 24
BACKGROUND ........................................................................................................................... 24
ARCHITECTURE ......................................................................................................................... 24
RECOVERY ................................................................................................................................ 24
CONCURRENCY ......................................................................................................................... 24
SCHEMA EVOLUTION ................................................................................................................ 24
VERSIONING .............................................................................................................................. 24
PROGRAMMING LANGUAGES & INTERFACES ............................................................................ 25
PERSISTENCE ............................................................................................................................. 25
TOOLS ....................................................................................................................................... 25
QUERY SUPPORT ....................................................................................................................... 25
LEGACY SUPPORT ..................................................................................................................... 25
PLATFORM SUPPORT ................................................................................................................. 25
10.0
RESOURCES ......................................................................................................................... 26
11.0
CONCLUSION ....................................................................................................................... 26
12.0
BIBLIOGRAPHY .................................................................................................................. 28
12.1 REFERENCE TITLES ................................................................................................................... 28
12.2 WEB RESOURCES ...................................................................................................................... 28
-3-
OODBMS Comparison
1.0
Abstract
1.1
Purpose
The aim of this study was to determine the features of an OODBS with respect
to the Object Database Management Group (ODMG) specifications and
compare and contrast the functionality of the features within current Object
Oriented Database Systems.
1.2
Methods
We initially performed a literature review of available journals, articles, web
resources and reference books. We then compiled a list of thirty-five OODB
systems of which we selected six systems to compare based upon their market
share, their current availability and Vendor support. The systems selected were
Gemstone, Poet, ObjectStore, Objectivity/DB, Jasmine and Versant. We then
compiled a list of criteria, which we applied to each database in turn.
1.3
Objectives
1. Gather and distinguish relevant information by performing a
comprehensive literature review.
2. Consolidate the information to establish which systems are available today
and distinguish systems that are no longer supported.
3. Select the systems for comparison.
4. Produce a list of criteria to compare the systems against.
5. Apply our selected criteria against each of the selected systems to produce
a report that will highlight the particular features of each individual
system.
6. Provide a reliable up to date resource to develop a presentation for the
OODB module.
7. Further develop our understanding of OODBMS products and vendors.
1.4
Discussion
Each of the systems analysed within this report implement the functionality set
out within the ODMG specifications. Each system however implements the
specifications differently and incorporate enhanced features depending on the
market the products are aimed at.
-4-
OODBMS Comparison
2.0
Introduction
We selected six databases from a list of thirty-five systems that we compiled
through our literature review. To select the systems for the comparison we
initially used market share to distinguish the most popular products. However
after further analysis we discovered two of the systems o2 and ITICASA are
no longer supported by vendors and have become discontinued. For this
reason we introduced two further criteria: vendor support and availability of
the system.
Gemstone
Versant
Object Store
Poet
Jasmine, Objectity/DB
and Others
Figure 2.1 – OODBMS Market Share
Of the six systems featured Gemstone was the first to appear in 1987.
Gemstone was one of the first stages of Object Oriented Database
Management System (OODBMS). The early versions of OODBMS were
created to support a persistent language and were used on standalone systems.
They were based on proprietary language and did not use an industrial
standard platform.
1989 saw the emergence of the second stage of development in OODBMS
with databases such as Objectivity, which was developed in 1988 along with
Versant. The second stage in the development saw the use of client server
architecture and joint platforms: C++, X Windows and Unix workstations.
August 1990 saw the third major stage in the development of OODBMS such
as Versant and Poet. These OODBMS were defined as Database Management
Systems (DBMS), which supported advanced characteristics such as version
support and had a Data Definition Language/Data Manipulation Language that
was object orientated and computationally complete. Since the late 1990s
Versant have shifted the product focus towards the object orientated database
system providing a tightly integrated e-commerce solution. Jasmine appeared
-5-
OODBMS Comparison
in 1997 with all of the major functionality expected of an OODB as it moved
from a research system to a commercial system.
The ODMG Group has effectively become the international standard for
Object Orientated Database Systems. The members are responsible for setting
the direction of Object Orientated Database Management Systems, such as
specifying the object query language and the object definition language. Out
of the companies that we are investigating the following companies are
members.





Poet Software Corporation
Objectivity .Inc
Reviewer Members
Computer Associates
Versant Corporation
After selecting our systems. We used the resources we had compiled to select
a list of criteria to use as our basis of comparison between the systems. The
criteria selected were:











3.0
Architecture / Schema
Recovery
Concurrency
Persistence
Schema Evolution
Versioning
Programming Languages
Support Tools
Query Support
Legacy Support
Platform Support
Literature review
3.1
Comparison of Four ooDBMS, Peter Kueng, Institute of Friboug
Rue Faucigny 2, Switzerland.
This article was an update on a previous paper (Comparison of ten ooDBMS)
by the same author and is in fact two papers that compare eight OODBMS.
The comparisons were very informative and helped us choose some of our
criteria for our comparisons. The paper, however, was published in 1997 and
is now dated. Noticeably o2 was included in the comparison; this product is no
longer available, and other systems such as Versant had progressed to newer
versions resulting in the actual technical content being unreliable.
3.2
Object Database, An ODMG Approach, Richard Cooper.
Chapter 16, A Survey of other OODBMS products, provided us with
information regarding the OODBMS vendors who were contributing to the
Object Database Management Group at the time of publishing. The author
provided information regarding the different approaches of vendors and the
technical differences between their products. This resource helped us to
-6-
OODBMS Comparison
develop a template for our comparisons. The book however published in 1997
was out of date. The author focussed heavily on o2 and the actual systems
compared have progressed over the last five years making some of the
technical content unreliable.
3.3
Object-Oriented Database Systems, Elise Bertino, Lorenzo
Martino
This book was published in 1993. One of biggest limitations of this book is its
age. The comparisons the book provides are brief and not very in-depth, and
many of the systems compared are no longer around. The other section of the
book that did not focus on fundamental explanations object orientated
terminology briefly explained the object orientated database historical
background. However, we found the authors use of generations confusing, as
shown in the following reference:
‘The first third generation products, Itasca, was lunched
in August 1990, only a few months after the second
generation OODBMS.’
This reference is taken from the book, Object-Oriented Database Systems
written by Elosa Bertino and Lorenze Martine from Chapter 1 Section 1.5,
titled A look at the Past, page 9, 3rd paragraph.
This section misinterpreted the use of generations to stand for Generation
Languages such as 4GL. Apart from that we found it an interesting overview
on the historical development of Object Orientated Databases. The biggest
criticism of the book is that it only provides a brief overview of the subject.
3.4
Jasmine Object Database web site
URL: http://www3.ca.com/Solutions/ProductOption.asp?ID=3008
This web address above was the only location on the Computer Associates
website where Jasmine Database information was available form. We would
initially expect that that the Computer Associates website to have been more
in depth and to have a detailed information covering all aspects of the Jasmine
database. The product offered section of the website led us to the databse
product description. The document provides a brief business oriented
description of some of the database’s features, however, it shows the Jasmine
database in a positive light with no critical comparison with other existing
object orientated database. In our opinion it would have been of greater
interest if they had explained in further detail. The follow bullet point is
referenced from the second page at the bottom of the column on the left hand
side.
Administrative Tools: Full backup and recovery
services are provided; these can run off-line or while the
database is operating. The Browser includes graphical
screens that simplify data administration tasks
-7-
OODBMS Comparison
The reference above is an example of the level of detail in the product
description.
3.5
Evaluation of Object-Oriented Database Systems, C. Huemer, G.
Kappel, S. Rausch-Shott, W. Retzschitzegger, A Min Tjoa, S.
Vieweg, R. Wagner
This paper, published in 1994, provides a framework for evaluating OODBS’s.
The aim of the paper is to provide an evaluation catalogue, with 20 sections,
each with about 25 sub criteria, resulting in over 500 questions, although the
catalogue is not included in the paper. However, for the purposes of this
report, the paper was a good starting point for defining the criteria that we
used for the comparison, which we derived from the 20 sections provided in
the paper.
The paper assumes a certain amount of knowledge from the reader, and so
doesn’t go into much detail of the meaning behind many of the criteria.
Instead, it highlights the relevancy of each criterion, for example:
Query Optimization addresses the efficient execution of
queries. Our investigations in this section mainly focus
on the use of the above mentioned features (indexes,
clustering) as well as the management of the query
optimizer (tuning and interrogating).
While the first part of the paper was relevant to this report, it should be said
that 21 out of its 26 pages were dedicated to methods for benchmarking
OODB’s, an area that is far beyond the scope of this report. However, we
found the paper to be a helpful and informative source of information on the
process of evaluating an OODBS.
3.6
ObjectStore Technical Overview
This is a technical manual providing an overview of the features of
ObjectStore. It was created in 1997, but according to the developers, there
have been no major enhancements in the database that invalidate any of the
information in the manual.
This was the only reliable, up-to-date source of information on ObjectStore
that was freely available. It is lacking in information in what could be
considered key areas – persistence, for example. However, it is reasonably
unbiased for a manufacturer-produced technical overview, and highlights
features would not be considered advantageous.
3.7
Objectivity/DB Technical Overview
This is a technical manual very similar in style to the ObjectStore technical
overview. It provides a very comprehensive overview of Objectivity/DB’s
capabilities, frequently illustrated with examples.
-8-
OODBMS Comparison
3.8
Database Management Systems: Relational, Object-Relational,
and Object-Oriented Data Models, L. Bergholt, J. Steen Due, T.
Hohn, J. Lindskov Knudsen, K. Hjerrild Nielsen, T. Sonne Olesen,
E. Hahn Pedersen
URL: http://citeseer.nj.nec.com/bergholt98database.html
The comparisons of existing systems in this document we found interesting,
however it is clear to see that the document is not recent as it includes
information on o2, which was discontinued two years ago. We also found
inaccurate information in the criteria breakdown, for example:
8.2.6 Versioning of Data
POET does not seem to offer versioning of data.
This fact is inaccurate as POET clearly does support versioning of data. The
authors of the document review Jasmine, although this is the only occasion
where we found a comparison between Jasmine and other OODB’s.
3.9
The Jasmine Object Database Multimedia Applications For The
Web, Setrag Khoshafian, Surapol Dasananda, Norayr Minassian
This book provides detailed technical insight into to the Jasmine databases.
The intended audience is Jasmine database administrators and Jasmine
programmers. Unfortunately there are no comparisons of other existing object
orientated database systems. The authors made no attempt to cover issues
regarding schema evolution or versioning. Chapter 8 covers persistence, but
the author does not discuss the issues of Jasmine persistence in programming
languages like C, C++, or ActiveX.
Even though the book did not cover all of the areas required it was a valuable
resource, as the available information about Jasmine is extremely limited even
at the Computer Associates website. We felt the conclusion was just a
summary of the main points that could be deduced from reading the chapters.
-9-
OODBMS Comparison
4.0
Versant Version 6.0
4.1
Background
The Versant corporation, based in California USA, developed their flagship
product, the Versant Object Database Management System in 1988 and have
concentrated their business on the OODB market ever since. Versant OO
technology is used by over 650 companies including British Airways and the
USA Department of Defense. Versant currently supplies two main products.

Versant enJin, which acts as a middleman between E-Commerce Application
and Relational Database servers to improve the system performance by
incorporating OODB technology.

Versant Developer Suite, which is an Object Oriented Database Management
System and is the focus of this report.
4.2
Architecture
Versant is based on the Client Server architecture and incorporates the logical
management of objects rather than physical representations such as pages.
Each object is assigned a unique object identity, which facilitates distribution
and replication while maintaining integrity. The Object level architecture
provides fine granular locking to maximize concurrency. The Versant
architecture supports Multi-threading and Multi session clients. The location
of the objects is transparently managed by the system and caching is used to
store objects to improve performance. Versant uses an “automatic failover”
system for distributed systems where two or more server nodes are
automatically synchronized to maintain functionality whenever there is a
server failure. The Versant system allows for 65,000 databases per network
each storing up to 281 tera-objects. Each object can be of unlimited size.
Versant uses a clustering architecture, where the clusters of objects are
constantly maintained by the system and embedded objects are contained
within parent objects, which avoids the use of fragmentation.
4.3
Recovery
A dual logging feature manages recovery where both physical and logical logs
are maintained by the system. A roll forward mechanism is used to recover the
database when an inconsistent state occurs. The system rolls back to a desired
point and committed transactions stored within the logs are then reapplied to
the database.
4.4
Concurrency
Versant provides different levels of locking. Locking can be set at the object
level but can also be applied to classes or instances. Persistent locks support
long transactions, which are often necessary in OODB systems. Short locks
are also provided for shorter transactions as well as “nolocks” for optimistic
locking. The Versant system also provides the functionality to allow users to
define their own locks. The system avoids deadlock problems by automatically
denying locks that would result in a deadlock situation. Nested transactions are
supported while the check in/check out mechanism establishes a persistent
lock on objects to allow long transactions to complete.
- 10 -
OODBMS Comparison
4.5
Schema Evolution
Schema evolution is handled dynamically so the database does not need to
stop while the changes are being made. Version 6 supports Online Schema
Evolution, which dynamically manages simple and complex changes to the
schema.
4.6
Versioning
Versioning graphs are used to facilitate version management. From each
version a relationship is maintained which allows its parents and children to be
accessed. Configurations can also be managed which control transient,
working and released versions.
4.7
Programming Languages
Versant supports Java and C++.

The Versant Java Interface (VJI) enables Java objects to be stored and shared
between applications without mapping and provides complete transparent
persistence.

Versants C++ Interface allows the transparent persistence of objects. It also
supports C++ pointers, which allows objects to be retrieved at the object level
resulting in very high performance.
4.8
Persistence
Versant’s C++ and Java Interface provide transparent persistence of objects
where the application model is an exact representation of the data model.
Persistent C++ objects are created and destroyed using standard constructors
and destructors. Persistence is set at the class level and is also set by
inheritance.
Persistence in Java is set by reachability, which means any objects that are not
reachable from the persistent root are not made persistent. Persistence can also
be set using the GUI provided by Versant.
4.9




Tools
Administration console GUI which facilitates:
o The stopping, starting and creation of databases
o Configuration of locking within the system
o Management of Users
o Monitoring of transactions within the system
o Database tuning
XML Toolkit to allow objects to be imported and exported as XML objects to
allow objects to be exchanged by different OODBMS
Object inspector which allows users to browse the schema graphically
Graphical Query builder
4.10 Query Support
Versant ODBMS provides two query engines
1. Versant Query Language (VQL) – Queries are performed server side and
support complex navigation, cursors and parallel queries
- 11 -
OODBMS Comparison
2. Standard Query Language (SQL) – This engine has ODBC and JDBC
support to allow current reporting tools to generate ad hoc queries against
the VDS
4.11 Legacy Support
Versant / M from Version 5.0 has been superceded by the SQL engine stated
above which incorporates ODBC and JDBC support to provide multi database
support to ensure databases such as Oracle and DB2 can communicate with
and query the OODBMS.
4.12
Platform Support
Hardware
HP 9000 700/800
IBM RS/6000
Operating System
HP-UX 11.0
AIX4.3
Windows 2000 and NT 4.0
Red Hat Linux 7.1
Solaris 2.8
Intel Pentium PC
Sun SPARC
5.0
Jasmine
5.1
Background
Jasmine became a commercial system 1997. It was initially created by Fujitsu
Limited and Computer Associates International Inc as a joint research project.
Computer Associates is a member of the Object Management Group
(ODMG). Jasmine incorporates object orientated and multimedia technology
along with web centric applications, to provide a tightly integrated solution for
e-commerce and web applications.
5.2
Architecture
Jasmine is able to support client and web based applications and able to run on
a heterogeneous network. The object-orientated database is designed to
manage a large variety of multimedia file types. To make effective use of
network resources, Jasmine uses cached classes and instance objects that are
intelligently cached along with techniques like incremental access of
multimedia data and data compression. To simplify population of multimedia
items into the database all the user requires to do is drag and drop the item. To
increase efficiency of Jasmine, simple tasks can be delegated to automated
agents. The goal that Jasmine aims for is to allow users to create applications
with very little or programming work. Jasmine supports both single and
multiple inheritance, and it also supports one to one, one to many and many to
many relationships between objects and classes. Jasmine has three main class
families that are systemCF, mediaCF and sqlCF. These class families provide
the foundation for Jasmines functionality and methods for storage.
- 12 -
OODBMS Comparison
5.3
Recovery
Jasmine uses database log files for non-catastrophic failure such as rolling
back a transaction. Journaling is used in the event of catastrophic failure such
as media failure. Journal files are backups of the entire database. Journaling
however does not include backing up of multimedia files. Facilities within
Jasmine allow full and partial backups to be done either online or offline. The
database can also perform incremental backups of the database. The database
log files use a circular log file to maximise use of storage space. The logs can
also be used to help roll forward to the last processed transactions after the
restoration of the database from journal files. To restore information from a
backed up copy of the database this will require the Jasmine server to be
shutdown while a restore takes place. Object versioning and locking are used
in transaction recovery, for example if a deadlock was detected.
5.4
Concurrency
Jasmine uses a combination of object locking and versioning for concurrency
control. Jasmine supports a total of five locking granularities as listed below:

Database Locking – When the database is locked it will block all other
applications from accessing the database, so only administrative applications
such as archiveDatabase and restoreDatabase are allowed to perform database
locking. The database’s loading and unloading utilities require the server to be
shutdown. This effectively has the same effect as locking.

Store Locking – When an application obtains a lock on a store this prevents
any other applications from being able to access the store. Users cannot
perform a store lock. Stores are essential to the Jasmine database as all of the
Jasmine family classes are created in a store. Stores are used to increase
performance of family classes.

Class Locking – Users are able to perform class locking that will result in an
entire class being locked. That in turn will result in the whole table being
locked at the storage level. An example of when class locking is used is when
a user does a query on a class that does not use an index.

Page Locking – Page locking is done automatically, and is performed on an
index page.

Object Locking – this is used by all user applications.. The object lock is
placed on the index id for the instance of the object.
Jasmine can be configured to handle lock escalation. If a resource is locked by
a transaction the second transaction will normally wait. Jasmine will check to
ensure no deadlocks will occur before granting a write lock. Jasmine’s readonly transactions do not lock any objects; this means that read-only
transactions in Jasmine are performed much faster than transactions that
require write-locks.
5.5
Schema Evolution
Jasmine is capable of handling the implementation of a class evoked during
the lifetime of the database.
5.6
Versioning
Jasmine supports versioning of objects that is essential for concurrency
control, which is common in most object orientated database applications. An
- 13 -
OODBMS Comparison
example is if an update ODQL transaction is performed, a new version of the
specified object is created and in doing this it creates a second version of the
object. The new updated version of the object is not exposed to other
transactions until the transaction has been committed.
5.7
Programming Languages
Jasmine supports Visual C++ 4.2 or higher and equivalent visual interface
versions of Java. The following languages are supported by Jasmine.

Java

C++

C

ActiveX
5.8
Persistence
Class definitions are created in Java, and then they are loaded in to the
database, Jasmine cannot modify the class definitions. Jasmine is used to store
objects that are created by the Java application. Jasmine has two methods of
developing a persistent class:

Map existing Jasmine classes onto Java classes. The mapped classes are
persistent-capable. Using these classes, the new Java classes are persistencecapable and can be developed and deployed.

The second approach is to pre-process the Java classes with the Java persistent
pre-processor (JPP) to generate the class definitions in Jasmine. JPP also
generates augmentations to the Java classes. Once the Java classes are
compiled with a Java compiler, the compiled copy of the code uses persistent
Java libraries. The now persistent objects are managed by Jasmine.
5.9
Tools
Jasmine comes with a range of development applications for both developers
and database administrators, which are listed below.

WebLink provides web-database connectivity along with extending the HTML
standard with the use of special tags that allow database access and update
statements. One key advantage of WebLink is that is can process multiple user
requests.

Jasmine Studio combines integrated tools for both database design and
administration utilities through a graphical user interface.

Jasmine supports ActiveX and Code Components, which means that Jasmine
can be accessed by other existing development tools such as Microsoft Visual
Basic.

Jasmine also supports Java based application development tools.
5.10 Query Support
Jasmine does not implement Object Query Language (OQL) or Object
Definition language (OLD) which is defined in the ODMG standard. Instead
Jasmine uses (ODQL) Object Database Query Language, which unlike most
query sub-languages is computationally complete. Jasmine’s ODQL
encompasses
- 14 -
OODBMS Comparison
Schema definition, which allows the user to define classes and properties of
classes
Method definition, which allows embedded ODQL to be implemented in
method bodies.
Queries, as ODQL has a declarative complex object query sub-language
Procedural constructs, as Jasmine’s ODQL query sub-language includes
powerful programming control constructs such as variables loops and
conditional branches.




ODQL can use single and multiply inheritance. It also supports the creation
and management of indexes. The ODQL query language can be run with the
use of an interpreter or it can be embedded in to the host program such as
C/C++. Jasmine supports automatic deadlock detection; upon detection of
deadlock Jasmine rolls back the involved transactions.
5.11
Platform Support
Hardware
Intel Pentium PC
Sun SPARC
6.0
Operating System
Windows 2000 and NT 4.0
Solaris 8
GemStone
6.1
Background
GemStone is an OODBMS based on the research carried out at Oregon
Graduate Institute. It was produced by Servio-Logic of Braverton in 1987 and
was one of the first OODBMS that became commercially available.
6.2
Architecture
GemStone uses a three-tier client/server distributed architecture. Application
processing comprises a middle layer between the user interaction process and
the process that maintains the object store.
GemStone is built around a highly scalable, disk-based multi-user object
execution engine. The GemStone Server provides transaction services for
reliable, fault-tolerant 24-hour-a-day, 7-day-per-week information system
operations supporting thousands of users across multiple corporate databases
while allowing development and use of distributed business applications.
The importance of GemStone architecture is that it reduces the amount of
network traffic without overloading the server. This architecture speeds up
processing by placing the application code with the data storage if lots of data
is to be used or placing it with the user’s process if many changes are to be
made to a small amount of data.
There are two main processes active in GemStone: The Stone and the Gem.
- 15 -
OODBMS Comparison
The Stone process is responsible for:



Co-ordinating access to the object store
Synchronizing activities and ensuring consistency while processing requests
for transactions
Carrying out allocation of object identifiers, object pages and object locks
The Gem process:






Manages Smalltalk programs and object storage
Retrieves objects from object stores developed using any of the GemStone
interfaces
Provides the user with a consistent view of the object store
Locates objects on pages and transmits them to and from Stone
Manages user’s GemStone session
Controls the execution of GemStone Smalltalk methods
A host machine runs a single Stone process serving multiple Gem processes.
The Gem process responsible for object access may be configured to be local
to the object store to eliminate network overhead. It can alternatively be
configured as a remote process to take advantage of network processing
power.
6.3
Recovery
Any authorised user can perform recovery operations. Using replication,
backup and logging mechanisms Gemstone achieves network or hardware
failure recovery. The user can perform full or incremental backups employing
transaction logs.
The first step of restoration after a disk or system failure is a full backup.
Using log files then provides the user with the facility to restore the object
store to the last transaction commission.
Transaction logs perform a roll forward to bring the database back to the last
committed transaction prior to the error.
6.4
Concurrency
Transaction mechanism controls concurrency within GemStone. Each
GemStone session manages a local copy of the object store and adds changes
made to the end of a transaction. This process is called optimistic locking. The
drawback is that if other users have committed changes to the same data the
locking mechanism is not automatically carried out. However, to make sure
that changes are committed, users are permitted to lock an object that has not
been previously locked.
6.5
Schema Evolution
- 16 -
OODBMS Comparison
The two products, GemStone/S and GemStone/J deal with schema evolution
in different ways. GemStone/S can migrate instances from one version to
another within the same class history. By default, data is mapped to the new
version if the variable name is the same, although this can be customised.
GemStone/J does not support schema evolution in the same sense as the other
databases covered in this report. In order for updates to be made, the entire
application has to be redeployed to end-users.
6.6
Versioning
Again, GemStone/S and GemStone/J deal with this in a different way.
GemStone/S maintains a class history for every object, even if the object only
has one version. GemStone/J does not allow multiple versions of objects.
6.7
Programming Languages
The GemStone system was originally designed around Smalltalk80, but the
initial systems were delivered in Opal. However it was clear that this was
really persistent Smalltalk and the system is now known as “GemStone
Smalltalk”. GemStone Smalltalk is one of the systems that is supported by the
ODMG.
6.8
Persistence
Objects are made persistent in GemStone by using a connector that is a kind of
persistent root and then using reachability from connectors. GemStone
maintains a GemStone server version of any classes of persistent objects,
therefore there is always a pair of classes: one class for the programming
context and an equivalent class for the database context. These classes are
automatically maintained, meaning that if a Smalltalk class is created and an
object of that class becomes persistent, then a GemStone class for the object is
automatically created.
GemStone has a dynamic garbage collection mechanism that automatically
recovers space used by objects that are not referenced any more.
6.9
Tools
GemStone user interface and administration support tools include functions
such as:

Setting user privileges

Class management

Performance monitoring

Backup
Its development tools include:

Configuration tool

Facility to inspect the state of objects

Interactive debugger
- 17 -
OODBMS Comparison
Browsers for classes, session and transactions
Class versions
Symbol lists
System connections




6.10
Query Support
GemStone maintains connection to Oracle and Sybase relational systems via
gateways. It updates data automatically to keep GemStone and external copies
synchronized.
Other standards such as OLE are supported too. GemStone supports CORBA
services and the IIOP (Internet Inter-ORB Object Request Broker Architecture
(CORBA)) protocol for object interoperability with other systems, and
Smalltalk can be used with relational database access methods such as SQL
and ODBC.
6.11
Platform Support
Hardware
HP 9000 700/800
IBM RS/6000
Intel Pentium PC
Operating System
HP-UX 11.0
AIX4.3
Windows 98, 2000 and NT 4.0
Solaris 2.6
Solaris 7
Solaris 8
Sun SPARC
7.0
POET/FastObjects
7.1
Background
BKS Software, a German company that subsequently changed its name to
POET software, developed POET in 1991. Poet Software is now based in
California USA and provides an OODBMS called FastObjects. POET has
been one of the members of ODMG from the early days. POET Object Server
Suite provides database management solutions v6.0 in full compliance with
ODMG 3.0 API Standard.
7.2
Architecture
The architecture of POET is based around the client/server architecture. Query
processing is performed on the server to reduce client side processing. POET
communicates within a network using objects.
- 18 -
OODBMS Comparison
7.3
Recovery
POET incorporates a roll forward recovery mechanism using logs. POET also
supports an external backup facility, which allows the database to be backed
up while clients still use the database.
7.4
Concurrency
Concurrency control is managed by using nested transactions and locks that
are held on objects preventing reading, updating or deleting and object by
unauthorized users. Programmer can install functions (using POET’s
distributed event notification system) activated when a particular event (such
as storing, deleting or unlocking of data) involving an object takes place.
7.5
Schema Evolution
POET manages schema evolution by storing all versions of a class within a
data dictionary. When classes are have been modified POET updates all
objects of the particular class.
7.6
Versioning
Versioning in POET is managed by an event notification system that can be
used in combination with a check in check out facility. This allows cooperative working to be performed on POET.
7.7
Programming Languages
Poet Software object database technology for Java and C++ applications is
called FastObjects. The main target of this technology is telecommunications
and network management. FastObjects j2 is designed for embedded real-time
Java applications, and FastObjects e7 is designed for embedded C++ and Java
applications.
Poet’s FastObjects t7 is an object database-management system developed for
multi-tier C++ and Java applications. It is designed to be scalable and offers
superior runtime efficiency with complex data models.
7.8
Persistence
Poet provides persistence in Java through the JDO, which incorporates
transparent persistence. Persistence in C++ is provided using inheritance,
where the pre-processor looks for a persistence keyword in the class
definition.
7.9
Tools
POET Developer’s Workbench is an integrated development environment that
allows the user to:

Create and edit programs
- 19 -
OODBMS Comparison




Run POET’s pre-compiler
Build databases
Browse and edit class declarations and the objects in a database
Run OQL queries
POET Administrator’s Workbench provides the tools needed for database
administration including:

On-line backup

Database creation

Creating database versions

Regenerating the indexes, or updating the database format to a new version of
POET
POET sever administration includes:

Upgrading the server to permit more users

Examining which users are accessing the server

Shutting down the server
User administration includes:

Controls such as database protection
7.10
Query Language Support
POET system provides full querying facilities including an ODBC driver and
OLE compliance, but in early days it did not seem possible for POET to
access relational databases. POET also provides two other querying facilities:
OQL and extended C++
7.11
Platform Support
Hardware
HP 9000 700/800
Operating System
HP-UX 11.0
Windows 2000 and NT 4.0
Linux
Solaris 2.6
Solaris 7
Solaris 8
Intel Pentium PC
Sun SPARC
8.0
Objectivity/DB
8.1
Background
Objectivity was founded in 1998 in Mountain View, California. Their product,
Objectivity/DB, was first released in 1990. The database is used in the
telecommunications, Internet infrastructure, manufacturing, government and
scientific markets, and their clients include Hewlett Packard, NASA, and
Ericsson. The most recent release is version 7.0.
- 20 -
OODBMS Comparison
8.2
Architecture
Objectivity/DB has a distributed architecture, which allows the system to be
configured as a centralised client/server system, or as a multi-tier system. The
configuration can be changed without requiring alterations to existing
applications. Data is transferred in pages.
8.3
Recovery
Objectivity/DB has an inbuilt recovery mechanism, which in a lot of cases can
recover transactions automatically, for example if am application process is
interrupted or a process crashes. If this mechanism fails, then Objectivity/DB
has a tool called Automatic Recovery, which can recover from application
failures, local and remote server host failures, and lock server host and process
failures.
There is also a separate tool provided called oocleanup, which can rollback
transactions and release locks in a database using the journal.
8.4
Concurrency
Objectivity/DB has a number of features to allow concurrent access:






Flexible transaction model, which supports transactions of any duration
Multiple readers, one writer, which allows users to view the most recent state
of a locked object
Object-level versioning, which allows users to selectively operate on specific
versions of objects
Hierarchical locking, which controls, read/update access to objects
Lock waiting, which allows an application to wait for a specified time for an
object to come available, and
Active deadlock detection across databases, which warns users of potential
deadlock situations
8.5
Schema Evolution
Objectivity/DB supports online schema evolution, which allows schema
updates to be made without taking the database offline. The schema evolution
process works by only updating ‘affected’ objects, i.e. objects whose
definitions have changed. The administrator has great control over how the
affected objects are updated. The following types of changes are possible:





Logical changes
Class member changes
Association and reference changes
Class changes
Inheritance changes
The administrator can set objects to be updated immediately, or through a
choice of two deferred updated processes. The first of these allows each
affected object to be updated only when it is accessed. The second allows the
administrator to specify a group of objects that will be updated when a
member of the group is accessed.
- 21 -
OODBMS Comparison
8.6
Versioning
Objectivity/DB offers either linear or branch object versioning, with the ability
to specify a default object. Linear versioning means that each time an object is
altered, a new version is created. Branch versioning allows a hierarchical
structure of versions of objects, and allows different changes to an object to be
tracked simultaneously.
8.7
Programming Languages
Objectivity has 4 different language interfaces: Objectivity/C++, Objectivity
for Java, Objectivity/Smalltalk, and Objectivity/SQL++.
The C++ interface supports ANSI standard C++, with a persistent
implementation of the Standard Template Libraries (STL).
The Java product provides full Java supports, which is compliant with the
ODMB 2.0 standard. The product features a single process model, which
allows the client to run in the same process as the Java Virtual Machine.
Objectivity/Smalltalk provides full ODMG-93 1.2 complaint Smalltalk
binding. Objectivity/SQL++ provides a standard SQL interface to allow
interoperability with existing systems. The product supports SQL3 object
extensions, which supports Objectivity/DB’s object modelling capabilities.
8.8

Persistence
C++

Objects have to be specified as persistent. Persistence is achieved through
inheritance from a class supplied with the database. This follows the ODMG
guidelines for persistence in C++.
Java

Objects can be made persistent in two ways: implementing a persistent
interface, or deriving from a persistent class. These methods make the object
persistence capable, but the object will not be written to a database
immediately. The application must first run an operation called clustering
which assigns an object storage space in a database. The object is then written
to the database when the transaction that created the object commits.
Smalltalk
Objectivity/Smalltalk supports persistence through reachability. Objects can be
made persistent by reaching them from another object. This follows the
ODMG guidelines for persistence in Smalltalk.
8.9






Tools
Federated Database Tools
Database Tools
Lock Server Tools
Backup and Restore Tools
Advanced Multithreaded Server Tools
Troubleshooting and Recovery Tools
- 22 -
OODBMS Comparison

Deployment Tools
8.10 Query Support
Objectivity/DB offers powerful object traversal tools. These include retrieval
through application-defined names or links from other objects, scanning of
storage objects for one or more specific objects, or traversal of the entire
database. Objectivity for Java and Objectivity/C++ both support a predicate
query language, which is embedded in the code itself. This language allows
retrieval of objects using simple arithmetic, logical or relational operators.
Objectivity/Smalltalk has in-built iterator methods which allow storage objects
to be scanned for a particular object. In addition to this, Smalltalk has it’s own
iterators which may also be used.
8.11 Legacy Support
The Objectivity/SQL++ product provides legacy support. Objectivity/SQL++
allows ANSI SQL89 and SQL92 to be used on Objectivity/DB, and also
provides an interface for SQL++, and Microsoft’s ODBC interface.
8.12
Platform Support
Hardware
Compaq Alpha AXP
HP 9000 700/800
IBM RS/6000
Operating System
Tru-64 UNIX 4.0
HP-UX 11.0
AIX4.3
Windows 98, 2000 and NT 4.0
Red Hat Linux 6.1
IRIX 6.5.9
Solaris 2.6
Solaris 7
Solaris 8
Intel Pentium PC
Silicon Graphics
Sun SPARC
- 23 -
OODBMS Comparison
9.0
Objectstore
9.1
Background
Object Design Inc. was founded in 1988 in Burlington, Massachusetts, for the
purpose of developing Objectstore. Their largest market is in the
telecommunications industry, with customers like British Telecom, Cisco
Systems, and Siemens. They currently have 4000 customers worldwide. The
most recent release of ObjectStore is version 6.0.
9.2
Architecture
Objectstore features a distributed cache-forward architecture, which divides
the processing between the clients and the server. The server manages key
processes such as backup and recovery, storage, locks and deadlock detection,
and failover and replication. The client manages storage allocation, access to
database objects, and transaction management. The client also performs
queries over collections of objects.
The server is multi-threaded, which means much greater performance when
dealing with multiple users. This allows support for native OS asynchronous
I/O, where available, which means a single process can manage multiple I/O
requests at the same time. The server also supports multiple processors.
9.3
Recovery
Objectstore features transaction logging, which captures all transactions before
they are written to disk. In the event of a server crash, the transaction log is
used to bring the databases restored from backups to the point before the
crash. Objectstore uses a two-phase commit to ensure that consistency is
maintained on distributed servers.
9.4
Concurrency
Objectstore uses Multi-Version Concurrency Control (MVCC) to allow clients
to read objects even if they are locked for writing. MVCC can be applied
selectively to individual databases, or to entire servers.
9.5
Schema Evolution
Objectstore uses various utilities to allow simple changes to be made to the
schema, like adding or removing members. For more complex changes, a
schema evolution interface is provided, which allows for more complex
changes to be made.
The schema evolution process runs in a batch, and locks the database while it
is updating the schema.
9.6
Versioning
Objectstore supports branch versioning, which allows multiple versions from
one object. These versions are managed using a version graph. Multiple
versions of one object can be merged at a later point, although the user must
manually initiate this process.
- 24 -
OODBMS Comparison
9.7
Programming Languages & Interfaces
Objectstore provides standard C/C++ and Java programming interfaces, and
also an ActiveX interface for integration with Microsoft Visual Basic,
InterDev, and Internet Explorer.
9.8
Persistence
Objectstore supports persistence through named roots. An object is defined as
persistent when it is created. Persistent objects are held in persistent root
object collections.
9.9
Tools
Objectstore provides three tools for managing a database. They are Inspector,
Performance Expert, and ObjectForms.
Inspector is a visual tool that allows developers and administrators to examine
schema and examine and edit data in a database, using a visual representation
of the database. It also has a visual query editor.
Performance Expert is a tool that simplifies the process of collecting
performance statistics from databases and server.
ObjectForms can automatically generate dynamic web-page forms based on
the content of the database. It allows a web-based front end to a database to be
created easily.
9.10 Query Support
Objectstore provides support for complex queries embedded in the application.
The query language supports arithmetic, logical and relational operators.
9.11 Legacy Support
Using a tool called DBConnect, it is possible to provide interfaces between
Objectstore and a variety of popular database systems, such as Oracle, Sybase,
SQL server, and any ODBC driven database system.
9.12
Platform Support
Hardware
Compaq Alpha AXP
HP 9000 700/800
IBM RS/6000
Operating System
Tru-64 UNIX 4.0
HP-UX 11.0
AIX4.3
Windows 98, 2000 and NT 4.0
Red Hat Linux 6.1
IRIX 6.5.9
Solaris 2.6
Solaris 7
Solaris 8
Intel Pentium PC
Silicon Graphics
Sun SPARC
- 25 -
OODBMS Comparison
10.0 Resources
We accomplished our main objectives by primarily performing a
comprehensive literature review, compiling the information and distinguishing
the relevant data from out of data sources. Then using the information
gathered we selected six of the systems based on three criteria, market share,
current availability and vendor support. We then compiled a list of criteria to
compare each of the systems. Each system was then investigated using the
criteria selected and the results documented. This report is a consolidation of
information from vendors, reference books and articles available on the web.
Gathering the information proved to be more difficult than was first imagined,
this was due to several factors:
1. The majority of reference books were out of date. Many of the titles
available are now out of print. Any system comparisons included within
the OODBMS titles had been carried out in 1997 or earlier, which meant
the systems compared were not the same systems that are available today.
2. Information available from the Vendors sites although invaluable was
certainly biased. No real comparison data was available from the sites nor
any information regarding features that were better or different in other
products. White papers available from the sites were basically adverts for
the Vendors product and quite often gave no real in-depth technical detail.
3. OODBM systems are very expensive and choosing the right product is
essential in business. This has resulted in several companies setting up as
specialist consultants where information regarding OODBMS comparisons
and benchmarks costs several thousand pounds. The information freely
available on the web was limited to older material circa 1997, which as
with the reference titles was invaluable but had to be checked to make sure
it was not out of date.
4. Two of the systems featured within many sources, o2 and Itasca have been
discontinued and are no longer supported by any vendors. The o2 system
in particular is the focus of many articles and books and forms a large part
of the literature available.
5. The Journals we had access to provided many articles regarding features of
OODBMS but provided very little information on actual system
comparisons.
11.0 Conclusion
OODBMS are specialist products and are geared to a small portion of the
database market. Some of the systems, noticeably Versant and Jasmine are
aiming their products towards the e-commerce market. Versant provides
products that enhance the efficiency of e-commerce sites by providing OODB
functionality in conjunction with existing relational systems. Jasmine however
provides enhanced multimedia capabilities and four-tier web architecture to
provide efficient e-commerce solutions. Jasmine supports advanced
automation of repetitive tasks with use of agents. It also has a computationally
complete query language and advanced GUI capabilities for inexperienced
users. Gemstone is the oldest of the systems compared and therefore is a more
- 26 -
OODBMS Comparison
proven solution. Gemstone with its three-tier architecture seeks to provide a
more efficient networking solution. Poet’s design has been oriented around
maximising performance and claims to retrieve objects ten times faster than
other databases. Poet has been targeted at C++ and Java developers for use
with relatively small amounts of data. Objectivity and ObjectStore are both
been influenced by the telecommunications industry and are geared to provide
Internet and telecommunications solutions.
A general weakness of all our systems is that OODBS systems cannot handle
very large amounts of data due to the overheads associated with OODB
systems.
The comparisons of the object-oriented databases were based on the
functionality of the systems rather than benchmark tests such as performance,
reliability or usability surveys. In order for us to come to a conclusion of what
is the best system from our investigations, it would be necessary for us to have
information regarding the results of benchmark tests and the requirements of
the tests that were carried out. Also in a selecting a system the customer’s
requirements would have to be taken in to consideration such as required
functionality, reliability and security.
- 27 -
OODBMS Comparison
12.0 Bibliography
12.1 Reference Titles
Title
ISBN
The Jasmine
1-55860494-4
Object
Database
Object
1-85032-294-5
Databases an
ODMG
Approach
Object0-201-6243439-7
Oriented
Database
System
Author
Khoshafian,
Dasananda,
Minassiam
Cooper, R
Publisher
Morgan Kaufmann
Elisa, Bertino,
Lorenzo,
Martino
Addison-Wesley
Thompson
12.2 Web Resources
URL
http://citeseer.nj.nec.com/99957.html
http://www.objectivity.com/DevCentral/Products/TechDocs/pdfs/techOvervie
w6.pdf
http://www.objectivity.com/DevCentral/Products/TechDocs/Datasheets/
http://www.objectivity.com/DevCentral/Products/TechDocs/pdfs/SchemaEvol
utionWP.pdf
http://www.objectdesign.com/htm/object_wp_forms.asp
Technical overview on ObjectStore, available on request from [email protected]
http://www.versant.com/
http://www.knowvo.com/jasmine/oodatabases.html
http://www.knowvo.com/jasmine/oodatabases.pdf
http://www.castlesoftware.com.au/Whitepapers/BuildingDatabase.pdf
http://www.castlesoftware.com.au/Whitepapers/JasmineTips100.pdf
http://www.odmg.org
http://industry.java.sun.com/javanews/stories
http://industry.java.sun.com/solutions/products/by_product
http://www.fastobjects.com/FO_Corporate_Homepage_a.html
http://galaxy.uci.agh.edu.pl/~vahe/products.htm
http://www.odmg.org/membership/memberpages/Reviewer/memberpageversa
nt.htm
- 28 -