By: M. Shaw
Published in: PLoPD1
Summary: Architectural patterns. Continued in [Shaw96].
Apply when a series of independent computations are to be performed on ordered data, particularly when the computations can be performed incrementally on a data stream. The computations or filters incrementally transform one or more input streams to one or more output streams.
Data representations and their associated primitive operations are encapsulated in an abstract data type or object. The components of this architecture are instances of abstract data types or objects.
Components typically interact by announcing or broadcasting one or more events. Other components can register an interest in an event by associating a procedure with it. When the event is announced, the system invokes all registered procedures.
Category: Architectural, Event-Driven Systems
There are two kinds of components: a central data structure that represents the current state, and a collection of independent components that operate on the central data structure.
This solution generally has four components: (1) an interpretation engine to do the work; (2) the pseudocode to be interpreted; (3) the control state of the interpretation engine; and (4) the current state of the program being simulated.
Architectures implemented in languages without support for modularization usually result in a main program and a collection of subroutines. The main program is a driver, typically providing a control loop for sequencing the subroutines.
Suitable for applications with distinct classes of services that can be arranged hierarchically.