Figure 15.1 A distributed multimedia system

Download Report

Transcript Figure 15.1 A distributed multimedia system

Lecture 2: System Models
Haibin Zhu, PhD.
Assistant Professor
Department of Computer Science
Nipissing University
© 2003
1
Why have system models?
Make assumptions clear
Organize and classify different approaches
Make generalizations
2
Architectural model
Defines the way in which the components of
systems interact with one another and the way in
which they are mapped onto an underlying network
of computers.
Structure in terms of separately specified components.
Placement of components across a network of computers
Interrelationships between components
Division of responsibilities among components
3
Terminology
server
process that accepts requests from other process.
service
What provided by one or more servers
platform
hardware and underlying operating system
middleware
software layer that masks heterogeneity and provides a
programming model
4
Figure 2.1 Software and hardware service
layers in distributed systems
Applications, services
Middlew are
RPC, CORBA, DCOM, RMI
Operating s ys tem
Platform
Computer and netw ork hardw are
5
Client/Server
Server: A subsystem that provides a particular type
of service to a priori unknown clients.
Control functionally distributed among the various
servers in the system.
Control of individual resources is centralized in a
server(localized?)
Problems:
 Reliability/Availability
 Scalability
 Replication?
6
Figure 2.2 Clients invoke individual servers
Client
invocation
res ult
invocation
Server
Server
res ult
Client
Key:
Process :
Computer:
7
Figure 2.3 A service provided by multiple servers
Service
Server
Client
Server
Client
Server
8
Figure 2.4 Web proxy server
Web
server
Client
Proxy
server
Client
cache
Web
server
9
Peer processes
All of the processes play similar roles, interacting
cooperatively as peers to perform a distributed
activity or computation without any distinction
between clients and servers.
10
Figure 2.5 A distributed application based on
peer processes
Application
Application
Coordination
code
Coordination
code
Application
Coordination
code
11
Variations on the client-server model
Mobile code
Mobile agents
Network computers
Thin clients
12
Figure 2.6 Web applets
a) client request res ults in the dow nloading of applet c ode
Client
Applet code
Web
s erv er
b) client interac ts w ith the applet
Client
Applet
Web
s erv er
13
Mobile Agent
A running programming including both code and
data that travels from one computer to another in a
network carrying out a task on someone’s behalf,
such as collecting information, eventually returning
with the results.
It is a potential security threat to the resources in
computers that they visit.
14
Network Computers
It downloads its operating system and any
application software needed by the user from a
remote file server.
Its disk (if included) holds only a minimum of
software. The extra space is used as a cache
holding copies of software and data files that have
recently loaded from servers.
Low cost on hardware and management.
15
Figure 2.7 Thin clients and compute servers
•A software layer that supports a window-based user interface on a
computer that is local to the user while executing application
programs on a remote computer.
•Low cost on hardware and management.
Compute server
Network computer or PC
Thin
Client
network
Application
Process
16
Design requirements for distributed architecture
Performance
Responsiveness & Throughput
QoS (Quality of Services)
Reliability, Security, Performance, & Adaptability
Caching and replication
Dependability
Correctness, security, & fault tolerance
17
Fundamental Models
 A model includes:
Main entities
Interactions
Individual and collective characteristics
 Interaction:
How do components interact and coordinate to solve a problem?
 Failure:
What are the potential failures and how do they affect the results?
 Security:
What are the system’s vulnerabilities and how should they be
handled?
18
Interaction models
Processes interact through message-passing to
solve a problem.
Interaction is influenced by:
Performance of the communication channels
Synchronization of the clocks
19
Communication performance:
Latency
The delay between the sending of a message by one
process and its receipt by another
Data, network, and OS
Bandwidth
The total amount of information that can be transmitted
over a (network) in a given time.
Jitter
Variation in time taken to deliver a series of messages.
20
Clocks and event ordering:
Messages are often time-stamped to indicate
ordering.
Each computer has at least one local clock.
Time-stamps are often based on local clock values.
Local clocks aren’t synchronized.
21
Synchronous & Asynchronous distributed
system:
Synchronous
Can bound:
Time for each processing step
Time to transmit each message
Clock drift for each process.
Asynchronous
No bounds on:
Time for each processing step
Time to transmit each message
Clock drift for each process.
22
Event ordering:
When does an event (sending or receiving a
message) from one process occur relative to an
event from another process?
A mailing list contains users X, Y, Z and A
X sends an email to the list with subject Meeting: (m1)
Y and Z reply by sending each a message to the list with
subject Re: Meeting (m2 and m3 respectively)
Example: What are the possible orderings of
messages in the following scenario?
23
Figure 2.9 Real-time ordering of events
s end
X
receiv e
1
m1
2
Y
receiv e
4
s end
3
m2
receiv e
Phy sical
time
receiv e
s end
Z
receiv e
receiv e
m3
A
t1
t2
m1
m2
receiv e receiv e receiv e
t3
24
Logical time
Provide proper ordering of events without reference
to physical clocks (Lamport, 1978).
Example: In the email scenario:
X sends m1 before Y sends m2
Y sends m2 before X receives m2
Y receives m1 before Y sends m2
25
Failure models
CDK:
“…(define) the ways in which failure may occur in
order to provide and understanding of the effects of
failures.”
Omission failures - process or channel fails to do
something
Process and communication
Arbitrary failures - usually refer to sabotage
Not only do not good, but also do bad
Timing failures - required time bounds are exceeded
26
Figure 2.10 Processes and channels
process p
process q
send
m
receiv e
Communic ation c hannel
Outgoing mess age buffer
Incoming mes sage buffer
27
Figure 2.11 Omission and arbitrary failures
Class of failure
Fail-stop
Affects
Process
Description
Process halts and remains halted. Other processes may
detect this state.
Crash
Process Process halts and remains halted. Other processes may
not be able to detect this state.
Omission
Channel A message inserted in an outgoing message buffer never
arrives at the other end’s incoming message buffer.
Send-omission Process A process completes a send, but the message is not put
in its outgoing message buffer.
Receive-omission Process A message is put in a process’s incoming message
buffer, but that process does not receive it.
Arbitrary
Process or Process/channel exhibits arbitrary behaviour: it may
(Byzantine)
channel send/transmit arbitrary messages at arbitrary times,
commit omissions; a process may stop or take an
incorrect step.
28
Figure 2.12 Timing failures
Class of Failure
Clock
Affects
Process
Performance
Process
Performance
Channel
Description
Process’s local clock exceeds the bounds on its
rate of drift from real time.
Process exceeds the bounds on the interval
between two steps.
A message’s transmission takes longer than the
stated bound.
29
Reliable one-to-one communication
Validity - any message in the outgoing message
buffer is eventually delivered to the incoming
message buffer
Integrity - the received message is identical to the
sent message and is delivered exactly once.
The threats to integrity:
Retransmission
Spurious message
30
Security model
Protect processes and channels from corruption.
Protect resources (encapsulated by objects) from
unauthorized access.
31
Figure 2.13 Objects and principals
Ac cess rights
Object
inv oc ation
Client
result
Principal (user)
Netw ork
Server
Principal (s erv er)
32
Figure 2.14 The enemy
•Threats to processes;
•Threats to communication channels and
•Denial of services
Copy of m
The enemy
Process p
m’
m
Process q
Communication channel
33
Figure 2.15 Secure channels
•Encryption and authorization are used to build secure channels as
a service layer on top of existing communication services.
•Both processes are the authorities of accessing rights.
Principal B
Principal A
Process p
Secure channel
Process q
34
Basic terminology
Cryptography - science of keeping information
secure
Encryption - scrambling a message to hide its
contents
Authentication - method for assuring the true identity
of an entity
35
Summary
Architectural Model
Software layers
System architectures
Client/server
Proxy server
Peer server
Mobile code and mobile agent
Network computers and thin clients
Spontaneous networking
Fundamental models
Interaction model
Failure model
Security model
36