Newsgroups: comp.object,comp.answers,news.answers Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nic.hookup.net!news.kei.com!sol.ctr.columbia.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!news From: Bob Hathaway Subject: Comp.Object FAQ Version 1.0.5 (12-13) Part 4/8 Message-ID: <1993Dec14.044538.18285@midway.uchicago.edu> Followup-To: comp.object Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology Sender: news@uchinews.uchicago.edu (News System) Organization: Geodesic Systems Date: Tue, 14 Dec 1993 04:45:38 GMT Approved: news-answers-request@MIT.Edu Lines: 1444 Xref: senator-bedfellow.mit.edu comp.object:13851 comp.answers:2992 news.answers:15750 Archive-name: object-faq/part4 Last-Modified: 12/13/93 Version: 1.0.5 > Encore (Brown University) email:bpe@browncs.brown.edu Encore is an object-oriented database system targeted at large scale software engineering applications which are involved in data modeling. It was developed at Brown University in the late 1980s. It is notable for its special support for long-lived (ie. cooperative) transactions, popular in design applications, and its support for class versioning. Objects are never converted, rather, classes are versioned, and the user can specify filters to make old-style instances appear as new instances to new applications (and vice versa). References/Additional Information: [] Mary F. Fernandez. OBSERVER: A storage system object-oriented applications. Technical Report CS-90-27, Brown University, Providence, RI, 1990. [] Mark F. Hornick and Stanley B. Zdonik. A shared, segmented memory system for an object-oriented database. ACM Transactions on Office Information Systems, 5(1):70--95, January 1987. [] Andrea H. Skarra and Stanley B. Zdonik. Type evolution in an object-oriented database. In Research Directions in Object-Oriented Programming, MIT Press Series in Computer Systems, pages 393--415. MIT Press, Cambridge, MA, 1987. An early version of this paper appears in the OOPSLA '86 proceedings. [] Andrea H. Skarra and Stanley B. Zdonik. Concurrency control for cooperating transactions in an object-oriented database. In Won. Kim and Frederick H. Lochovsky, editors, Object-Oriented Concepts, Databases and Applications. Addison-Wesley, Reading, MA, 1989. FTP: Complete source can be found in wilma.cs.brown.edu/pub/encore.tar.Z See also APPENDIX E. > Exodus (University of Wisconsin) EXODUS is a DBMS from the University of Wisconsin. An overview, excerpted from the abstract of [CDG+90] reads: EXODUS, an extensible database system project that is addressing data management problems posed by a variety of challenging new applications. The goal of the project is to facilitate the fast development of high-performance, application-specific database systems. EXODUS provides certain kernel facilities, including a versatile storage manager. In addition, it provides an architectural framework for building application-specific database systems; powerful tools to help automate the generation of such systems, including a rule-based query optimizer generator and a persistent programming language; and libraries of generic software components (e.g., access methods) that are likely to be useful for many application domains. The programming language is called E, an extension of C++. [RC89] REFERENCES: (see "ftp.cs.wisc.edu:exodus/bibliography" for a complete list) [CDG+90] Michael J. Carey, David J. DeWitt, Goetz Graefe, David M. Haight, Joel E. Richardson, Daniel T. Schuh, Eugene J. Skekita, and Scott L. Vandenberg. The EXODUS extensible DBMS project: An overview. In Stanley B. Zdonik and David Maier, editors, Readings in Object-Oriented Database Systems, Data Management Series. Morgan Kaufmann, San Mateo, CA, 1990. Also available as WISC-CS-TR 808. [CDRS89] Michael J. Carey, David J. DeWitt, Joel E. Richardson, and Eugene J. Skekita. Storage management for objects in EXODUS. In Won. Kim and Frederick H. Lochovsky, editors, Object-Oriented Concepts, Databases and Applications, chapter 14. Addison-Wesley, Reading, MA, 1989. After Carey et al. Object and File Management in the EXODUS Database System, Proceedings of the Twelveth International Conference on Very Large Data Bases, 1986. [GD87] G. Graefe and D. DeWitt. The EXODUS optimizer generator. In U. Dayal and I. Traiger, editors, Proceedings of the SIGMOD International Conference on Management of Data, San Francisco, CA, May 1987. [RC89] Joel E. Richardson and Michael J. Carey. Persistence in the E language: Issues and implementation. Software -- Practice and Experience, 19(12):1115--1150, December 1989. FTP: source code, documentation and a complete bibliography can be found at ftp.cs.wisc.edu:exodus/ See also APPENDIX E. On Schema Evolution (from original survey): No solution for the problem of schema evolution is provided. Emulation is rejected by the authors, who claim that the addition of a layer between the EXODUS Storage Manager and the E program would seriously reduce efficiency. Automatic conversion, whether lazy or eager, is also rejected, as it does not mesh well with the C++ data layout. To implement immediate references to other classes and structures, C++ embeds class and structure instances within its referent. The resulting change in the size of the object might invalidate remote pointer references. Joel E. Richardson and Michael J. Carey. "Persistence in the E language: Issues and Implementation." Appeared in "Software -- Practice and Experience", 19(12):1115-1150, December 1989. > Machiavelli (University of Pennsylvania) Machiavelli is a statically-typed programming language developed at the University of Pennsylvania. Its most outstanding innovation is the use of conditional typing scheme in its type inference system. It does not address type evolution. [communication with limsoon@saul.cis.upenn.edu] [Note: Machiavelli is included in this summary because it previously incorporated persistence in its data model.] > MOOD4-PC: Material's/Miniature Object-Oriented Database Prototype for NEC/IBM-PC is an object-oriented database system(OODBS) program developed in the course of our research project MOOD. The aim of the project MOOD is to develop a material database system to handle raw material data which are produced and accumulated in materials research and referred to by material experts when they face scientific or engineering problems where the expected behavior of particular materials in particular environments are crucial importance. We all know that the conventional database systems do not fulfill this requirement, though they serves well for bibliographic databases or fact databases which deals with the standard properties of standard materials. MOOD4-PC is written in Arity/Prolog and available in source and executable form via anonymous ftp from: ~/pub/mood/mood4 at mood.mech.tohoku.ac.jp [130.34.88.61] ~/pub/database/mood at ftp.uu.net [192.48.96.9] ~/pub/computing/databases/mood at src.doc.ic.ac.uk [146.169.2.1] Although it is true enough to say that MOOD4 is a general purpose OODBS, it may be appropriate to point out that MOOD4 is significantly different from what is generally meant by the term, the Object-Oriented Database System. That is, OODBSs, in general, consist of two parts: (1) Disk storage manager (2) Database language to define and manipulate data objects to be stored to and retrieved from the disk. The database language of OODBS is akin to the object-oriented programming language such as Smalltalk or C++. You can enjoy the full versatility of these general purpose programming language in writing application programs with the database language. As apparent from these, OODBSs, in general, are for programmers who write application programs which serve end users' needs. MOOD, on the other hands, is not; it is for end users. It is provided with a user interface named the object editor or OE in short. With OE, we can; (1) Edit class definition objects and save them. This replaces the data definition language. (2) Edit data objects and save them. (3) Create query objects, let the system select data objects which match the queries, and browse them. In the other words, we can do everything necessary to manage and use database with OE. MOOD, therefore, needs no programming language and, in fact, has none. In this regard, MOOD may better be categorized to the OODBS application. The architecture of MOOD as such is the consequence of the nature of information to be dealt with in material database. If we describe the nature with a single word, "variety" will be the one most appropriate. No fixed data structure can handle a handful of material data because their contents differ from one to another. The feature of OODBS relevant here is not the intimacy with programming languages but the flexibility of data structure which allows us to construct data objects with a variety of structures which match the variety in the information to be dealt with. Upon inputting and retrieving data objects, end users are forced to face this variety in data structure since significant information is born in the structures of individual representations. Yet, we say that MOOD is a general purpose OODBS. This is not in the sense that we can develop application programs on it, but in the sense that it generally supports the essential capabilities of OODBS; (1) The abstract data type. (2) The nesting of structured data objects. (3) The class hierarchy. (4) The inheritance of attributes along the hierarchy. (5) Matching between objects along their structures with the knowledge of the class hierarchy. For additional features of MOOD4, please consult its manual available with the program. Although they are biased to the processing of material data (or, more generally, scientific and technical data), MOOD with these capabilities can be used in any application domain at least by the stage where you are to examine how well the pieces of information of interest are represented in OODBS and how well specific items of interest are discriminated out from the database as such. Questions and suggestions on this software which are ever welcome indeed may be addressed to; Noboru Ono Dept. of Machine Intelligence and Systems Engineering, Faculty of Engineering, Tohoku University. Tel:++22-216-8111, Fax:++22-216-8156, E-mail:ono@mood.mech.tohoku.ac.jp > OBST/STONE (Forschungszentrum Informatik [FZI], Karlsruhe, Germany) The OBject System of Stone --- OBST The persistent object management system OBST was developed by Forschungszentrum Informatik (FZI) as a contribution to the STONE project. This project (supported by grant no. ITS8902A7 from the BMFT, i.e. the German Ministry for Research) aims at the development of a software engineering environment for education purposes and is carried out as a joint project of nine german universities and research institutions. An essential feature of STONE is that the object oriented paradigm is pursued consequently as a key concept. OBST is the common persistent object store for all tools within the STONE environment. Data Model --------- The OBST data model can be characterized by the following properties: * Schema definition language syntactically similar to C++ * Support of multiple inheritance * Generic classes * Abstract classes and methods * Distinction between public, protected, and private methods * Redefinition of methods * Overloading of methods Schemas and Containers ---------------------- Schemas are compiled by the OBST schema compiler. The compilation results are instances of classes of the meta schema. From these instances in a next step interfaces to different programming languages can be generated. At present the C++ language binding is implemented, interfaces to Lisp and other languages are planned. Objects are stored in so-called containers. The container an object belongs to is determined at the time of object creation and fixed throughout the object's lifetime. Containers are the units of clustering, synchronization, and recovery. Objects can be referenced by other objects across container boundaries. Incremental Loading ------------------- OBST provides a mechanism to incrementally load methods. This enables programs to deal with objects whose type is defined after the program itself has been developed. This is useful in systems that provide for inheritance and it supports schema evolution. We used it e.g. for programs that interpret the object base and call methods of the found objects (for example the below mentioned browser). Prototype --------- Since end 1990 the first prototype of OBST is available and is shipped to interested universities and research institutions. The current version is publicly available via FTP (see below) since March '92. Our current mailing list (see below) comprises about 150 persons. The system comes with the schema compiler, a library of predefined classes (like Set, List, String, ...), a graphical object browser (more a shell than a browser), the structurer and flattener (STF), tclOBST, and all manuals. For STF and tclOBST see below. Structurer and Flattener ------------------------ This is a tool to build objects from bytestrings and flatten objects down to bytestrings. It is intended to be used when coupling UNIX tools to the object management system. The user defines a grammar that describes her objects. Afterwards, the structurer parses an ascii text according to the given grammar and creates an OBST object structure that represents the corresponding parse tree. The flattener does the inverse transformation, that means it generates an ascii text from a given OBST object structure according to the given grammar. tclOBST ------- tclOBST is a library which provides an embedding of OBST into the interactive tool command language tcl, developed by John Ousterhout at the University of Berkeley. Based on the standard tcl shells, which are also comprised in the tclOBST distribution, tclOBST offers interactive access to the complete functionality modeled by OBST schemata. System Requirements ------------------- For the prototype's installation a C++ compiler (GNU g++ 1.37 or later 1.4* or 2.3.3 or AT&T 2.0/2.1/3.01) and the X-Windows system (currently X11R4 or X11R5) for the graphical tools are required. Installation is well-tried on SUN 4/* systems and should be no problem on other UNIX machines, too. -------------------------------------------------------------------- For more information please mail to: Forschungszentrum Informatik (FZI) STONE Projekt Haid-und-Neu-Strasse 10-14 D-76131 Karlsruhe Germany or email to: stone@fzi.de Phone: ++49-721-9654-601 Fax: ++49-721-9654-609 Teletex: 721 190 fziKA The OBST system is available via anonymous FTP from ftp.fzi.de [141.21.4.3]. The system can be found in the directory /pub/OBST/OBST3-3.3 Sites interested in getting information about new OBST developments are welcome to register in our mailing list. This can be done by sending an email with subject "obst-mailing-list" and contents "SUBSCRIBE " to stone@fzi.de. If the subscription was successful you will receive a confirmation. Bug reports should contain a small example program with which the bug can be reproduced, or at least a detailed description of the observed phenomenon. Besides bug reports we are strongly interested in all experiences our users make with OBST (e.g. sufficiency of data model, performance, ...) and in our users' application areas and the applications as well. So, please don't hesitate to send us a short note. Best regards and happy OBST programming. The OBST Team --- BTW "Obst" is the German word for "fruit", so have a fruitful time with OBST! > Ode Ode 2.0 An Object-Oriented Database C++ Compatible, Fast Queries, Complex Application Modeling, Multimedia Support, and more See APPENDIX E, Databases, for description. > Oggetto, University of Lancaster, UK. Developed at the University of Lancaster, UK. Summary NYI. "Oggetto: An Object Oriented Database Layered on a Triple Store", J.A. Mariani, The Computer Journal, V35, No 2, pp108-118, April 1992. > ORION (Now marketed as ITASCA) ORION was a prototype OODBMS developed at MCC, an American consortium by Won Kim and his group. Won Kim has left MCC and formed a new company, UniSQL, in Austin, with a new product of the same name. See also entry under "ITASCA". REFERENCES: I have found nearly a dozen papers published by the ORION folks. Overviews at various stages in its development and commercialization can be found in: [KBGW91] Won Kim, N. Ballou, J.F. Garza, and D.; Woelk. A distributed object-oriented database system supporting shared and private databases. ACM Transactions on Information Systems, 9(1):31--51, January 1991. [KGBW90] W. Kim, J.F. Garza, N. Ballou, and D. Woelk. Architecture of the orion next-generation database system. IEEE Transactions on Knowledge and Data Engineering, 2(1):109--24, March 1990. [KBCG89] Won Kim, Nat Ballou, Hong-Tai Chou, and Darrell Garza, Jorge F. Woelk. Features of the ORION object-oriented database system. In Won. Kim and Frederick H. Lochovsky, editors, Object-Oriented Concepts, Databases and Applications, chapter 11. Addison-Wesley, Reading, MA, 1989. [KBC+88] Won Kim, N. Ballou, Hong-Tai Chou, J.F. Garza, D. Woelk, and J. Banerjee. Integrating an object-oriented programming system with a database system. In Proceedings of the ACM Conference on Objected-Oriented Programming: Systems, Languages and Applications (OOPSLA), pages 142--152, San Diego, CA, September 1988. Published as ACM SIGPLAN Notices 23(11). [Pointers to the previous papers documenting each of the advanced features listed above are cited therein.] The paper most relevant to the issue of schema evolution is the following: [BKKK87] J. Banerjee, W. Kim, H-J. Kim, and H.F. Korth. Semantics and implementation of schema evolution in object-oriented databases. In U. Dayal and I. Traiger, editors, Proceedings of the SIGMOD International Conference on Management of Data, San Francisco, CA, May 1987. You might also like to look at Kim's book, which provides a good introduction to OODBMS, while focusing on the ORION work: [Kim90] Won Kim. Introduction to Object-Oriented Databases. Computer Systems. MIT Press, Cambridge, MA, 1990. > OTGen (Carnegie Mellon University/UMass Amherst) OTGen is a design for a system to support schema evolution in object-oriented databases. The chief contribution of OTGen is support for programmer extensibility of transformation functions to allow a system to support a wide range of schema changes, not just those that can be easily automated. While OTGen was never implemented, it is based on the implementation of TransformGen, a system to support the evolution of the specialized databases used by Gandalf programming environments. For more information on OTGen and TransformGen, please see: Barbara Staudt Lerner and A. Nico Habermann, "Beyond Schema Evolution to Database Reorganization", in Proceedings of the Joint ACM OOPSLA/ECOOP '90 Conference on Object-Oriented Programming: Systems, Languages, and Applications, Ottawa, Canada, October 1990, 67-76. Barbara Staudt, Charles Krueger, and David Garlan, TransformGen: Automating the Maintenance of Structure-Oriented Environments, Computer Science Department Carnegie-Mellon University, Technical Report CMU-CS-88-186, November 1988. David Garlan, Charles W. Krueger, and Barbara J. Staudt, "A Structural Approach to the Maintenance of Structure-Oriented Environments", in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, Palo Alto, California, December 1986, 160-170. Contact: Barbara Lerner blerner@cs.umass.edu > VODAK Research in the framework of VODAK focuses on an extensible data model and database programming language, an advanced transaction model, object-oriented query language, and support for multimedia data. The VODAK Data Model Language VML Usually database models lack mechanisms for extending them with additional modeling primitives. This limitation does not allow the adaptation of the models for specific application needs, e.g. database integration, multimedia document handling, hypertext modeling, etc. The VODAK Model Language VML homogeneously integrates the concept of metaclasses and the separation of types and classes with other object-oriented concepts such as properties, methods, inheritance, and object identity. Complex nested data structures can be defined using the set, array, tuple, and dictionary type constructors. VML supports its own programming language for implementing methods, specifying transactions and an ad hoc query language. In VML classes are used to organize a set of objects corresponding to real world entities and relationships between them. Object types define the structure of objects and the operations defined on these structures. They are associated with classes in order to determine the structure and behavior of the class' instances. Metaclasses are first class objects whose instances are classes. Metaclasses are associated with three object types: an (optional) own-type extending their own behavior, an instance-type specifying the behavior of their instances (which are classes), and an instance-instance-type specifying the behavior of the instances of their instances. Metaclasses can be organized in an instantiation hierarchy of arbitrary depth. This approach leads to an open, adaptable data model which provides for the specification of additional modeling primitives at a meta layer of the database schema. The concept of metaclasses and the separation of classes and types allow to determine the structure and behavior of objects and the individual inheritance behavior via semantic relationships between arbitrary objects already at the meta layer independently from the specifications given at the application layer for the application specific classes. The VODAK Transaction Model In VODAK, we focus on two specific problems of transaction management. 1. Operations to read and edit (hyper)documents are typically complex, interactive and of long duration. A high degree of concurrency is required to reduce the number and length of times a transaction is blocked. 2. A publication environment has to handle existing database systems for using and modifying remote information and documents. Transaction managers of existing systems, i.e. concurrency control and recovery, have to be integrated in a transparent way utilizing the functionality of existing managers. Our transaction model is based on open nested transactions. Compared to conventional flat transactions, nested transactions allow more concurrency and are more flexible for recovery. A nested transaction is a tree-like structure, dynamically built up by the call of subtransactions until a bottom implementation level is encountered. We extended the open nested model from a fixed calling hierarchy of operations in a layered system (multi-level transactions) to an arbitrary calling hierarchy of operations in an object-oriented system. Commutativity of operations is applied to system defined VODAK methods, and to methods of user defined object types. For the second type of operations, we developed a framework to specify commutativity and inverse operations in VML. Query Processing Although nearly all object-oriented data models proposed so far include behavioral aspects, most object-oriented query languages, algebras and query optimization strategies simply adapt relational concepts since they focus on the complex structures of objects and neglect the behavior. We claim that this approach is not sufficient since it does not reflect the much richer semantics methods can carry which have to be taken into account for really efficient query processing. The quite straightforward approach we consider is to integrate methods in an algebraic framework for query processing and to make there partial knowledge about methods available in the form of equivalences. We integrate algebraic set operators with methods defined in database schemas within an object-oriented data model. We investigate the impact on the architecture of the query processor when the algebra becomes an extendible component in query processing. Multimedia Support The V3 Video Server was built as a demonstration showing a multimedia application developed on top of the VODAK database management system. The V3 Video Server allows a user to interactively store, retrieve, manipulate, and present analog and short digital video clips. A video clip consists of a sequence of pictures and corresponding sound. Several attributes like author, title, and a set of keywords are annotated. In the future, the VODAK DBMS will be enhanced with new built-in functionality for multimedia datatypes. Therefore, existing components of VODAK must be changed and new ones must be added to support time dependencies, high data volumes, and user interaction. Query Processing Although nearly all object-oriented data models proposed so far include behavioral aspects, most object-oriented query languages, algebras and query optimization strategies simply adapt relational concepts since they focus on the complex structures of objects and neglect the behavior. We claim that this approach is not sufficient since it does not reflect the much richer semantics methods can carry which have to be taken into account for really efficient query processing. The quite straightforward approach we consider is to integrate methods in an algebraic framework for query processing and to make there partial knowledge about methods available in the form of equivalences. We integrate algebraic set operators with methods defined in database schemas within an object-oriented data model. We investigate the impact on the architecture of the query processor when the algebra becomes an extendible component in query processing. The VODAK Prototype The system architecture consists of a central database environment and several external database environments to which the user wants to have integrated access. Each of these environments consists of an object manager, a message handler, a transaction manager, and a communication manager. In addition to these components an external database environment includes a database interface module which realizes the access to an external database system. The DBMS components are currently built on top of DAMOKLES and will be in the near future on top of ObjectStore. A first version of a C++ based prototype of VODAK is available for Sun Sparc Stations under certain conditions. It implements all the features specified in including e.g. metaclasses, transactions, and remote message execution. References P. Muth, T. Rakow, W. Klas, E. Neuhold: A Transaction Model for an Open Publication Environment. A. K. Elmagarmid (Ed.): Database Transaction Models for Advanced Applications. Morgan Kaufmann Publishers, San Mateo, Calif., 1992. Wolfgang Klas, Karl Aberer, Erich Neuhold Object-Oriented Modeling for Hypermedia Systems using the VODAK Modeling Language (VML) to appear in: Object-Oriented Database Management Systems, NATO ASI Series, Springer Verlag Berlin Heidelberg, August 1993. Karl Aberer, Gisela Fischer Object-Oriented Query Processing: The Impact of Methods on Language, Architecture and Optimization Arbeitspapiere der GMD No. 763, Sankt Augustin, July 1993. T.C. Rakow, P. Muth The V3 Video Server: Managing Analog and Digital Video Clips, Sigmod 93, Washington, DC. For further information contact {aberer,muth,rakow,klas}@darmstadt.gmd.de GMD-IPSI Dolivostr. 15 D-64293 Darmstadt GERMANY FAX: +49-6151-869 966 Commercial Systems __________________ > ArtBASE (Object-Oriented Data Model) by: ArtInAppleS Ltd. Kremelska 13 845 03 Bratislava SLOVAKIA Phone: x42-7-362-889 fax: x42-7-777 779 EMail: artbase.support@artinapples.cs Distributor for Germany: ARS NOVA Software GmbH Stettener Strasse 32/3 73732 Esslingen a.N. Germany Phone: x49-711 3704001 Fax: x49-711 3704001 EMail: info@arsnova.stgt.sub.org Languages: Objectworks\Smalltalk by ParcPlace Systems, Inc. Platforms: Unix, PC Windows, Macintosh Features: - Fully implemented in Objectworks\Smalltalk (ArtBASE is delivered with source code) - ArtBASE extents Smalltalk of persistency. Persistent objects are handled the same way as transient objects. - Optimistic and pessimistic concurrency control. - Transactions, including long lived transactions - User concept with access restrictions - storing of classes and methods in the database - entire applications may be stored in an ArtBASE database, including the data AND the application classes - Currently, a single user version is available. The Distributed Multi User Server Version will be presented at the OOPSLA'93 at Washington D.C. in September 1993 for Unix environments and PCs. - Existing applications can be turned to database applications very easily using ArtBASE > EasyDB (Objective Systems, Sweden) EasyDB features a (programming language independent) Data Definition Language (DDL) for the definition of schemas. It relies on the Entity-Attribute-Relationship model. Data Manipulation Languages (DML) include a Navigational Query language (NQL) embedded in a host language (C available now, Ada in January '93), and a generic C++ class library. On Schema Evolution (from original survey): The schema may be freely extended with new items (types, domains, attributes, entities, relationships etc.). Deletion of items is not allowed. Data created with an older schema may co-exist with newer data. Old applications need not be recompiled when the schema is updated. Attempts by newer applications to access `older' data in an inconsistent way are detected and reported via an exception handling system. [Tomas Lundstrom ] Objective Systems SF AB (Ericsson) Box 1128 S-164 22 Kista, Sweden tel : +46-8-703-4591 fax : +46-8-750-8056 contact: Jaan Habma, jaan@os.se > GemStone (Servio Logic) 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 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 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. ============================================================================== PLATFORMS 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. ============================================================================== REFERENCES [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, Allan 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. ============================================================================== CONTACTS === 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 Co., Ltd. 6-7 Kabutocho, Nihonbashi Chuo-ku Tokyo 103 Japan Tel: +81 3 3668-6170 Fax: +81 3 3668-1428 --- 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 sales@itasca.com (612) 851-3155 Sandy Miezwa (612) 851-3169 Introduction 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. Overview 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. > Matisse OODBMS FEATURES LIST: An Industrial Strength Open Semantic Object Database Performance - Symmetric, Fine Grain, Multi-Threaded Architecture - Parallel and Asynchronous Disk I/O - Automatic Disk Optimization through Dynamic Clustering - High Speed OLTP Environment Reliability - 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 Scalability - 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 Information on MATISSE, Contact one of the following offices: USA: ODB, an Intellitic International Company 238 Broadway Cambridge, MA 02139 Phone:(617) 354-4220 Fax: (617) 547-5420 email: info@odb.com EUROPE: INTELLITIC INTERNATIONAL 12-14 rue du Fort de Saint-Cyr Montigny-le-Bretonneux 78182 Saint Quentin en Yvelines Cedex France Phone: 33(1) 30.14.54.30 Fax: 33 (1) 30.14.54.40 JAPAN: SGN CO. LTD. Urban Toranomon Building 16-4 Toranomon Minato-Ku Tokyo 105 Japan Phone: 81 (3) 3593.34.31 Fax: 81 (3) 3593.34.32 > NeoAccess A cross-platform object-oriented database engine based on C++. It allows developers to embed the power of a fully-functional object-oriented database system into their applications. All of the data contained in the database, including indices, can be in a single file, so users can treat a database file as they would a standard document file. The programming model is designed to keep visible complexity to a minimum while providing a feature-rich foundation on which to build and enhance applications. NeoAccess has taken a different approach toward the issues surrounding object persistence than have other solutions that have been offered. We believe that objects should be viewed as having a set of properties with a pliable state. With NeoAccess persistent objects are provided with persistence and sharing properties. These properties allow objects to maintain an association with a file. This association, which can be built and broken freely, allowing objects to migrate freely between disk and memory. The API to these properties address issues such as adding or deleting the object from a file, sorting and indexing, locating and later freeing the object in memory, object sharing, and maintaining relationships between objects. NeoAcces s with has been fully integrated into standard application frameworks such as Borland's ObjectWindows and MacApp 3.0 and the THINK Class Library on the Macintosh. A single source tree can be used to build the engine in all development environments. Database files are binary-compatible across platforms so users on different types of machines can share data without conversion. Contact: Bob Krause NeoLogic Systems 1373 Third Avenue San Francisco, CA 94122 (415) 566-9207 > O2 (INRIA/O2 Technology) This is an entry on schema evolution. General papers on O2 are included. We have implemented in O2 schema updates in our first release but without NO IMPACT on the database (we have a design to implement deferred update, but it is a paper design). However, users manage to convert their instances by hand, using their O2 programs written themselves, and with the aid of the following tools: 1- There is a set of predefined classes whose instances contain objects representing a schema (i.e., a Meta-schema). These classes may be used in a conversion program, they may even be extended by the programmer. 2- There is a save-restore program that allows to take an O2 database, save it on a file or a tape in a logical way (i.e., independent of the physical format of objects on disk), and restore it again on a (perhaps new release) of the system, in an empty database. Currently, when saving a database its schema is also saved. The next extension to this save/restore program will be to save the database without saving its schema, and then restore the database on a new version of that schema. The restore program will be able to perform automatically some conversions like "add attribute" or "delete attribute". Schema updates with impact on the database will be implemented in future releases. [Fernando Velez ] For more information on O2, consult the following REFERENCES: Francois Bancilhon, Claude Delobel, Paris Kanellakis. "Building an Object-Oriented Database System: The Story of O2". Morgan Kaufmann Series in Data Management Systems, San Mateo, Calif., 1992. F. Bancilhon, G. Barbette, V. Benzaken, C. Delobel, S. Gamerman, C. Lecluse, P. Pfeffer, P. Richard, and F. Velez. "The Design and Implementation of O2, and Object-Oriented Database System". Advances in Object-Oriented Database Systems, Springer Verlag. (Lecture Notes in Computer Science series, Number 334.) C. Lecluse, P. Richard, and F. Velez. "O2, an Object-Oriented Data Model". Proceedings of SIGMOD88. Also appears in Zdonik and Maier, "Readings in Object-Oriented Database Systems", Morgan Kaufmann, 1990. ==== Corporate headquarters: O2 Technology 7 Rue du Parc de clagny 78035 Versailles Cedex France tel : 33 1 30 84 77 77 fax : 33 1 30 84 77 90 [They have many other contacts worldwide] > Objectivity/DB (Objectivity) Introduction: Objectivity/DB has a fully distributed client/server architecture that transparently manages objects distributed across heterogeneous environments and multiple databases. It provides an application interface that uses transparent indirection to ensure integrity and provides a single logical view of all information, with all operations working transparently on any database on the network, with scalable performance as users and objects increase. A higher-level Object Definition Language (ODL) is available as well as a C functional interface, integrated C++ interface, and SQL++. Objectivity/DB Objectivity/DB [Reference: Technical Overview, Objectivity, 1993], a product of Objectivity, Inc. of Menlo Park, CA, provides an integrated C++ programming interface with an emphasis on the DBMS engine for robustness and scalability from workgroups to enterprise-wide production applications. In production use today with more than 50,000 end users licensed, it supports a fully distributed, rather than central-server, architecture, with all operations working transparently over a mixture of multiple databases, schemas, users, and computers, and over heterogeneous hardware, operating systems, and networks. The language interface includes a C++ class library interface, soon to be ODMG; a C function library; and SQL++, supporting query predicates with either SQL or C++ syntax, interactively or programmatically. Over forty administrative and GUI tools provide both an interactive and programmatic interface, and a messaging backplane allows third party tools integration at four different levels, with a list of partners at all levels. One of the key architectural concepts of Objectivity/DB is an object reference mechanism that ensures data integrity. Unlike traditional ODBMSs that use direct pointers, which become invalid after commit and hence lead to crashes and corrupt databases, Objectivity/DB uses an indirection to guarantee safe reference. Transparent to the user, this indirection requires an extra test and pointer dereference, or a couple of cycles, which is not measurable in most applications. However, it ensures integrity of all references, even across transaction boundaries, resulting in production quality robustness. Also, it provides object level granularity for the object manager, allowing it to move, cluster, and swap objects as necessary, one of the keys required for scalability in objects and users. Finally, it allows object-level granularity for current features, such as heterogeneity and versioning, and future extensions, such as object-level security. A higher-level Object Definition Language (ODL) is provided that allows declaration of modeling concepts such as bi-directional associations, behavior of associations between objects as they version (move, copy drop), and propagation of methods across associations. These then result in automatically generated methods and declarations for both C++ and C. The standard C++ API allows application programmers to work with any standard compilers and debuggers, with no extra pre-processors, providing ODBMS capabilities via overloading C++ operators (new, ->, etc.), and declarations via provided classes (for references, etc.).