0% found this document useful (0 votes)
13 views42 pages

Adv Software Engineering Lect4

Uploaded by

kodafel905
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views42 pages

Adv Software Engineering Lect4

Uploaded by

kodafel905
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 42

Architectural Design

&
Distributed Systems Architectures
Software architecture
• The design process for identifying the sub-
systems making up a system and the
framework for sub-system control and
communication is architectural design
• The output of this design process is a
description of the software architecture
Architectural design
• Represents the link between specification and
design processes
• It involves identifying major system
components and their communications
Architectural design process
• System structuring
– The system is decomposed into several principal sub-
systems and communications between these sub-
systems are identified
• Control modelling
– A model of the control relationships between the
different parts of the system is established
• Modular decomposition
– The identified sub-systems are decomposed into
modules
Architectural models
• Different architectural models may be
produced during the design process
• Each model presents different perspectives on
the architecture:
– Static structural model
– Dynamic process model
– Interface model
– Relationships model
Architectural models
• Static structural model that shows the major
system components
• Dynamic process model that shows the process
structure of the system
• Interface model that defines sub-system
interfaces
• Relationships model such as a ERD
System structuring
Concerned with decomposing the system into
interacting sub-systems
• The architectural design is normally expressed
as a block diagram presenting an overview of
the system structure
– (More specific models showing how sub-systems
share data, are distributed and interface with
each other may also be developed)
Packing robot control system
Vision
system

Object Arm Gripper


identification controller controller
system

Packaging
selection
system

Packing Conveyor
system controller
System structuring
Two types of structures:
•The repository model
•Client-server architecture
The repository model
• Sub-systems must exchange data. This may be
done in two ways:
– Shared data is held in a central database or repository
and may be accessed by all sub-systems
– Each sub-system maintains its own database and
passes data explicitly to other sub-systems

• When large amounts of data are to be shared, the


repository model of sharing is most commonly
used (WHY???)
Repository model characteristics
• Advantages
– Sub-systems need not be concerned with how data is produced
– Centralised management e.g. backup, security, etc.
– Sharing model is published as the repository schema
• Disadvantages
– Sub-systems must agree on a repository data model. Inevitably a compromise
– Data evolution is difficult and expensive
– No scope for specific management policies
– Difficult to distribute efficiently
Client-server architecture
• Distributed system model which shows how data and
processing is distributed across a range of components
• Set of stand-alone servers which provide specific services
such as printing, data management, etc.
• Set of clients which call on these services
• Network which allows clients to access servers
Client-server characteristics
• Advantages
– Distribution of data is straightforward
– Makes effective use of networked systems. May
require cheaper hardware
– Easy to add new servers or upgrade existing servers
• Disadvantages
– No shared data model so sub-systems use different
data organisation. data interchange may be inefficient
– Redundant management in each server
– No central register of names and services - it may be
hard to find out what servers and services are
available
Control models
Are concerned with the control flow between sub
systems.
• Centralised control
– One sub-system has overall responsibility for control
and starts and stops other sub-systems
• Event-based control
– Each sub-system can respond to externally generated
events from other sub-systems or the system’s
environment
Centralised control
• A control sub-system takes responsibility for
managing the execution of other sub-systems
• Call-return model
– Top-down subroutine model where control starts
at the top of a subroutine hierarchy and moves
downwards.
• Manager model
– Applicable to concurrent systems. One system
component controls the stopping, starting and
coordination of other system processes.
Call-return model
Main
program

Routine 1 Routine 2 Routine 3

Routine 1.1 Routine 1.2 Routine 3.1 Routine 3.2


Real-time system control

Sensor Actuator
processes processes

System
contr oller

Computation User Fault


processes interface handler
Event-driven systems
• Driven by externally generated events where the
timing of the event is out with the control of the
sub-systems which process the event
• Two principal event-driven models
– Broadcast models.
An event is broadcast to all sub-systems. Any sub-system
which can handle the event may do so
– Interrupt-driven models.
Used in real-time systems where interrupts are detected
by an interrupt handler and passed to some other
component for processing
Broadcast model
• Effective in integrating sub-systems on different computers
in a network
• Sub-systems register an interest in specific events. When
these occur, control is transferred to the sub-system which
can handle the event
• Control policy is not embedded in the event and message
handler. Sub-systems decide on events of interest to them
• (!!!) However, sub-systems don’t know if or when an event
will be handled
Broadcasting

Sub-system Sub-system Sub-system Sub-system


1 2 3 4

Event and messa ge handler


Interrupt-driven systems
• Used in real-time systems where fast
response to an event is essential
• There are known interrupt types with a
handler defined for each type
• Each type is associated with a memory
location and a hardware switch causes
transfer to its handler
• (!!!) Allows fast response but complex to
program and difficult to validate
Interrupt-driven control
Interrupts

Interrupt
vector

Handler Handler Handler Handler


1 2 3 4

Process Process Process Process


1 2 3 4
Distributed Systems Architectures

Architectural design for


software that executes on
more than one processor
Distributed system characteristics
• Resource sharing
• Openness
• Concurrency Distributed system
disadvantages :
• Scalability Complexity
Security
• Fault tolerance Manageability
Unpredictability
• Transparency
Distributed systems archiectures
• Client-server architectures
– Distributed services which are called on by clients.
Servers that provide services are treated differently
from clients that use services
• Distributed object architectures
– No distinction between clients and servers. Any object
on the system may provide and use services from
other objects
• Multiprocessor architectures
– Simplest distributed system model
Middleware
• Software that manages and supports the
different components of a distributed system.
In essence, it sits in the middle of the system
• Middleware is usually off-the-shelf rather
than specially written software
• Examples
– Transaction processing monitors
– Data converters
– Communication controllers
Multiprocessor architectures
• Simplest distributed system model
• System composed of multiple processes which
may (but need not) execute on different
processors
• Architectural model of many large real-time
systems
A multiprocessor traffic control system

Sensor Traffic flow Traffic light control


processor processor processor

Sensor Light
Display control
control process
process process

Traffic lights
Traffic flow sensors
and cameras Operator consoles
Client-server architectures
• The application is modelled as a set of
services that are provided by servers and a set
of clients that use these services
• Clients know of servers but servers need not
know of clients
• Clients and servers are logical processes
• The mapping of processors to processes is not
necessarily 1 : 1
A client-server system

c2 c3 c4 c12
c11
Server process
c1
s1 s4

c10
c5
Client process
s2 s3 c9

c6 c8
c7
Computers in a C/S network

c1 c2 c3, c4
CC1 CC2 CC3

Network s3, s4 Server


s1, s2
computer
SC2 SC1

Client
computer
c5, c6, c7 c8, c9 c10, c11, c12
CC4 CC5 CC6
Thin and fat clients
• Thin-client model
– In a thin-client model, all of the application
processing and data management is carried out
on the server. The client is simply responsible for
running the presentation software.
• Fat-client model
– In this model, the server is only responsible for
data management. The software on the client
implements the application logic and the
interactions with the system user.
Thin and fat clients

Presentation
Server
Thin-client Data management
model Client
Application
processing

Presentation
Application processing Server
Fat-client
model Client Data
management
Thin client model
• Used when legacy systems are migrated to
client server architectures.
– The legacy system acts as a server in its own right
with a graphical interface implemented on a client
• A major disadvantage is that it places a heavy
processing load on both the server and the
network
• Cloud Computing
Fat client model
• More processing is delegated to the client as
the application processing is locally executed
• Most suitable for new C/S systems where the
capabilities of the client system are known in
advance
• More complex than a thin client model
especially for management. New versions of
the application have to be installed on all
clients
Three-tier architectures
• In a three-tier architecture, each of the
application architecture layers may execute
on a separate processor
• Allows for better performance than a thin-
client approach and is simpler to manage than
a fat-client approach
• A more scalable architecture - as demands
increase, extra servers can be added
A 3-tier C/S architecture

Presentation
Server Server
Client Application Data
processing management
An internet banking system

Client HTTP interaction

Web server Datab ase server


SQL query
Client Account service Customer
SQL account
provision
database

Client

Client
Distributed object architectures
• There is no distinction in a distributed object
architectures between clients and servers
• Each distributable entity is an object that
– provides services to other objects and
– receives services from other objects
• Object communication is through a middleware
system called an object request broker (software
bus)
• However, more complex to design than C/S
systems
Distributed object architecture
o1 o2 o3 o4

S (o1) S (o2) S (o3) S (o4)

Software bus

o5 o6

S (o5) S (o6)
Advantages of distributed object architecture

• It allows the system designer to delay decisions


on where and how services should be provided
• It is a very open system architecture that allows
new resources to be added to it as required
• The system is flexible and scaleable
• It is possible to reconfigure the system
dynamically with objects migrating across the
network as required
Summary
• Software Architecture
– Shared memory
– Distributed memory

Distributed Architecture
Thin Client
Fat Client

You might also like