A design data manager
Authors: Alho Kari , Peltonen Hannu , Mäntylä Martti , Sulonen Rejio 
Published: November 2005

HutBase
is a visual design data manager that can be used to store and manipulate data objects created and processed by a variety of design applications. In particular, HutBase allows the user to manipulate the data and start applications, and provides a access mechanism for the applications.

HutBase consists of three software layers. The lowest layer, the
Object Management System
(OMS), is based on the Entity-Relationship model and includes those basic operations related to the storage and access of design data objects that are common to all applications. The database is divided into
workspaces
, which are collections of OMS
objects
and
relationships
organized according to an application-dependent schema and forming a significant whole (e.g., a design project) from the user's point of view Workspace is also the unit for locking and access control.

An object is a collection of
attributes
. Each attribute has a name and value. The name is a string and the value is an arbitrary sequence of bytes. The value of an attribute can be of any length, from a single integer to an external representation of a complicated geometric model. A relationship is a named directed connection between two objects. Relationships have attributes like objects.

The OMS library contains functions for creating, opening and removing workspaces, objects, relationships and attributes. All operations are carried out within
transactions
. The functions do not change the permanent data on the disk until the user calls the
save_changes
function, which saves the current state of all workspaces opened in a given transaction.

The next layer is a prototype data model built on top of OMS, which stores the objects in each workspace as a hierarchical tree by means of relationships. The leaves of the hierarchy are called
representations
and contain the actual data manipulated by the applications. Each representation is associated with a
representation type
, which in turn are linked to the application programs, or
tools
. The representation types and tools are stored as objects in a separate workspace.

The top level contains a user interface and a procedural application interface. The user interface shows the available representation types, tools, and contents of one or more workspaces in iconic form. A representation can be opened by selecting its icon on the screen. The tool corresponding to the type of the representation is then started with a handle to the representation as argument. The interface also allows the user to create, remove and copy objects.
The tool programs run as subprocesses of the HutBase process. Tools access the data base by remote procedure calls that send data base requests from the tool process to the HutBase process. The tools can also create relationships between representations and navigate in the workspace by following the relationship links.
We are currently working on a interpreted definition language that can be used to describe the structure of a workspace. The definition language will be based on an object-oriented notation, where object and relation types form a class hierarchy. Class descriptions include (possibly inherited) methods for dealing with the various HutBase operations. With the contemplated description facility, new object and relationship types can be defined by declaring new subclasses of the existing ones.