The OBject system of STONE --- OBST
The persistent object management system OBST was
developed by
Forschungszentrum Informatik
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.
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 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.
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).
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.
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.
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 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:
- OBST version
- configuration parameters for your OBST version (from file
config.status)
- kind and version of C++ compiler
- machine
- operating system
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
Projekt OBST
Haid-und-Neu-Strasse 10-14
D-76131 Karlsruhe
Germany
eMail: obst-mitarbeiter@fzi.de
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!