Object-Orientation FAQ

GemStone (Servio)

First introduced in 1987, Servio's GemStone is the oldest commercial ODBMS
available today. GemStone is particularly well suited for use in complex
multi-user, multi-platform client/server applications. It supports
concurrent access from multiple external languages, including Smalltalk-80,
Smalltalk/V, C++ and C. GemStone also provides a dialect of Smalltalk as an
internal DML, which can execute methods or entire applications in the
Servio also offers GeODE (GemStone Object Development Environment), an
object database application development environment which allows developers
to build complete object applications visually, without writing code. With
GeODE's visual programming tools, programming an application is a matter of
wiring together graphical representations of encapsulated code blocks. A
simple extension mechanism promotes the re-use of code, thereby increasing
the speed of program development. Also, association of application user
interface elements with database objects is established through simple
graphical tools. GeODE applications are stored and run in the GemStone
database, and so are both self-porting and network-aware, and can be
accessed externally from any of the GemStone language interfaces. Because
of GemStone's network architecture, Geode applications can operate easily
in a client/server environment.
GemStone is a highly scalable client-multiserver database for commercial
applications. GemStone's features include:
o  Active Database -- GemStone allows database application developers to
   write methods which are stored and executed directly in the database.
   These methods can be accessed either internally, or from external client
   applications. This can significantly reduce network traffic and allow
   applications to take advantage of the superior compute power of the
   server. This also eliminates the need to rebuild and re-deploy
   applications whenever application or business processing rules change.
   This in turn allows for centralized code development and management,
   architecture-independent code that ports itself to new platforms,
   reduced network usage, and true client/server applications that share
   compute load between client and server machines.
o  Concurrent Support for Multiple Languages -- GemStone provides
   concurrent support for applications developed in Smalltalk, C++, C or
   GeODE. All applications, regardless of language, can have simultaneous
   access to the same database objects.
o  Flexible multi-user transaction control -- Multiple users can
   operate in the database simultaneously, with a variety of transaction
   control modes available.
o  Object-level security -- Authorization control can be applied to any
   object in the database, allowing for fine tuning of object security.
o  Dynamic schema and object evolution -- GemStone supports schema
   modification through class versioning and allows full migration of
   objects between versions of their classes with a simple message send.
   Migration is fully customizable and is undoable.
o  Production Services -- GemStone delivers the full suite of features
   required in any production-ready networked database including online
   backup, rapid recovery, referential integrity, sophisticated concurrency
   control, and event signals and notifiers.
o  Scalability -- In a recent independent benchmark, GemStone scaled to
   support more than 1,000 simultaneous log-ins and 100 concurrent active
   users on a mid-sized SMP server.
o  Legacy Gateways -- GemStone incorporates gateways or data bridges
   that allow object applications to integrate legacy data, whether in SQL,
   IMS, VASM or other formats. The level of integration between GemStone
   and legacy data and applications can range from simple query access to
   extensive read-write interoperability.
GeODE is a comprehensive environment for rapidly designing, building and
deploying production-quality commercial object applications. Its design
promotes code reuse in a team programming environment for increased
productivity. GeODE consists of six main elements:
o  Visual Application Manager -- Provides centralized management
   of each application and its component parts, and a namespace for
   addressing known objects.
o  Visual Schema Designer -- Allows the development of database schema
   visually, making the process more interactive and intuitive than with
   object-oriented programming languages. It also provides analysis tools
   for examining an existing schema.
o  Visual Forms Designer -- The Forms Designer reads GemStone class
   definitions and an associated data dictionary to automatically create
   default forms suitable for simple data entry. These forms can be rapidly
   customized, using a wide selection of user interface components and
   field types, which include image and sound support, and a large set of
   form design aids. The list of field types can be extended interactively.
o  Visual Program Designer -- The Visual Program Designer allows developers
   to visually create and modify the behavior of an application without
   having to write code. Programs are created by connecting visual program
   blocks to field blocks drawn from the forms created in the Forms
   Designer. A large collection of predefined program blocks is provided
   with GeODE, and users can extend the catalog in any of a number of
   simple ways. Code-based programming can be integrated routinely.
o  Developer Class Library - GeODE comes standard with more than 480
   classes and thousands of methods, and is easily extended for handling
   specialized applications. In a team environment, some programmers can
   develop visual applications while others write new methods that are
   encapsulated into visual program blocks for easy reuse.
o  Developer Tools -- GeODE includes tools for debugging, browsing and
   inspecting applications. Included in this set of tools are several
   debuggers, browsers, inspectors, an object clipboard, an image editor,
   and a code profiler for performance analysis.
GemStone release 3.2 and GeODE 2.0 and all language interfaces are
available for UNIX workstations and servers from SUN, HP, IBM, Sequent, and
DEC. Client-only support is available in a number of languages for Windows
3.1, OS/2 and Macintosh. Servio is an active member in the Object
Management Group and the ANSI Smalltalk standardization committee. Servio
supports SUN ODMG, ANSI C++ and intends to comply fully with the emerging
  [Maier, et al. 84] D. Maier, J. Stein, A. Otis, A. Purdy, ``Development
  of an object-oriented DBMS'' Report CS/E-86-005, Oregon Graduate Center,
  April 86 - ACM 0-89791-204-7/86/0900-0472
  R.G.G. Cattell: Object Data Management - Object-Oriented and Extended
  Relational Database Systems; Addison-Wesley. ISBN 0-201-53092-9
  Robert Bretl, David Maier, Allen Otis, Jason Penney, Bruce Schuchardt,
  Jacob Stein, E. Harold Williams, Monty Williams. "The GemStone Data
  Management System." Chapter 12 of "Object-Oriented Concepts, Databases
  and Applications", by Kim and Lochovsky.
 === Headquarters - San Jose ====
Servio Corporation
2085 Hamilton Avenue
Suite 200
San Jose  CA  95125
Tel: 800-243-9369
Tel: 408-879-6200
Fax: 408-369-0422
 === Chicago ====
Servio Corporation
8410 Bryn Mawr
Suite 400
Chicago  IL  60631
Tel: 312-380-1310
Fax: 312-380-1308
 ===  New York ====
Servio Corporation
1120 Avenue of the Americas
4th Floor
New York  NY  10036
Tel: 212-626-6680
Fax: 212-626-6684
 === Dallas ====
Servio Corporation
14875 Preston Road
Suite 550
Dallas  TX  75240
Tel: 214-980-7073
Fax: 214-980-2949
 === Europe/UK ====
Servio UK
Criterion House
Beauchamp Court, Victors Way
Barnet  EN5 5TZ  England
Tel: +44 81 447-0800
Fax: +44 81 447-0577
 === Japan ====
Servio Corporation
Daito-Eiwa Building, 7F
5-11 Nihonbashi-Hakozakicho
Chuo-ku  Tokyo 103  Japan
Tel: +81 3 3660-1910
Fax: +81 3 3663-3287
 === Distributors ====
 === Germany, Austria, Switzerland ====
ObjectOriented System Technologies
Baroper Str. 337
Dortmund  50  W-4600
Tel: +49 231 975 990
Fax: +49 231 975 99-20
 === Japan ====
Japan Information Processing Service Co., Ltd.
2-4-2 Toyo , Koto-ku
Tokyo, 135, JAPAN
Tel: +81 3 5690 3268
Fax: +81 3 5690 3390
Nexus Technology K.K.
Suite 901
Botan 3-11-1
Koto-ku  Tokyo 135  Japan
Tel: +81 3 3660-1910
Fax: +81 3 3663-3287
 === Taiwan ====
Anco Technologies
11-1F, 76 Tun Hwa S. Road, Sec. 2
Taiwan, R.O.C.
 === Italy ====
Etnoteam S.P.A.
Via Adelaide Bono Cairoli 34
Milano  20127  Italy
Tel: +39 2 261 621
Fax: +39 2 261 10755
 === England ====
AI International Ltd.
1 Parkview Road
Herts  HP4 2EY  England
Tel: +44 442 876 722
Fax: +44 442 877 997
 ==== Mexico ====
TEIX, Sistemas de Informacion
Estrategica S.A. de C.V.
Antonio M. Anza No. 43
Col Roma  Mexico D.F.  06700
Tel: +52 5 564-7146
                       ITASCA ODBMS V2.2
                      Itasca Systems, Inc.
                       7850 Metro Parkway
                      Minneapolis, MN 55425
                         (612) 851-3155
                          Sandy Miezwa
                         (612) 851-3169
Itasca Systems develops, markets, and supports ITASCA, a distributed
active object database management system and related tools. The initial
research work for ITASCA occurred in the Object-Oriented and Distributed
Systems Lab at the Microelectronics and Computer Technology
Corporation (MCC) in Austin, Texas. The research was known as the
ORION prototypes. 
The ITASCA Distributed ODBMS is a language neutral, full-featured, active
object database that supports data access from various object
languages. ITASCA allows clients to transparently access data that is
distributed among multiple servers.  ITASCA supports full dynamic schema
modification that can be performed during any phase of the software
lifecycle.  Applications written in dissimilar and incompatible languages,
such as C++ and CLOS, share objects through ITASCA. ITASCA stores methods
inside the database, promoting reusability and maintainability.  The only
commercial ODBMS based upon the MCC Orion technology, ITASCA is considered
by many to be the most feature-rich ODBMS on the market today.
This overview describes release 2.2 of the ITASCA Distributed Object
Database Management System. It describes how ITASCA functions,
outlines its implementation features, and explains some of the system
History of ITASCA
ITASCA is based on a series of object database research prototypes. Work
on these prototypes began in 1985 at the Microelectronics and Computer
Technology Corporation (MCC) Object-Oriented and Distributed Systems
Laboratory. MCC released the first prototype, ORION-1, in May, 1987, as
a single-user system. MCC extended ORION-1 to the ORION-1SX
prototype system and released it to the shareholder companies in April,
1988. ORION-1SX was a multi-user system with a multi-client, single
server architecture. The third prototype, ORION-2, introduced a distributed,
object-oriented architecture for a multi-user environment. MCC released
the third prototype to shareholder companies in July, 1989. ORION-2 has a
multi-client, multi-server architecture. Having met its objectives, MCC
stopped all work on ORION at that time. Over five million dollars was spent
for the three generations of prototypes.
The ITASCA product is an extension and commercialization of the ORION-2
prototype from MCC. Itasca Systems has added major enhancements and
features, improved the performance, and strengthened the code. It now runs
on UNIX systems from multiple vendors. ITASCA is an industrial-strength,
documented product, fully supported by Itasca Systems, Inc. Itasca Systems
continues to develop tools and other products to work with ITASCA.
ITASCA employs a distributed architecture with private and shared objects
spread across UNIX-based computers on a local-area network. The
ITASCA model follows the object-oriented view that uniformly models any
real-world entity as an object. Each object has a unique identifier along with
a state and behavior. Attributes represent the state of an object. Methods
(code) define the behavior of an object. A class object collects objects that
share the same set of attributes and methods. Subclasses derive from
existing classes. The resulting schema, or database definition, is a class
hierarchy. Each subclass inherits all the attributes and methods of its
superclasses. ITASCA supports multiple inheritance. A subclass may derive
from more than one superclass. 
One of the breakthroughs of object-oriented technology is the reusability of
code. ITASCA allows for the active management of both reusable code and
data in an integrated system. Developers may write applications in C++,
CLOS, C or Common Lisp. This means ITASCA is language neutral. Objects
stored using one programming language can be accessed by other
programming languages. It also means an application program need not be
written in an object-oriented language. 
The ITASCA database management system has features belonging to most any
database system. This includes persistent storage for data and schema,
concurrency control and locking, transaction management, multiple
security levels, and logging and recovery for both CPU and disk media
failure. Additional features of ITASCA include dynamic schema
modification, long-duration transactions, shared and private databases,
distributed version control, distributed transaction management, distributed
query management, distributed change notification, object migration, and
an extensible architecture.
Shared and private databases exist in a distributed environment in ITASCA.
The shared database is distributed across workstations (sites) in a network.
An ITASCA server controls the partition of the shared database at each site.
ITASCA clients provide transparent access to the various partitions of the
shared database. The architecture allows any number of private databases at
each distributed database site. Data can move between private and shared
databases. Private databases allow private data that is not shared with other
users of the database.
ITASCA stores the schema redundantly at each site to improve
performance. The schema storage also includes code in the form of
methods. Management of schema updates is automatic for all sites. This
includes sites that were off-line during any changes. Automatic distribution
of schema changes, including method code changes, simplifies database
ITASCA stores each instance of data in one site. The system or a user may
move the data from one site to another to improve data locality. Access to
moved data remains transparent. There is no need for a user or application
to know the specificlocation of data in the ITASCA distributed database.
ITASCA will automatically find the location of the data. This simplifies
distributed application development. The developer can rely on ITASCA
finding data in the distributed database.
No single site acts as a master site, thus ITASCA's architecture has no
single point of failure. ITASCA has neither a central data server nor a
central name server. This is important for maintaining a database system
with high availability in a networked workstation environment.
ITASCA supports dynamic schema modification to create a flexible
environment for changing or customizing a database system. Authorized
users can add and remove attributes or change the subclass/superclass
relationship at any time. Authorized users can also add or remove partitions
of the shared database at any time. All this can be done interactively without
affecting other parts of the ITASCA database at the time changes occur to
the schema. There is no need to "bring the system down" or off-load/reload
data to restructure the database. Dynamic schema modification can
significantly reduce maintenance costs. It also is useful in environments
where change to data definitions are normal or relatively frequent.
ITASCA has a sophisticated security authorization technique tied to the
class hierarchy. It supports both positive and negative authorizations at any
level in the class hierarchy. For example, granting access to all objects but
one requires only two authorizations: a global grant followed by a specific
denial. Authorization extends to classes, instances of classes, attributes,
and methods. Also, inheritance of authorization reduces the work of database
Long-duration transactions allow users to check objects out of the shared,
distributed database into their private databases. Users can then change the
objects in the private databases without affecting the shared database or
other users. These changes can be committed to the private database. Then,
at any later time, the user can check the updated object or objects back into
the shared database.
ITASCA supports version control of objects. A new version of an object
promotes the original or parent object to restrict further changes to the
parent. ITASCA also supports alternate versions such that multiple versions
can have the same parent. Promoting an object version to a released status
restricts any deletion of the object. ITASCA uses generic versions to
dynamically reference the most recent or default version of an object
without any intervention by a user or application.
Change notification in ITASCA is either flag-based or message-based.
Flag-based notification will identify an updated object upon querying the
object for such information. It is a passive notification scheme. Message-
based notification, on the other hand, is an active notification scheme. It
will execute a method (or code) upon an update or other change to an object.
Such methods can send mail messages or invoke other methods or
Memory management in ITASCA uses both page and object buffers.
ITASCA has a traditional database page buffer scheme that contains pages
with multiple objects. Desired objects move from the page buffer to an
object buffer. The object buffer then provides ITASCA with enhanced in-
memory performance because it contains only frequently-referenced

This document was translated by ms2html v1.8 on 01.06.95.