Distributed Systems Architectures Architectural design for software that executes on more than one processor Computer Science CS425/CS625 8/23/2001

Download Report

Transcript Distributed Systems Architectures Architectural design for software that executes on more than one processor Computer Science CS425/CS625 8/23/2001

Distributed Systems
Architectures
Architectural design for
software that executes on
more than one processor
Computer Science
CS425/CS625
8/23/2001
1
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 clientserver and distributed object architectures
• To describe object request brokers and the
principles underlying the CORBA standards
Computer Science
CS425/CS625
8/23/2001
2
Topics covered
•
•
•
•
Multiprocessor architectures
Client-server architectures
Distributed object architectures
CORBA
Computer Science
CS425/CS625
8/23/2001
3
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
Computer Science
CS425/CS625
8/23/2001
4
Distributed system
characteristics
•
•
•
•
•
•
Resource sharing
Openness
Concurrency
Scalability
Fault tolerance
Transparency
Computer Science
CS425/CS625
8/23/2001
5
Distributed system
disadvantages
•
•
•
•
Complexity
Security
Manageability
Unpredictability
Computer Science
CS425/CS625
8/23/2001
6
Design issue
Resource
identification
Descri ption
The resources in a dist ributed 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 t he URL (Uniform Resource Locator) that
is used to identify WWW pages. If a meaningful and universally
understood ident ificat ion scheme is not used then many of these
resources will be inaccessible to system users.
Communications The universal availability of t he Internet and the efficient
implementat ion of Internet TCP /IP communicat ion protocols means
that, for most distributed systems, these are the most effect ive way
for the comput ers to communicate. However, where there are
specific requirements for performance, reliability etc. alternat ive
approaches to communicat ions may be used.
Quality of service 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 allocat ion of processes to processes in t he system, the
distribut ion of resources across the syst em, the network and the
system hardware and the adaptability of the system.
Software
The software architecture describes how the applicat ion
architectures
funct ionalit y is distributed over a number of logical component s and
how these components are distributed across processors. Choosing
the right archit ecture for an applicat ion is essent ial 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
Computer Science
CS425/CS625
8/23/2001
8
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
Computer Science
CS425/CS625
8/23/2001
9
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
Computer Science
Operator consoles
CS425/CS625
8/23/2001
10
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
pre-ordered or may be under the control of a
despatcher
Computer Science
CS425/CS625
8/23/2001
11
A client-server system
c3
c2
c4
c12
c11
c1
Server process
s4
s1
c10
c5
s2
c6
Client process
s3
c8
c7
Computer Science
c9
CS425/CS625
8/23/2001
12
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
Computer Science
CS425/CS625
8/23/2001
13
Computers in a C/S network
c1
CC1
c2
CC2
CC3
Network
s1, s2
c3, c4
Server
computer
s3, s4
SC1
SC2
c5, c6, c7
CC4
Computer Science
c8, c9
CC5
Client
computer
c10, c11, c12
CC6
CS425/CS625
8/23/2001
14
Application layers
Presentation layer
Application processing
layer
Data management
layer
Computer Science
CS425/CS625
8/23/2001
15
Layered application
architecture
• Presentation layer
– Concerned with presenting the results of a
computation to system users and with collecting
user inputs
• Application processing layer
– 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
Computer Science
CS425/CS625
8/23/2001
16
Thin and fat clients
Presentation
Thin-client
model
Data management
Application
processing
Client
Presentation
Application processing
Fat-client
model
Client
Computer Science
Server
Server
Data
management
CS425/CS625
8/23/2001
17
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.
Computer Science
CS425/CS625
8/23/2001
18
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
Computer Science
CS425/CS625
8/23/2001
19
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
Computer Science
CS425/CS625
8/23/2001
20
A client-server ATM system
ATM
ATM
Account server
TeleCustomer
processing account
monitor
database
ATM
ATM
Computer Science
CS425/CS625
8/23/2001
21
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 thinclient approach and is simpler to manage
than a fat-client approach
• A more scalable architecture - as demands
increase, extra servers can be added
Computer Science
CS425/CS625
8/23/2001
22
A 3-tier C/S architecture
Presentation
Client
Computer Science
Server
Server
Application
processing
Data
management
CS425/CS625
8/23/2001
23
An internet banking system
Client
HTTP interaction
Web server
Client
Account service
provision
Datab ase server
SQL query
SQL
Customer
account
database
Client
Client
Computer Science
CS425/CS625
8/23/2001
24
Use of C/S architectures
Arch i te cture
Two-t ier C/S
architecture with
thin client s
Two-t ier C/S
architecture with
fat client s
Three-t ier or
mult i-t ier C/S
architecture
Computer Science
Appl ication s
Legacy system applicat ions where separat ing applicat ion
processing and data management is impract ical
Computat ionally-intensive applicat ions such as compilers with
lit tle or no data management
Data-intensive applicat ions (browsing and querying) with lit t le
or no applicat ion processing.
Applicat ions where applicat ion processing is provided by
COT S (e.g. Microsoft Excel) on the client
Applicat ions where computat ionally-intensive processing of
data (e.g. data visualisat ion) is required.
Applicat ions with relat ively stable end-user funct ionality used
in an environment with well-established system management
Large scale applicat ions wit h hundreds or thousands of clients
Applicat ions where both the data and the applicat ion are
volat ile.
Applicat ions where data from mult iple sources are integrated
CS425/CS625
8/23/2001
25
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
Computer Science
CS425/CS625
8/23/2001
26
Distributed object architecture
o1
o2
o3
o4
S (o1)
S (o2)
S (o3)
S (o4)
Software bus
Computer Science
o5
o6
S (o5)
S (o6)
CS425/CS625
8/23/2001
27
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
Computer Science
CS425/CS625
8/23/2001
28
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
Computer Science
CS425/CS625
8/23/2001
29
A data mining system
Database 1
Integrator 1
Database 2
Report gen.
Visualiser
Integrator 2
Database 3
Display
Computer Science
CS425/CS625
8/23/2001
30
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
Computer Science
CS425/CS625
8/23/2001
31
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
Computer Science
CS425/CS625
8/23/2001
32
CORBA application structure
Application
objects
Domain
facilities
Horizontal
CORBA facilities
Object request broker
CORBA services
Computer Science
CS425/CS625
8/23/2001
33
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
Computer Science
CS425/CS625
8/23/2001
34
CORBA standards
• An object model for application objects
– A CORBA object is an encapsulation of state with
a well-defined, 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
Computer Science
CS425/CS625
8/23/2001
35
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
Computer Science
CS425/CS625
8/23/2001
36
ORB-based object
communications
o1
o2
S (o1)
S (o2)
IDL
stub
IDL
skeleton
Object Request Broker
Computer Science
CS425/CS625
8/23/2001
37
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
Computer Science
CS425/CS625
8/23/2001
38
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
Computer Science
CS425/CS625
8/23/2001
39
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
Computer Science
CS425/CS625
8/23/2001
40
CORBA services
• Naming and trading services
– These allow objects to discover and refer to other
objects on the network
• Notification services
– These allow objects to notify other objects that an
event has occurred
• Transaction services
– These support atomic transactions and rollback on
failure
Computer Science
CS425/CS625
8/23/2001
41
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
Computer Science
CS425/CS625
8/23/2001
42
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
Computer Science
CS425/CS625
8/23/2001
43