ACS Interface Design


I. Essentials

II. Introduction

Object subtyping incurs the overhead of inheriting the data of the super class. In addition to this overhead, we are requiring the same underlying structure of the superclass to execute a function on the object. The ACS Interface package addresses this issue by only requiring object types to implement a set of specified methods. Importantly, object types that implement the interface are not required to have the same underlying structure. ACS Interface also provides the additional functionality of allowing object types to provide a more specific version of a method. For example, a hashtable object type may want to check if the object it is placing into the hashtable has implemented the hashable interface. If the object type has implemented the interface, then we could use the object method to get the hash value, otherwise use a general function to get the hash value. Similarly to the current relational object model, interfaces of this sort are not automatically inherited by their subtypes.

V. Design Tradeoffs

n interface is a name together with a set of methods. The datamodel only stores the information about the methods. The implementation is left to the developer in each programming enviroment. In the ACS Interface datamodel, there is a language column for the interface. The language refers to the programming language. The implementation of the interface is specific to the programming environment. In the Oracle PL/SQL environment each object type has an associated package and interface methods are declared and defined within the packages. Thus calling get_hashvalue on an object type would appear as: 'object_type.get_hashvalue()'. In the TCL environment, a way of handling interface is the use of namespace, which resolves the collisions of naming object types and methods. For Java, interfaces are are standard. Another solution would be to retrieve the signature of the procedure by querying the data dictionary of the database for the object type packages in Oracle (Namespace in Tcl). The problem is that we don't know what the intended functionality of the procedure was, even though the procedure had a matching signature (method name and parameter specifications). When an object type implements an interface, it agrees to implement the methods with their intended functionalities.

VI. API

All the procedures are defined into the acs_interface package. The methods are calls to describe the interface:

VII. Data Model Discussion

The datamode consist of four tables to describe the interface, methods, parameters, and object type and interface association.

X. Future Improvements / Areas of Likely Change

XI. Authors

XII. Revision History

Document Revision # Action Taken, Notes When? By Whom?
0.2 Edit 11/27/2000 Josh Finkler
0.1 Creation 11/27/2000 Khy Huang


khy@arsdigita.com