Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Architecture and Design Illuminated CH5 - Coggle Diagram
Software Architecture
and Design Illuminated CH5
Chapter 5: Data Flow
Architecture
5.1 Overview
What is data flow architecture?
Whole system as transformation of successive sets of data.
System decomposed into modules.
Connection can be:
IO Stream
Files, Buffers, Pipes
No interaction between modules
Modules do not need to know identity of each other
Categories of Data Flow Arch.
Many sub-categories exist
Batch Sequential
Pipe & Filter
Process Control
To adopt which one depends on the nature of the
problem
5.2 Batch
Sequential
What is Batch Sequential ?
Traditional data processing model
Widely used in 1950’s – 1970’s
Example: mainframe computers using COBOL
How to implement Batch Sequential?
Usually done in batch processing language or shell script
Other Implementation Approaches
DOS Batch File
Direct implementation in coding
Summary
Applicable Design Domains:
Data are batched
Benefits:
Simple division between sub-systems
Each sub-system can be a stand-alone
Limitation:
No interactive interface
No concurrency and low throughput
High latency
5.3 Pipe and Filter Architecture
Summary Pipe & Filter
Applicable Design Domain
System can be broken into a series of processing steps over data stream, in each step filter consumes and moves data incrementally.
Data format on the data stream is simple and stable, and easy to be adapted if it is necessary.
There are significant work which can be pipelined to gain the performance
Suitable for producer/consumer model
Advantages
Simplicity: Clear
Concurrency is high.
Reusability is easy – plug and play.
Modifiability: Low due to coupling between filters
Flexibility: High, very modular design
Lower latency
Disadvantages
Error handling issue
Difficult to configure a P&F system dynamically.
Difficult to configure a P&F system dynamically.
Data standards (ASCII, XML?)
Not suitable for dynamic interactions
Classification of Filters
Active Filter:
Pulls in data and push out the transformed data (pull/push)
It works with a passive pipe that provides read/write mechanisms for pulling and pushing.
Example: UNIX pipe.
Passive filter:
Lets connected pipe to push data in and pull data out.
The filter must provide read/write mechanisms in this case.
Introduction
Similar to Batch Sequence
Independent modules
Data connectors
Difference
Connectors are stream oriented
Concurrent processing
Basic Concepts
Data Source
Data Sink
Filter: independent data stream transformer
Reads data from input data stream
Process data and write to output stream
Does not wait for batched data as a whole
Does not even have to know identity of i/o streams
Pipe: data conduit
Moves data from one filter to
another
Two types: character or byte streams
Data Flow Methods
Push only (Write
only)
A data source may push data in a downstream
A filter may push data in a downstream
Pull/Push
(Read/Write)
A filter may pull data from an upstream and push transformed data in a downstream.
Pull only (Read
only)
A data sink may pull data from an upstream
Filter may pull data from an upstream
5.4 Process Control Architecture
Introduction
Suitable for embedded System
Composed of
Sub-systems
Connectors
Two types of sub-systems
executor processor unit
controller unit
System depends on: Control Variables
Data
Controlled variable: target controlled variable
E.g., Speed in a cruise control system
E.g., Temperature in an auto H/A system.
Input variable: measured input data
Manipulated variable: can be adjusted by the controller
E.g., motor rotation speed, etc.
Applicable Domains
Needs to maintain an output data at a stable level.
Embedded software system involving continuing actions.
The system has a set point which is the goal the system will reach and stay at that level.