Adv Software Engineering Lect4
Adv Software Engineering Lect4
&
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
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
Sensor Actuator
processes processes
System
contr oller
Interrupt
vector
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
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
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
Software bus
o5 o6
S (o5) S (o6)
Advantages of distributed object architecture
Distributed Architecture
Thin Client
Fat Client