Architectural Styles
Architectural Styles
1. Layered architecture:
The most simple and certainly most known architecture style of is the
layered architecture style.
The concept is simple, each layers only interact with the layer below it
and delivers services for the layer immediately above.
Advantage:
Disadvantage:
Conclusion:
You must balance the advantages and disadvantages of using this style
and use it when appropriate. Sometimes, for performance reasons, the
calls from an upper layer jumps over an intermediate layer and calls
directly a lower layer, to boost the performance.
This style uses processing components that output same kind of data,
named filters, and connections between these components, named pipes.
Pi Pi
p p
Filter e Filter e Filter
Pi Pi
p p
e e
Filter
Pi
p
e
A very well known system build using this architecture is the Unix
command lines but other domains can use this style as well.
Each component receive some data from the its inbound pipe, processes
the data and sends the result to the outbound pipe.
The components can then be combined in new and ingenious ways
reusing much of the existing work. For example, replacing the last filter
with a “Noise enhancer” component the result is completely different
output
Advantage:
The main advantage of this style is that complex systems can be build by
combining simple components.
They support reuse: any two filters can be hooked together, provided they
agree on the data that is being transmitted between them.
Systems can be easily maintained and enhanced: new filters can be added
to existing systems and old filters can be replaced by improved ones.
Disadvantages:
Pipe and filter systems often lead to a batch organization of processing. Although
filters can process data incrementally, since filters are inherently independent, the
designer is forced to think of each filter as providing a complete transformation of
input data to output data.
In particular, because of their transformational character, pipe and filter systems are
typically not good at handling interactive applications like when incremental display
updates are required.
Advantages:
There are many advantages of this approach like the possibility of adding
and removing components without a huge impact on the system
Easy component relocation.
Possibility to extend the messages without impacting the components that
are not yet ‘upgraded’ and so on.
Of course this does not come for free, using this kind of architecture is not
something some can add later but it must be constructed from
the beginning.
Disadvantages:
The Enterprise Service Bus off the shelf components try to mimic this
model at a higher level and with the promise
of interconnecting components that were not specifically constructed to
work in a service oriented architecture.
Complexity.
Tendency for hub-and-spoke architectures
Performance issues for high throughput systems.
4. Client Server architecture style:
The client server architecture style become very well known when the
explosion of internet brought it to common vocabulary.
On the internet, a browser (client) responsible with user interaction
connects to a web portal (server) responsible with data processing and
HTML formatting.
There are many examples of client-server architectures and initially it
appeared as a result of the need to centralize processing and data to a
common location and allow changes of the system to be implemented
without modifying the whole system.
In a system composed only of desktop clients any modification
would presumably require redeployment of all clients, a operation
that incurred high costs.
Advantages:
Higher security. All data is stored on the server, which generally offers a
greater control of security than client machines.
Centralized data access. Because data is stored only on the server,
access and updates to the data are far easier to administer than in other
architectural styles.
Ease of maintenance. Roles and responsibilities of a computing system
are distributed among several servers that are known to each other through
a network. This ensures that a client remains unaware and unaffected by a
server repair, upgrade, or relocation.
Disadvantages:
As a rule of thumb tier refers to processing nodes while layers refers to the
stratification of system functionality.
Conclusion:
Improves portability
7. Data centered architecture
These architectures have the goal of achieving the quality of integrability
of data.
Blackboard: the system sends notification and data to subscribers when data of
interest changes, and is thus active.
Repository architecture
Repository architecture
One of the most well-known examples of the data-centered architecture,
is a database architecture ,There is a common database schema (i.e.
meta-structure of the repository) -created with data definition protocol
e.g. in RDBMS a set of related tables with fields, data types, keys, ...
Clients use data manipulation protocol to work with the data e.g. SQL for
inserting, selecting, deleteing data, ...
Advantages:
Before starting with this architectural style let’s see some fundamental
concept in it.
A. Process variable:
Properties of process that can be measured. Example: designated input
and control variable in hot air furnace system.
B. Controlled variable:
Process variable whose value the system is intended to control. Example:
Hot air in hot air furnace system.
C. Input variable: Process variable that measure input to the process.
Example: Return air temperature in hot air furnace system.
D. Manipulated variable: Process variable whose value can be changed by
the controller. Example: Hot air in hot air furnace system.
E. Set point: The desired value for controlled variable. Example: thermostat
setting.
Process control system are broadly categories into two broad categories they
are.
A. Open loop control system.
B. Closed loop control system.
The open system is rarely valid for the physical process in the real world.
a. Feedback control:
The main component of feedback control system is Process definition,
process variable, a sensor, the set point and control algorithm.
The general view of feedback control is given below.
The controlled variable is measured and the result is used to manipulate
one or more of the process variables.