previous page: 9.3) ITASCA (Commercial Systems - OO Data Model - Object-oriented Databases And Vendors)
page up: Object-Oriented Technology FAQ
next page: 9.3) NeoAccess (Commercial Systems - OO Data Model - Object-oriented Databases And Vendors)

9.3) MATISSE (Commercial Systems - OO Data Model - Object-oriented Databases And Vendors)


This article is from the Object-Oriented Technology FAQ, by Bob Hathaway rjh@geodesic.com with numerous contributions by others.

9.3) MATISSE (Commercial Systems - OO Data Model - Object-oriented Databases And Vendors)


An Industrial Strength Open Semantic Object Database

- Symmetric, Fine Grain, Multi-Threaded Architecture
- Parallel and Asynchronous Disk I/O
- Automatic Disk Optimization through Dynamic Clustering
- High Speed OLTP Environment
- 24 Hour - Mission Critical Operation
- Media Fault Tolerant (Object Replication)
- Transparent On-line Recovery
Database Administration
- Full On-line Administration (No Down Time)
- On-line Incremental or Full Back-Up
- Dynamically Increase Database Size - On-line
- Full On-line Monitoring
Data Management and Consistency
- Dynamic Schema Evolution
- Consistent Database Reads without Locking
- Historical Versioning, both Schema and Data Objects
- Built-in Enforced Referential Integrity
- Object Level Implicit or Explicit Locking
- Hundreds of Concurrent On-line Users
- Hundreds of Gigabytes Per Database
- From Few Bytes to Four Gigabytes for Each Object
- Up to Four Giga-objects Per Database
Object Model
- Full Object Oriented Model
- User Extensible Object Meta-Schema
- Support for Complex, Highly Dynamic, Variable Sized Objects
- Multiple Inheritance
Intelligent Objects
- Triggers at Object, Attribute, or at Relationship Level
- Consistency Rules at Object, Attribute, or at Relationship Level
- Customizable Intelligent Object Indexing
- Automatic Inverse Relationships
Open Systems
- Open C, C++ API
- Supports Any Commercial Development Tool and Language
- No Proprietary Tool Required
- Heterogeneous Cross Platform Client/Server Architecture

For additional information on MATISSE, contact

1 Twin Dolphin Drive
Redwood Shores, CA 94065

Voice: 1 (415) 610-0367
Fax: 1 (415) 610-0368
Email: info@adb.com
Web: http://www.adb.com

ADB S.A. Inc.
12-14, rue du Fort de St Cyr
Montigny Le Bretonneux
78182 St Quentin en Yvelines
Cedex, France

Voice: 33 (1) 48 64 72 73
Email: info@adb.fr
Web: http://www.adb.fr

ADB Asia / SGN
Urban Toranomon Building
1-16-4 Toranomon
Minato-ku Tokyo 105

Tel: 81 (3) 3593 3431
Fax: 81 (3) 3593 3432


MATISSE was designed to have an OPEN API, and not be
tightly bound to a single language (such as C++ or Smalltalk).
MATISSE can be used effectively with C++, C, and any other language.
This allows for MATISSE to be easily integrated into almost any
user application.

MATISSE is based upon the following principles and ideals:

MATISSE is first and foremost a database, whose purpose is to
always provide information in a consistent and correct format,
insuring referential integrity amidst the most complex database
modifications. And, to provide a set of DBA tools which meet
the challenge of managing large, complex database applications.

Production quality applications require production quality databases.
This means high reliability, high scalability, no database down
time for archival/backup/restore and 24hr/7days per week operation.
MATISSE supports these requirements.

A flexible, intelligent meta-model architecture based upon the
principles of semantic links and object technology allows for the
most effective bases for representing and managing complex, highly
interrelated data. The MATISSE meta-model provides built in
constraint checking, user definable constraints for triggers and
daemons, and full dynamic schema and meta-schema evolution.

Providing an architecture which is open allows for the integration
of MATISSE with any language or environment. MATISSE is not bound
to any language. Its 'C' API allows for its use with many
languages and environments.

The following list describes the features of MATISSE which we
believe provide the competitive advantage:
- Mission-critical operation - 24 hour operation and fault tolerance
- Independence from any programming language
- Dynamic schema management and evolution
- Flexibility of the MATISSE meta-model
- Historical versioning
- Consistent reads without locking - concurrency and locking
- Support for high level consistency and referential integrity
- Multi-threading architecture provides for a high degree of scalability

Each of these items are described in more detail below:

Mission Critical Operation.
MATISSE is designed to support 24 hour a day / 7 day a week operation,
on multi-client / multi-server architectures. Administration tools
offer high end features which are mandatory for legacy DB administrators.

Independence from any Programming Language.
The MATISSE client is implemented as a library of C procedures. As a
result, any standard language can be used to develop applications on
top of MATISSE, provided that the corresponding compiler is capable
of calling external C-functions. To date, production applications have
been built on top of MATISSE using C, ADA and C++.

Dynamic Schema Management.
Schema objects can be accessed using the same API available for data
objects. The Data Definition Language is identical to the Data
Manipulation language. Versioning is implemented for both schema
and data objects. Thus, any running application can modify the database
schema, provided that existing instances do not become inconsistent with
that schema. Consistency rules are checked by MATISSE.

Flexibility of the Model.
MATISSE is compliant with the IRDS standard. Its architecture is
highly extendible at both the Schema and the Meta-Schema level. The
MATISSE Semantic Meta-Model is not hard-coded. It can be updated to
conform with any OMG, ANSI, ISO, ... standard that might be issued
in the future. MATISSE can easily adapt to changing and evolving
standards, without significant effort or re engineering.

Using the on-line versioning mechanism, MATISSE allows any connected
client application to dynamically access any past database version which
was marked as a version to be saved. Access can be performed without
any particular administrative operation, and concurrently with other
on-line accesses to current or other historical versions.

Since a database version includes both data and schema objects, a
past version is always consistent, even after schema modification. As
a past version is accessed, so to is it's schema, and even the
appropriate meta-schema associated with the accessed version.

Consistent Reads without Locking.
Using its versioning mechanism, MATISSE offers three kinds of
database access:

Typical transaction-based access: : as the
database migrates forwards, and updates are made, database access
occurs against the latest consistent database version. A successful
transaction commit results in a new consistent version. If explicitly
named, this version becomes a historical database version, which can
be accessed by its logical name in the future .

Historical version access: the application specifies the logical
name of the historical version to be accessed. Access is read-only,
and does not require any locking mechanism.

Current Time access: : this is a very powerful and unique feature
of MATISSE. Any application can request the latest available consistent
database version, using a reference to current time, with no
locking overhead. The "current time" database version is based
upon the last transaction commit, and is automatically maintained by
the database. A "current time" database version acquires no database
locks when accessed in read-only mode, thereby significantly
reducing overhead.

Through these three access modes, MATISSE supports on-line
transaction processing and decision support requirements concurrently
within a single application, through the use of current and historical

Support for High Level Consistency.
With MATISSE, referential integrity cannot be corrupted. MATISSE's
Semantic Links are specialized - i.e. they are specifically
established between classes, they are directional, and, inverse links
are automatically and dynamically set by MATISSE. As a result, a
MATISSE database understands its relationships, and fully manages
all internal consistency features, insuring that no corruption occurs.

Developers can describe very complex consistency methods and rules
using daemons and triggers. These methods can be attached to
particular events such as, before or after creation, as well as class,
instance, attribute modification. Daemons and triggers provide for
message propagation within your database. This results in a very
intelligent database, which can be event driven.

MATISSE Server runs on
- Sun Sparcstation - SunOS 4.1.3
- Sun Sparcstation - Solaris
- HP9000 - HP-UX

MATISSE Client runs on
- Sun Sparcstation - SunOS 4.1.3
- Sun Sparcstation - Solaris
- HP9000 - HP-UX
- Windows NT
- Macintosh


Continue to:

previous page: 9.3) ITASCA (Commercial Systems - OO Data Model - Object-oriented Databases And Vendors)
page up: Object-Oriented Technology FAQ
next page: 9.3) NeoAccess (Commercial Systems - OO Data Model - Object-oriented Databases And Vendors)