DEC's ACAS (Application Control Architecture Services) uses an object-oriented client/server paradigm to handle applications: A client requests services; a server provides requested services.
In an object-oriented model, objects have characteristics and perform certain behaviors (called messages). The behaviors are performed when the object receives a request. A method is a specific implementation of a message and may be platform-dependent. For instance, invoking an editor can involve different programs on different computers. Under ACAS, such abstract information about an application (called its metadata) is stored in a class repository database.
When you invoke a tool, a chain of client/server requests is initiated. When a client requests a service, ACAS uses information from its metadata and from user-def
ined preferences to select a method to satisfy the requested service and then find a suitable server for that method. Depending on the configuration and user preferences, a number of servers may be available for that method. ACAS uses a prioritized list of servers to try one, then another, until it locates a suitable one. The method server then satisfies the client's request. All the communications involving the user, the clients, and the servers are managed by ACAS.
Here's an example of how ACAS would handle a typical CohesionWorX interaction. You drag a file icon and drop it onto an editor tool icon. The desktop interface interprets this action as a request that the file be opened for editing. The desktop (as a client) requests a service of the editor (as a server). ACAS determines the possible methods that might satisfy the request for an editor. For instance, there may be several versions of an editor tool that run on different computers or under different operating systems.
When a suitable
method (i.e., a specific editor) is identified, ACAS looks for a server for that method. The network may have several candidate computers appropriate for that method. Of these, you (or your system administrator) may have prioritized some. ACAS will try the first-priority server. If it is available, it becomes the method server (i.e., it runs the editor). If it is not available, the next server in the list will be tried, and so forth. Since ACAS, its data, the tool itself, and the server may be on many different computers in the network, even such a simple user action can require a great deal of communication to be successful.