You are on page 1of 32

Software Architecture

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,

coordinations and cooperation” among components.


 (3) constraints that define how components can be

integrated to form the system.


 (4) semantic models that enable a designer to
understand the overall properties of a system by
analyzing the known properties of its constituent parts .

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

IETM Electronic Display


System (EDS)
User Interface
IETM Data Data Access

Data Layer Business Layer Presentation


Layer

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

 The process control style is modeled


on the process control systems that
are common in other engineering
disciplines (e.g. chemical
engineering).
 Motivating example: furnace

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

an internal style developed in a completely different style (e.g, pipe


component developed in OO style, implicit invocation module with a
layered internal structure, etc.)
 (‘Locational heterogeneous’) Overall architecture at same level is a
combination of different styles (e.g., repository (database) and
main-program subroutine, etc.). Here individual components may
connect using a mixture of architectural connectors - message
invocation and implicit invocation.
 (‘Perspective heterogeneous’) Different architecture in different

perspectives (e.g., structure of the logical view, structure of the


physical view, etc.)

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

You might also like