Software Design and
Architecture
Data Flow Architecture
Chapter 5 of Kia Qian Book
Overview
• The data flow software architecture style views the entire software system
as a series of transformations on successive sets of data, where data and
operations on it are independent of each other.
• Each component in this architecture transforms its input data into
corresponding output data
2
Overview
• In general, there is no interaction between the modules except for the
output and the input data connections between subsystems.
• In other words, the subsystems are independent of each other in such a way
that one subsystem can be substituted by another without affecting the rest
of the system, as long as the new subsystem is compatible with the
corresponding input and output data format.
• There are two categories of execution sequences between modules: batch
sequential and pipe and filter (nonsequential pipeline mode).
3
Architecture Types
Batch sequential
Pipe and filter
Process control
4
Batch sequential
In batch sequential architecture, each data transformation subsystem or
module cannot start its process until its previous subsystem completes its
computation.
Data flow carries a batch of data as a whole from one subsystem to another
5
Batch sequential
All communications (connection link arrows) between subsystem modules are
conducted through transient intermediate files which can be removed by
successive subsystems.
Business data processing such as banking and utility billing are typical
applications of this architecture.
6
Applicable domains
Data are batched.
Intermediate file is a sequential access file.
Each subsystem reads related input files and writes output files.
7
Benefits and Limitations
Benefits
Simple divisions on subsystems.
Each subsystem can be a stand-alone program working on input data and producing output
data.
Limitations
Implementation requires external control.
It does not provide interactive interface.
Concurrency is not supported and hence throughput remains low
High latency.
8
Pipe and Filter Architecture
• Pipe and filter architecture is another type of data flow architecture where
the flow is driven by data.
• This architecture decompose the whole system into components of data
source, filters, pipes and data sinks
• The particular property attribute of the pipe and filter architecture is its
concurrent execution.
9
Pipe and Filter Architecture
• A filter does not need to wait for batched data as a whole.
• As soon as the data arrives through the connected pipe, the filter can
start working right away
• A filter does not even know the identity of data upstream or data
downstream. A filter is just working in a local incremental mode.
• A pipe moves a data stream from one filter to another
• A pipe can carry binary or character streams.
10
Pipe and Filter Architecture
Example: Complier pipeline
Pipe and Filter Architecture(Sale
System)
Pipe and Filter Architecture
Pipe and Filter Architecture
14
Pipe and Filter Architecture
Applicable domains
The system can be broken into a series of processing steps over data streams, and
at each step filters consume and move data incrementally.
The data format on the data streams is simple, stable, and adaptable if necessary.
16
Benefits and Limitations
Benefits
Concurrency: It provides high overall throughput for excessive data
processing.
Reusability: Encapsulation of filters makes it easy to plug and play, and to
substitute.
Modifiability:It features low coupling between filters, less impact from adding
new filters, and modifying the implementation of any existing filters as long as
the I/O interfaces are unchanged.
Simplicity: It offers clear division between any two filters connected by a pipe.
Flexibility: It supports both sequential and parallel execution.
17
Benefits and Limitations
Limitations
It is not suitable for dynamic interactions.
Overhead of data transformation among filters such as parsing is
repeated in two consecutive filters.
It can be difficult to configure a pipe and filter system dynamically.
18
Process Control Architecture
A process control system must have the following process control data:
Controlled variable: a target controlled variable such as speed in a cruise
control system or the temperature in an auto system.
It has a set point goal to reach. The controlled variable data should be measured by
sensors as a feedback reference to recalculate manipulated variables.
Inputvariable: a measured input data such as the temperature of return air in
a temperature control system.
Manipulated variable: can be adjusted by the controller.(which value gives
best results)
19
Benefits and Limitations
Benefits
Itoffers a better solution to the control system where no precise formula can be used
to decide the manipulated variable.
The software can be completely embedded in the devices.
20