Index: openacs-4/packages/acs-interface/www/doc/design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-interface/www/doc/design.html,v diff -u -N --- openacs-4/packages/acs-interface/www/doc/design.html 20 Apr 2001 20:51:09 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,116 +0,0 @@ - - -ACS Interface Requirements - - - -

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, NotesWhen?By Whom?
0.2Edit11/27/2000Josh Finkler
0.1Creation11/27/2000Khy Huang
-

-


- -khy@arsdigita.com
- - - - - -