Next: Component
Up: The UniCon Language Reference Manual
Previous: The UniCon Language Reference Manual
The UniCon Architecture Description Language
UniCon is an architecture description language (ADL) organized around two symmetrical constructs: components and connectors. Components represent loci of computation and data in a software system. They are used to organize the computation and data into parts that have well-defined semantics and behaviors. Connectors represent classes of interactions among the components. They are used to mediate component interactions.
Both components and connectors have a specification part and an implementation part.
Components are specified by an interface. The interface defines the computational commitments the component can make and the constraints on the way the component can be used. It also provides the guarantees that will hold of the performance and behavior of the component. The interface contains three types of information:
The component type expresses the designer's intentions about the general class of functionality to be provided by the component. It restricts the numbers, types, and specifications of the players that can be defined. Properties are attribute-value pairs that specify additional information about a component as a whole, such as assertions or constraints. Players are the visible semantic units, or hooks, in a component through which the component can interact with other components.
Connectors are specified by a protocol. The protocol defines the allowable interactions among a collection of components and provides guarantees about those interactions. It contains three types of information:
The connector type expresses the designer's intentions about the general class of component interactions to be mediated by the connector. It restricts the numbers, types, and specifications of the roles that can be defined. Properties are attribute-value pairs that specify additional information about a connector as a whole, such as assertions or constraints (e.g., rules about timing or ordering). They represent commitments about the interaction that the protocol supports. Roles are the visible semantic units through which the connector mediates the interactions among components. They get associated with players when forming connections in a system. Roles define the requirements and the responsibilities for the players in a connection.
Component implementations have two different forms: primitive and composite. A primitive implementation consists of a pointer to a source document external to the UniCon language that contains the implementation. The source document may be source code in your favorite programming language (at present, the UniCon toolset only supports C language source code), object code, a Unix archive file containing object code, a binary executable, a shell sdript, a sequential data file, or a C language include file. The UniCon toolset knows how to construct systems using this variety of source documents.
A composite implementation is a description of a configuration of other UniCon-defined components and connectors. It contains three types of information:
The pieces are the specific component and connector instances used to construct the configuration description. The configuration information is a description of how the components and connectors are hooked together (i.e., connected). The abstraction information is a mapping, or description, of how the players in the component interface are implemented by players in the component instances of the composite implementation.
Connector implementations are built into the language; they have specific implementations which are provided by the UniCon toolset. No mechanism exists in UniCon to allow for the definition of user-defined connector implementations.
Next: Component
Up: The UniCon Language Reference Manual
Previous: The UniCon Language Reference Manual
Comments?
Mail the current maintainer of this page.
Author:
Gregory Zelesnik
Last Modified: May 12, 1996