Overview

Early treatments of architecture and architecture description languages devoted loving attention to the elements of the system and their interactions but tended to overlook the interfaces to those elements. It was as though interfaces were not part of the architecture. Clearly, however, interfaces are supremely architectural, for one cannot perform analyses or system building without them. Therefore, a critical part of documenting a view includes documenting the interfaces of the elements shown in that view.

The characteristics of an interface depend on the viewtype of its element. If the element is a component, the interface represents a specific point of potential interaction of a component with its environment. If the element is a module, the interface is a definition of services. There is a relation between these two kinds of interfaces, just as there is a relation between components and modules.

DEFINITION

An interface is a boundary across which two independent entities meet and interact or communicate with each other.

By the element's environment, we mean the set of other entities with which it interacts. We call those other entities actors. In general, an actor is an abstraction for external entities that interact with the system. Here, we focus on elements and expand the definition of interaction to include anything one element does that can impact the processing of another element. This interaction is part of the element's interface. Interactions can take a variety of forms. Most involve the transfer of control and/or data. Some are supported by standard programming language constructs, such as local or remote procedure calls, data streams, shared memory, and message passing. These constructs, which provide points of direct interaction with an element, are called resources.

DEFINITION

An element's actors are the other elements, users, or systems with which it interacts.

Other interactions are indirect. For example, the fact that using resource X on element A leaves element B in a particular state is something that other elements using the resource may need to know if it affects their processing, even though they never interact with A directly. That fact about A is a part of the interface between A and the other elements in A's environment.

An interaction extends beyond merely what happens. For example, if element X calls element Y, the amount of time that Y takes before returning control to X is part of Y's interface to X because it affects X's processing.

Let's establish some principles about interfaces.

Категории