Architectural Styles
- Introduction :
- For example (For understanding purpose)
- When a builder uses the phrase “center hall colonial” to describe a house, most people familiar with houses in a general image of what the house will look like and what the floor plan is likely to be.
- The builder has used an architectural style as a descriptive mechanism to differentiate the house from other styles (e.g., A-frame, raised ranch, Cape Cod).
- The architectural style is also a template for construction.
- Further details of the house must be defined, its final dimensions must be specified, customized features may be added, building materials are to be determined, but the style—a “center hall colonial”—guides the builder in his work.
- software architecture represents a structure in which some collection of entities (often called components) is connected by a set of defined relationships (often called connectors).
- Both components and connectors are associated with a set of properties that allow the designer to differentiate the types of components and connectors that can be used.
- Introduction:
- 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 (e.g., a database, computational modules) 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;
- (4) Semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.
Taxonomy of Architectural Styles
- Introduction:
- Millions of computer-based systems have been created over the past 60 years, the vast majority can be categorized into one of a relatively small number of architectural styles
- The following are the Taxonomy (Classification) of Architectural Style
- (1) Data-centered architectures
- (2) Data flow architectures
- (3) Call and return architectures
- (4) Object-oriented architectures
- (5) Layered architectures
Data-Centered Architecture
- Introduction:
- A data store (e.g., a file or database) 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.
- Figure in slide, illustrates a typical data-centered style. Client software accesses a central repository (Storage area).
- Data-centered architectures promote inerrability. That is, existing components can be changed and new client components added to the architecture without concern about other clients
- (because the client components operate independently).
- In addition, data can be passed among clients using the black-board mechanism (i.e., the blackboard component serves to coordinate the transfer of information between clients).
- Client components independently execute processes.
Data Flow architectures
- This architecture is applied when input data are to be transformed through a series of computational or manipulative components into output data.
- A pipe-and-filter pattern (in Figure) has a set of components, called filters, connected by pipes that transmit data from one component to the next.
- Each filter works independently of those components upstream and downstream, is designed to expect data input of a certain form, and produces data output (to the next filter) of a specified form.
- However, the filter does not require knowledge of the workings of its neighboring filters.
- If the data flow degenerates into a single line of transforms, it is termed batch sequential. This structure accepts a batch of data and then applies a series of sequential components (filters) to transform it
An example of the pipe and filter architecture
Call and return architectures
- This architectural style enables you to achieve a program structure that is relatively easy to modify and scale.
- A number of substyles exist within this category…
- 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. an architecture of this type.
- Remote procedure call architectures. The components of a main program/subprogram architecture are distributed across multiple computers on a network.
Object-oriented architectures
- The components of a system encapsulate data and the operations that must be applied to manipulate the data.
- Communication and coordination between components are accomplished via message passing…
Layered architectures
- The basic structure of a layered architecture is illustrated in Figure.
- A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set.
- At the outer layer, components service user interface operations.
- At the inner layer, components perform operating system interfacing.
- Intermediate layers provide utility services and application software functions…
No comments:
Post a Comment