Position paper for the Open OODB Workshop II at Texas Instrument Dallas, Texas, September 25-27, 1991 Introduction to STEP Data Access Interface Specification K. C. Morris kc@cme.nist.gov August 9, 1991 Factory Automation Systems Division National Institute of Standards and Technology Bldg. 220 / A127 Gaithersburg, MD 20899 This paper summarizes the STEP Data Access Interface (SDAI) which is being developed within the International Organization for Standardization (ISO). SDAI is a project within the Implementations working group of the Standard for the Exchange of Product Model Data (STEP) (ISO/TC184/SC4/WG7). This interface will provide a standard mechanism to permit application programs to access product data such as that found in STEP. Interfaces such as these have been prototyped by several research efforts, including universities, commercial database vendors, industrial research groups, and NIST. The specification of a standard interface is considered a high priority for standardization. The paper is supported by two others documents: 1) the working draft of the functional model for the interface and 2) the subset of the interface which was recently prototyped. 1. Introduction The STEP Data Access Interface (SDAI) Specification [ISO22] is under development within the Standard for the Exchange of Product Model Data (STEP) Implementations working group (ISO/TC184/SC4/WG7). This development activity is supported by a consortium of industrial corporations (PDES, Inc.: PDES stands for Product Data Exchange using STEP) and NIST. Funding for NIST's involvement in the project is provided by the Department of Defense's Computer-Aided Acquisition and Logistic Support Office (CALS). Until recently the STEP community focused on the use of exchange files for communicating information about products; SDAI is the first attempt at standardizing a runtime interface to STEP data. STEP data corresponds to the information models included in STEP. These models address the areas of Draughting, Associative Draughting, Configuration Controlled Design, Mechanical Design Using Sculptured Surface Representation, and Mechanical Design Using Boundary Representation. Projects are underway to address other areas as well. The primary requirement for SDAI is for a means of dynamically accessing data described by these models. The models are represented in the conceptual modeling language Express [ISO11]. The information models of STEP are intended to disambiguate data for the purpose of data sharing across enterprises. However, until an interface is defined for accessing data, the data must be exchanged using the mechanism of file transfer. While this capability is much better than what exists today (proprietary data files or ambiguous data files), the ability to share data will be greatly enhanced if data can be accessed directly from shared databases. The need to access data directly from a database is emphasized by considering the amount of data needed to describe a product throughout its life-cycle. 2. Development Methodology The development of SDAI is a consensus building activity. Several research groups have prototyped similar interfaces and their experiences support the development. The first draft of the model to be distributed outside of the Implementations committee was the topic of a workshop held in October 1990. Feedback from that workshop has led to many improvements. Current activities in the development involve prototyping parts of SDAI and identifying requirements for a first version. Prototype implementations are very important to the development of the interface. Such efforts ensure the quality, usability, and versatility of the interface. The interface should be implementable on a variety of hardware platforms using a variety of database and other software technology. SDAI should isolate the application program from the type of underlying data storage technology, which includes hardware as well as software paradigms. At the same time the interface should allow the application program to make use of specific programming language paradigms as desirable. Prototyping activities support the development of a better standard by providing practical experience to resolve issues which come up in creating such a versatile interface. 3. Directions and Issues The SDAI specification will contain several parts: a functional definition and several specific language bindings. The functional definition specifies the functionality of the interface. For the functional definition it is assumed that the data to be accessed can be described using the Express language. The functional definition will be accompanied by specific language bindings. Bindings to C and C++ have been prototyped; bindings to Fortran and Ada are also being considered. The first version of the interface will provide for simple access to data with limited support for concurrency control and more sophisticated database features. However, it is recognized as a requirement that future versions of the interface should provide for advanced data management features such as transparent location of data, transaction management, version control, and configuration control. One significant issue which has been resolved during the development process addresses the format of the interface: whether the interface should be language based (in the fashion of SQL) or specified as function calls for use in an application program. The functional interface was chosen by consensus based on industrial requirements. Two open issues currently under discussion in the working group involve (1) how tightly the language binding should be tied to the information models and (2) whether the interface should support the access to methods associated with STEP data. The first of these issues concerns whether the interface should use a late binding or an early binding approach. A late binding approach is dictionary-driven and does not represent the entities as types or structures in the programming language. An early binding represents the entity types directly as types or structures (or classes, as in the case or C++) in the programming language. An early binding approach is currently being prototyped, but the late binding approach is also being considered. Different styles may be useful for different types of applications. For example, a general purpose editor may use a late binding architecture, while an early binding may be more suitable for a CAD system. The second open issue under discussion is whether the interface should provide support for methods associated with STEP data. Currently no proposal for how to address this issue exists. Support for this feature will probably be done in conjunction with the Express Language project (ISO/TC184/SC4/WG5). At a recent requirements gathering workshop for version 2 of the Express language the need for the capability to represent methods in Express was identified. 4. Supporting documents The supporting documents provide details of the interface. The "STEP Data Access Interface Specification" [ISO22] describes the functionality of the interface and was developed by the STEP Implementation working group. This document is a preliminary draft which will evolve into the final specification. The second document "An SDAI Subset for PDES, Inc. Prototyping" [PDES91] is included as indication of the methodology and the style of the language bindings. The interface described in the second document [PDES91] in being used in current prototyping activities organized by PDES, Inc. These prototypes were undertaken to accelerate the development of the SDAI and serve to validate the interface as it is developing. The prototyping activity is a joint effort with a group of commercial object-oriented database and CAD system vendors, and PDES, Inc. The intent of the SDAI prototypes is to show that different applications can work with different systems through a common interface (SDAI). NIST and PDES, Inc. are developing the applications; the vendors are developing the implementation of the SDAI specification. If you are interested in getting involved in any of these activities here are some points of contact: SDAI Prototyping Jim Fowler, NIST / PDES, Inc., PDES, Inc. SDAI project leader and IPO committee chair, fowler@cme.nist.gov SDAI ISO Activity Jan Van Mannen, STEP WG7 Convener, jvm@informatics.rutherford.ac.uk Don Peters, DEC / PDES, INc., owner of WG7 mailing list, peters@allvax.enet.dec.com 5. Glossary STEP, the Standard for the Exchange of Product Model Data, is a project of the International Organization for Standardization (ISO) Technical Committee on Industrial Automation Systems (TC 184) Subcommittee on Industrial Data and Global Manufacturing Programming Languages (SC4). 6. References [ISO11] Information Modeling Language Express: Language Reference Manual, Committee Draft N14 ISO TC184/SC4/WG5, Spiby, P., ed., January 1991. [ISO22] STEP Data Access Interface Specification, working draft N499 ISO/TC184/SC4/WG7, Fowler, J., ed. [PDES91] An SDAI Subset for PDES, Inc. Prototyping, PDES, Inc internal report, April 1991.