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 (supported by grant no. ITS8902A7 from the BMFT, i.e. the German Ministry for Research).

OBST was originally designed to serve as the common persistent object store for the tools in software engineering environments.

Data Model

The OBST data model can be characterized by the following properties:

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.

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 method implementations. 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).

The System

Since end 1990 the first prototype of OBST has been available and has been shipped to interested universities and research institutions. The system has been publicly available via FTP since March '92. There is a mailing list with >>100 subscribers.

The system comes with the schema compiler, a library of predefined classes (like Set<Entity>, List<Entity>, String, ...), a graphical object browser (more a shell than a browser), a graphical schema designer (USE), the structurer and flattener (STF), tclOBST, and all manuals.

Schema Evolution Support Environment (USE)

This environment consists of a graphical schema designer built with tclOBST. It can be used to inspect existing class hierarchies and to modify these hierarchies; it allows the addition of new classes as well as the modification of existing ones.

Structurer and Flattener (STF)

This is a tool to build objects from byte strings and flatten objects down to byte strings. 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, tclOBST offers interpretative access to the complete functionality modelled by OBST schemas.

System Requirements

For the prototype's installation a C++ compiler (GNU g++, AT&T cfront, or others) and the X-Windows system for the graphical tools are required. Installation is well-tried on SUN Sparc stations and should be no problem on other UNIX machines, too. You can find a more detailed description of the supported platforms in the README.install.OBST* file that comes with the OBST distribution.

Additional Information

Status and Future of the OBST System

As of the end of '94, Xcc Software, Karlsruhe has taken over the task of maintaining the publicly available OBST version.

OBST has been licensed to Xcc. That company will develop and distribute a commercial OBST version.

Xcc will continue to maintain this freeware version of OBST e.g. by incorporating bug fixes and by porting it to new operating system or compiler releases. The home ftp server of this freely available version remains the same, too.

If you have developed extensions/code for OBST that you want to share with other OBST users, we encourage you to contact us in order to help you in adding your code to the freely available version. Such user extensions and modifications will be distributed preferably under the terms of the GNU LGPL and be made available to all OBST developers using the freeware OBST system. We would also very much appreciate if you could drop us a note after porting the freely available version to a new platform.

Contact Information

Xcc encourages all professional users to subscribe to the new support program that covers support for both the freely available and the commercial versions of OBST. Please contact Xcc for details and prices.
postal address:  Xcc Software GmbH
                 Durlacher Allee 53
                 D-76131 Karlsruhe
                      Germany

eMail:	         obst@xcc-ka.de 

Phone:           +49-721-616474
Fax:             +49-721-621384

System Distribution

The OBST system is available via anonymous FTP from ftp.fzi.de [141.21.4.3] and from several mirror servers.

The system as well as some overview papers, documentation (User's Guide, Language Reference Manual, Tutorial, ...), and lots of manual pages can be found in the directory /pub/OBST. Among these papers, there is an overview of the core part of the OBST system (approx. 75 KByte).

Feedback

Without any implication that we expect to get a lot of these: 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. They should also mention: 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.

Mailing Lists

There are mailing lists for announcing OBST enhancements, new versions, porting hints, etc. as well as for exchanging experiences with other OBST users.

Send a mail with content LONGINDEX to obst-listserv@fzi.de to learn about the mailing lists which are currently installed:

	echo LONGINDEX | mail obst-listserv@fzi.de
The mailing lists are maintained by an automatic list processor. Use HELP to learn about the commands understood by this processor:
	echo HELP | mail obst-listserv@fzi.de

OBST Developers

The original OBST development team can be reached at:
              Forschungszentrum Informatik (FZI)
                        Projekt OBST
                 Haid-und-Neu-Strasse 10-14
                     D-76131 Karlsruhe
                          Germany

eMail:        obst-mitarbeiter@fzi.de (mail)
	      

Phone:        +49-721-9654-701
Fax:          +49-721-9654-709
Please use obst@xcc-ka.de for questions, general feedback, bug reports, ...

Best regards and happy OBST programming.

The OBST Team,

Boris Boesler, Dirk Eichberg, Frank Fock, Axel Freyberg, Michael Gravenhorst, Ingolf Mertens, Michael Pergande, Christian Popp, Bernhard Schiefer, Dietmar Theobald, Axel Uhl, Walter Zimmer

BTW: "OBST" is the German word for "fruit", so have a fruitful time with OBST!