Fachgruppe Praktische Informatik of the Department 12 (Electrical Engineering and Computer Science) at the University of Siegen


H-PCTE is a distributed object management system (OMS) which is intended to be used as a basis of distributed software development environments (SDE), or, more generally, distributed document editing systems. Systems of that sort are often termed SDE frameworks, or repositories. H-PCTE provides the following set of integrated basic services:
  • data management services based on the entity relationship model with extensions such as composite objects, versions, multiple inheritance, long fields (files), dynamically created views
  • schema management services: applications can dynamically create new types or modify existing types, the instances of which are automatically converted.
  • access controls: one object base can be used be several users. Access permissions can be granted to individual users and to nested user groups.
  • concurrency control: one object base can be accessed concurrently by several applications, notably tools of an SDE. Features of the CC mechanism are:
  • H-PCTE provides several types of activities, from classical transactions, which offer a high degree of protection from concurrent access, to unprotected activities.
  • Nested tool transactions are supported.
  • H-PCTE supports extremely fine-grained locks, namely locks for individual attributes of objects or links.
  • Notification: applications can request the OMS kernel to be informed about various modifications of data granules. This mechanism makes it easy to propagate change between tools / windows which use or show the same data.
  • H-PCTE offers both efficient navigational access to objects, as defined in the PCTE standards ECMA-149/-158  and non-navigational, set-oriented access through two query languages, NTT and P-OQL.
  • H-PCTE is freely available from our FTP archive.

    The following sections of this page provide more detailed information about the H-PCTE system:

  • Components of the H-PCTE system
  • Applications based on H-PCTE
  • Implementation strategy of H-PCTE
  • Query languages for PCTE object bases

  • Further and more general Information about PCTE and H-PCTE can be obtained from the following pages:

  • General information about ECMA/ISO-PCTE
  • README file for latest version
  • Examples of H-PCTE-based Applications
  • Frequently (or sometimes) asked questions about H-PCTE
  • News and rumours about future versions of H-PCTE
  • Modifications in successive versions of H-PCTE, incl. description of new features


    Components of the H-PCTE system

    The complete system consists of several mayor parts:

    The Java API of H-PCTE

    The Java API enables applications written in Java to access H-PCTE object bases. Our new standard browser is based upon this API. The Java API is available since version 3.0.  The Java API comprises the equivalent to most operations of the C API and the NTT operattions. Further information:
  •  a (German) paper about the Java API and specifically about the distributed notification mechanism
  • Package specification of the Java classes
  • Due to technical reasons, there is  a separate server for the Java API. This server can be extended by user-defined applications. This feature is particularly useful for complex, time-consuming functions.

  • Paper about the Java API server and its extension mechanism, Postscript and HTML version.

    Examples of H-PCTE-based Applications

    Many features of H-PCTE can best be understood in the context of applications. Therefore, we provide a number of introductory and advanced examples of H-PCTE-based applications. A description can be found in a separate applications page.

    Implementation strategy of H-PCTE

    H-PCTE implements all essential features of the object management system defined in the standards mentioned above. H-PCTE does not implement the heavy-weight process model defined in the standard; instead of this, it offers support of light-weight processes, including notification.
    H-PCTE has been implemented as a main-memory database system. In order to avoid communication delays between the database server and a client process, segments of the object base can be loaded directly and exclusively into the address space of an application process (Single-Process Data Access Architecture; SPDAA). Segments of the object base can also be loaded into a central H-PCTE server process; in this case, the segments can be shared by several concurrently executed application processes.

    PCTE Standards

    The application programming interface (API) of PCTE has been standardized initially by ECMA and later by ISO JTC1/SC22/WG22.

    First ECMA standards appeared in 1993, 4th (and final) editions in 1997. The ISO standards appeared between 1995 and 1998 and are more or less identical to the previous version of the ECMA standard.

    One main aim was to make a PCTE installation accessible by application written in different languages, notably C and Ada.  The conceptual, ``abstract'' functionality of  the different language-specific APIs had to be the same, while the technical design of the API had to be adapted to the pragmatics of the specific binding language. The standards are therefore organized in several documents:


    Query languages

    The PCTE standards specify only interfaces for navigational access to objects. In order to support set-oriented, descriptive access to data, two query languages are available: Further details can be found in the following references about NTT and references about P-OQL.