ch11

advertisement
Chapter 11
Distributed Systems
Architectures
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 1
Distributed Systems Architectures
Architectural design for software that
executes on more than one processor

©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 2
Objectives




To explain the advantages and disadvantages of
distributed systems architectures
To describe different approaches to the
development of client-server systems
To explain the differences between client-server
and distributed object architectures
To describe object request brokers and the
principles underlying the CORBA standards
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 3
Topics covered




Multiprocessor architectures
Client-server architectures
Distributed object architectures
CORBA
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 4
Distributed systems



Virtually all large computer-based systems are
now distributed systems
Information processing is distributed over several
computers rather than confined to a single
machine
Distributed software engineering is now very
important
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 5
System types



Personal systems that are not distributed and
that are designed to run on a personal computer
or workstation.
Embedded systems that run on a single
processor or on an integrated group of
processors.
Distributed systems where the system software
runs on a loosely integrated group of cooperating
processors linked by a network.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 6
Distributed system characteristics






Resource sharing
Openness
Concurrency
Scalability
Fault tolerance
Transparency
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 7
Distributed system disadvantages




Complexity
Security
Manageability
Unpredictability
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 8
Design issue
Resource
identification
Communications
Quality of service
Software
architectures
Description
The resources in a distributed system are spread across different
computers and a naming scheme has to be devised so that users can
discover and refer to the resources that they need. An example of such a
naming scheme is the URL (Uniform Resource Locator) that is used to
identify WWW pages. If a meaningful and universally understood
identification scheme is not used then many of these resources will be
inaccessible to system users.
The universal availability of the Internet and the efficient implementation of
Internet TCP/IP communication protocols means that, for most distributed
systems, these are the most effective way for the computers to
communicate. However, where there are specific requirements for
performance, reliability etc. alternative approaches to communications may
be used.
The quality of service offered by a system reflects its performance,
availability and reliability. It is affected by a number of factors such as the
allocation of processes to processes in the system, the distribution of
resources across the system, the network and the system hardware and the
adaptability of the system.
The software architecture describes how the application functionality is
distributed over a number of logical components and how these
components are distributed across processors. Choosing the right
architecture for an application is essential to achieve the desired quality of
service.
Issues in distributed system
design
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 10
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 convertors
Communication controllers
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 11
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
Distribution of process to processor may be preordered or may be under the control of a
despatcher
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 12
A multiprocessor traffic control system
Sensor
processor
Sensor
control
process
Traffic flow
processor
Display
process
Traffic light control
processor
Light
control
process
Traffic lights
Traffic flow sensors
and cameras
©Ian Sommerville 2000
Operator consoles
Software Engineering, 6th edition. Chapter 11
Slide 13
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 14
A client-server system
c3
c2
c4
c12
c11
c1
Server process
s4
s1
c10
c5
s2
c6
©Ian Sommerville 2000
c7
Client process
s3
c9
c8
Software Engineering, 6th edition. Chapter 11
Slide 15
Computers in a C/S network
c1
CC1
c2
CC2
CC3
c3, c4
Network
s1, s2
s3, s4
Server
computer
SC1
SC2
c5, c6, c7
CC4
©Ian Sommerville 2000
c8, c9
CC5
c10, c11, c12
Client
computer
CC6
Software Engineering, 6th edition. Chapter 11
Slide 16
Layered application architecture

Presentation layer
•

Application processing layer
•

Concerned with presenting the results of a computation to
system users and with collecting user inputs
Concerned with providing application specific functionality e.g.,
in a banking system, banking functions such as open account,
close account, etc.
Data management layer
•
Concerned with managing the system databases
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 17
Application layers
Presentation layer
Application processing
layer
Data management
layer
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 18
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.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 19
Thin and fat clients
Presentation
Thin-client
model
Data management
Application
processing
Client
Presentation
Application processing
Fat-client
model
©Ian Sommerville 2000
Server
Client
Server
Data
management
Software Engineering, 6th edition. Chapter 11
Slide 20
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 21
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 22
A client-server ATM system
ATM
ATM
Account server
TeleCustomer
processing account
monitor
database
ATM
ATM
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 23
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 fatclient approach
A more scalable architecture - as demands
increase, extra servers can be added
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 24
A 3-tier C/S architecture
Presentation
Client
©Ian Sommerville 2000
Server
Server
Application
processing
Data
management
Software Engineering, 6th edition. Chapter 11
Slide 25
An internet banking system
Client
HTTP interaction
Datab ase server
Web server
Client
Account service
provision
SQL query
SQL
Customer
account
database
Client
Client
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 26
Use of C/S architectures
Architecture
Two-tier C/S
architecture with
thin clients
Two-tier C/S
architecture with
fat clients
Three-tier or
multi-tier C/S
architecture
©Ian Sommerville 2000
Applications
Legacy system applications where separating application
processing and data management is impractical
Computationally-intensive applications such as compilers
with little or no data management
Data-intensive applications (browsing and querying) with little
or no application processing.
Applications where application processing is provided by
COTS (e.g. Microsoft Excel) on the client
Applications where computationally-intensive processing of
data (e.g. data visualisation) is required.
Applications with relatively stable end-user functionality used
in an environment with well-established system management
Large scale applications with hundreds or thousands of
clients
Applications where both the data and the application are
volatile.
Applications where data from multiple sources are integrated
Software Engineering, 6th edition. Chapter 11
Slide 27
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 28
Distributed object architecture
o1
o2
o3
o4
S (o1)
S (o2)
S (o3)
S (o4)
Software bus
©Ian Sommerville 2000
o5
o6
S (o5)
S (o6)
Software Engineering, 6th edition. Chapter 11
Slide 29
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
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 30
Uses of distributed object architecture


As a logical model that allows you to structure
and organise the system. In this case, you think
about how to provide application functionality
solely in terms of services and combinations of
services
As a flexible approach to the implementation of
client-server systems. The logical model of the
system is a client-server model but both clients
and servers are realised as distributed objects
communicating through a software bus
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 31
A data mining system
Database 1
Integrator 1
Database 2
Report gen.
Visualiser
Integrator 2
Database 3
Display
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 32
Data mining system



The logical model of the system is not one of
service provision where there are distinguished
data management services
It allows the number of databases that are
accessed to be increased without disrupting the
system
It allows new types of relationship to be mined by
adding new integrator objects
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 33
CORBA




CORBA is an international standard for an Object
Request Broker - middleware to manage
communications between distributed objects
Several implementation of CORBA are available
DCOM is an alternative approach by Microsoft to
object request brokers
CORBA has been defined by the Object
Management Group
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 34
Application structure




Application objects
Standard objects, defined by the OMG, for a
specific domain e.g. insurance
Fundamental CORBA services such as
directories and security management
Horizontal (i.e. cutting across applications)
facilities such as user interface facilities
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 35
CORBA application structure
Application
objects
Domain
facilities
Horizontal
CORBA facilities
Object request broker
CORBA services
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 36
CORBA standards

An object model for application objects
•



A CORBA object is an encapsulation of state with a welldefined, language-neutral interface defined in an IDL (interface
definition language)
An object request broker that manages requests
for object services
A set of general object services of use to many
distributed applications
A set of common components built on top of
these services
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 37
CORBA objects




CORBA objects are comparable, in principle, to
objects in C++ and Java
They MUST have a separate interface definition
that is expressed using a common language
(IDL) similar to C++
There is a mapping from this IDL to programming
languages (C++, Java, etc.)
Therefore, objects written in different languages
can communicate with each other
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 38
Object request broker (ORB)



The ORB handles object communications. It
knows of all objects in the system and their
interfaces
Using an ORB, the calling object binds an IDL
stub that defines the interface of the called object
Calling this stub results in calls to the ORB which
then calls the required object through a
published IDL skeleton that links the interface to
the service implementation
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 39
ORB-based object
communications
o1
o2
S (o1)
S (o2)
IDL
stub
IDL
skeleton
Object Request Broker
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 40
Inter-ORB communications




ORBs are not usually separate programs but are
a set of objects in a library that are linked with an
application when it is developed
ORBs handle communications between objects
executing on the sane machine
Several ORBS may be available and each
computer in a distributed system will have its
own ORB
Inter-ORB communications are used for
distributed object calls
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 41
Inter-ORB communications
o1
o2
o3
o4
S (o1)
S (o2)
S (o3)
S (o4)
IDL
IDL
IDL
IDL
Object Request Broker
Object Request Broker
Network
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 42
CORBA services

Naming and trading services
•

Notification services
•

These allow objects to discover and refer to other objects on
the network
These allow objects to notify other objects that an event has
occurred
Transaction services
•
These support atomic transactions and rollback on failure
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 43
Key points




Almost all new large systems are distributed
systems
Distributed systems support resource sharing,
openness, concurrency, scalability, fault
tolerance and transparency
Client-server architectures involve services being
delivered by servers to programs operating on
clients
User interface software always runs on the client
and data management on the server
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 44
Key points



In a distributed object architecture, there is no
distinction between clients and servers
Distributed object systems require middleware to
handle object communications
The CORBA standards are a set of middleware
standards that support distributed object
architectures
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 11
Slide 45
Download