Architectural Style and categories of architectural styles
- y· The software that is built for computer-based systems also exhibits one of many architectural styles.
- · Each style describes a system category that encompasses (1) a set of components that perform a function required by a system; (2) a set of connectors that enable “communication, coordination and cooperation” among components; (3) constraints that define how components can be integrated to form the system; and (4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.
- · An architectural style is a transformation that is imposed on the design of an entire system.
- · The intent is to establish a structure for all components of the system.
the imposition of an architectural style will result in fundamental changes to the structure of the software including a reassignment of the functionality of components.
Categories of Architectural style
· Data-centered architectures.
o A data store resides at the center of this architecture and is accessed frequently by other components that update, add, delete, or otherwise modify data within the store.
o client software accesses the data independent of any changes to the data or the actions of other client software.
o A variation on this approach transforms the repository into a “blackboard” that sends notifications to client software when data of interest to the client changes.
Data-centered architectures promote integrability.That is, existing components can be changed and new client components added to the architecture without concern about other clients.
· Data-flow architectures.
o This architecture is applied when input data are to be transformed through a series of computational or manipulative components into output data.
o A pipe-and-filter pattern has a set of components, called filters, connected by pipes that transmit data from one component to the next.
o Each filter works independently of those components upstream and downstream, is designed to expect data input of a certain form, and produces data output of a specified form.
If the data flow degenerates into a single line of transforms, it is termed batch sequential.
· Call and return architectures
o This architectural style enables you to achieve a program structure that is relatively easy to modify and scale.
§ Main program/subprogram architectures.
· This classic program structure decomposes function into a control hierarchy where a “main” program invokes a number of program components that in turn may invoke still other components.
· Object-oriented architectures.
o The components of a system encapsulate data and the operations that must be applied to manipulate the data.
o Communication and coordination between components are accomplished via message passing.
· Layered architectures.
o A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set.
o At the outer layer, components service user interface operations.
o At the inner layer, components perform operating system interfacing.
o Intermediate layers provide utility services and application software functions.