Professional Documents
Culture Documents
Architecture Styles
11/10/2021 1
Common Architectural Styles
Common Framework is required to understand
differences between styles
Framework: A specific system is a collection of
components (computational) together with a
description of the interactions between these
components (connectors).
It is like a Graph.
Nodes represent components
Arcs represent connectors (interaction)
Style: Defines a family of such systems in terms
of a pattern of structural organization.
Determines vocabulary and set of constraints.
11/10/2021 2
List of Common Architectural
styles
11/10/2021 3
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,
11/10/2021 4
4 Commonly used styles
Pipes and filters
Layering
Repositories
Process control
11/10/2021 5
Pipe and Filter Style
Type of Data Flow Architecture
Filter is a component and pipe is a connector
Filter has interfaces from which a set of inputs can
flow in and a set of outputs can flow out.
Incremental transformation of data by successive
components.
All data does not need to be processed for next
filter to start working.
Any set of filters may be combined in any order,
although reasonable semantics are not guaranteed
by this style.
11/10/2021 6
Pipe and Filter Style
Filter
Independent entities
Does not share state with other filters.
Do not know the identity to upstream and
downstream filters.
Pipes
Stateless data stream
Source feeds filter input and sink receives
output.
11/10/2021 7
The pipe-and-filter style: Unix
processes.
11/10/2021 8
Pipeline Architecture
Common specialization of pipe and filter
style is pipeline architecture
This architecture restricts the topologies to
linear sequences of filters.
11/10/2021 9
Advantages
First, they allow the designer to understand the overall
input/output behavior of a system as a simple
composition of the behaviors of the individual filters.
Second, they support reuse: any two filters can be
hooked together, provided they agree on the data that is
being transmitted between them.
Third, systems can be easily maintained and enhanced:
new filters can be added to existing systems and old
filters can be replaced by improved ones.
Fourth, they permit certain kinds of specialized analysis,
such as throughput and deadlock analysis.
Finally, they naturally support concurrent execution.
Each filter can be implemented as a separate task and
potentially executed in parallel with other filters
11/10/2021 10
Disadvantages
First, pipe and filter systems often lead to
a batch organization of processing
Not good at handling interactive operations
Second, they may be hampered by having
to maintain correspondences between two
separate, but related streams
Third, depending on the implementation,
they may force a lowest common
denominator on data transmission
Parsing and unparsing of data
Loss of performance, increased complexity
11/10/2021 11
Layered Systems
Hierarchical system organization
“Multi-level client-server”
Each layer exposes an interface (API) to be
used by above layers
Each layer acts as a
Server: service provider to layers “above”
Client: service consumer of layer(s) “below”
Connectors are protocols of layer
interaction
Example: operating systems
11/10/2021 12
Layered Systems
11/10/2021 13
Example: Interactive Electronic Technical Manual Layered Architecture
11/10/2021 14
Advantages and Disadvantages
Advantages
First, they support design based on increasing
levels of abstraction.
Second, they support enhancement.
Third, they support reuse.
Disadvantages
Not all systems are easily structured in a
layered fashion
Difficult to define system-independent layers
11/10/2021 15
Repositories
Two kinds of components:
a central data structure(consistent data)
represents the current state,
and a collection of independent components
(for manipulation)
Connector:
The manipulators.
11/10/2021 16
11/10/2021 17
When data repository is an active
repository that notifies registered
components of changes in it then-
blackboard style
System control is entirely driven by the
blackboard state - Components perusing
shared data, and communicating through the
shared data
Examples
Typically used for AI systems
Integrated software environments (e.g.,
Interlisp)
11/10/2021 18
11/10/2021 19
Advantages:
Less overhead vs. F&P
Actor (component) does not depend on each other
and it is easy to add new actor.
Actor concurrent access consistent data
Disadvantages:
More overhead in distributed application
Need to be scalable
Security issue
Availability issue
Change Repository, evolution is difficult
Potential slow problem
11/10/2021 20
Process Control
11/10/2021 21
Process Control Style
Process variable: Properties of the process that
can be measured; several specific kinds are
often distinguished.
Controlled variable: Process variable whose
value the system is intended to control.
Input variable: Process variable that measures
an input to the process.
Manipulated variable: Process variable whose
value can be changed by the controller.
Set point: The desired value for a controlled
variable.
Open-loop system: System in which information
about process variables is not used to adjust the
system.
11/10/2021 22
Process Control Style
Closed-loop system: System in which
information about process variables is used to
manipulate a process variable to compensate.
Feedback control system: The controlled variable
is measured, and the result is used to
manipulate one or more of the process
variables.
Feed forward control system: Some of the
process variables are measured, and anticipated
disturbances are compensated for without
waiting for changes in the controlled variable to
be visible.
11/10/2021 23
Process Control:
Components & Connectors
11/10/2021 24
Example
Open-loop temperature control.
11/10/2021 25
Example
Closed-loop temperature control.
11/10/2021 26
Process Control:
Example
Applied to software
11/10/2021 27
Process Control: Components &
Connectors
Input variables
(Feed-forward control)
Process
Controller Controlled variables
Set point Changes to
manipulated
variables
(Feedback control)
11/10/2021 28
Process Control:
Key Characteristics
Organization:
Computational elements (important separation)
Process definition.
Control algorithm.
Data elements:
Process variables.
Set point.
Control algorithm uses information about actual
system state to tune the process, driving the
actual state towards the intended state.
11/10/2021 29
Strengths
Well suited for the control of continuous
processes particularly where the control
algorithm is subject to change (possibly
even at run-time).
Weakness:
Not easily applicable when multiple
interacting processes (and controls) are
needed.
11/10/2021 30
Heterogeneous Architectures
In practice the architecture of large-scale system is a combination of
architectural styles:
(‘Hierarchical heterogeneous’) A Component in one style may have
11/10/2021 31
Heterogeneous Architectures-Example
Multi tier (at the highest level), distributed (including broker
pattern), transactional databases, event-based communication,
implicit invocation, object-oriented, MVC (e.g., for presentation in
the client), dataflow for workflow, etc.
11/10/2021 32