Daddy's Technology Notes

Read, think, and write down the notes.

Tuesday, October 04, 2005

Software Architecture (2)

2. Architectural styles

A list of common architectural styles:


  1. Dataflow systems
    • Batch sequential
    • Pipes and filters
  2. Call and return systems
    • Main program and subroutine
    • OO systems
    • Hierachical layers
  3. Independent components
    • Communication processes
    • Event systems
  4. Vitural machines
    • Interpreters
    • Rule based systems
  5. 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