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 database.
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 standards.
[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 Germany
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 Taipei 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 Berkhamsted 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 ITASCA ODBMS V2.2
Itasca Systems, Inc. 7850 Metro Parkway Minneapolis, MN 55425 firstname.lastname@example.org (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 benefits.
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 administration.
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 administration.
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 programs.
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 objects.
This document was translated by ms2html v1.8 on 01.06.95.