Software Architecture (2)
2. Architectural styles
A list of common architectural styles:
- Dataflow systems
- Batch sequential
- Pipes and filters
- Call and return systems
- Main program and subroutine
- OO systems
- Hierachical layers
- Independent components
- Communication processes
- Event systems
- Vitural machines
- Interpreters
- Rule based systems
- Data centered systems
- Databases
- Hypertext systems
- Blackboards
2.2 Pipes and filters
In this style, each component has a set of inputs and a set of outputs. The style is composed of 2 components: filter to apply transformation between input and output, pipe to connect filters.
Properties:
- Filters must be independent, should not share state with other filters;
- Filters do not know their upstream and downstream filters;
- The specifications of input pipes and output pipes are restricted, but not the end of pipes: filter.
- The correctness of filter-pipe network should not depend on the order the filters apprears.
One variant of pipe and filter style is batch sequetial in which each filter processes all of its input data as a single entity.
Example: Unix shell
Pros:
- Easy to understand of the system behavior;
- Support reuse;
- Easy to maintain and enhance;
- permit special analysis, such as throughput, dead lock etc.
Cons:
- Lead to a batch organizaion of processing;
- Not good at interactive operations;
- Have to maintain correspondences between 2 separate but related streams;
- May force a lowest common denominator on data transmission, bad performance and complexity.
2.3 Data abstraction and OO organization
In this style, each component has a set of inputs and a set of outputs.
2.4 Event based implicit invocation
In this style, each component has a set of inputs and a set of outputs.
2.5 Layered systems
In this style, each component has a set of inputs and a set of outputs.
2.6 Repositories
In this style, each component has a set of inputs and a set of outputs.
2.7 Interpreters
In this style, each component has a set of inputs and a set of outputs.
2.8 Process control
In this style, each component has a set of inputs and a set of outputs.
2.9 Other architectures
In this style, each component has a set of inputs and a set of outputs.
2.10 Heterogeneous architectures
0 Comments:
Post a Comment
<< Home