SystemModels ds14
SystemModels ds14
Architectural model
We will see:
What are the components
Placement of the components, and
Interrelationships between the components
Component processes
Server process, client process, peer process
Software Layers in DS (Software Architecture)
Applications, services
Operating system
Platform
Ex. x86/Windows,
Computer and network hardware SPARC/Solaris,
PowerPC/MacOS,
x86/Linux
Middleware Basics
Representation
processes or objects interacting with each other to implement
communication and resource sharing
Function
provides building blocks for developing SW components that can
interact in a DS
An Important goal is to hide the heterogeneity of the underlying
platforms from applications
Examples
Remote method invocation, group communication, replication
Earliest middlewares: Sun RPC, ISIS group communication
OO middlewares: OMG’s CORBA, MS’s DCOM, Java RMI
Middleware basics (contd.)
Client-server architectures
Distributed services which are called on by clients.
Servers that provide services are treated differently
from clients that use services
Basic model
Variations
Distributed object architectures
No distinction between clients and servers. Any object
on the system may provide and use services from
other objects
Objects and interfaces
The Client-Server Model
result result
Server
Client
Key:
Process: Computer:
Service
Replicated data
Server
Client partitioned in
multiple servers.
Server
Client
Server
Web proxy server
Client Web
server
Proxy
server
Client Web
server
Application Application
Coordination Coordination
code code
Application
Coordination
code • Code in the peer process maintains
consistency and synchronization
• No designated clients or servers
•All play similar roles interacting
cooperatively as peers.
Variations on the client-server model
1-28
Multi-tiered Architectures
1-29
Other Variations of client-server model: Mobile Code
Java applets
Push model: initiated by the server
Pull model: initiated by the client
a) client request results in the downloading of applet code
Client Web
Applet code server
Web
Client Applet server
Mobile Code
Mobile agents
A running program that travels from one machine to other in
a network carrying out task on someone’s behalf eventually
returning with the result.
e.g. install and maintain s/w on the computers within an organization or
compare the prices of products from a number of vendors by visiting the site
of each vendor and performing a series of database operations.
A system model
defines
the entities
their interactions
characteristics that affect their behavior
purposes
explicitly states all relevant assumptions
generalize what is possible or not based on the assumptions
We’ll study
Interaction model
Failure model
Security model
Fundamental models
process p process q
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
Interaction model
Jitter
Variation in time taken to deliver a series of messages.
Relevant to multimedia data -- Audio-video
Interaction model
Synchronous
Processing time (time to execute each step of a process)
has a known lower and upper bound
Msg. Transmission delay is within a known bound
Local clock drift rates are also within a known bound
Examples: Multiprocessor systems
Asynchronous
Processing time doesn’t have any bound
Msg. Transmission delay doesn’t have any bound
Local clock drift rates don’t have any bound
Examples: Internet, wireless networks, datacenters, most real systems
Synchronous and asynchronous DS
Synchronous
Possible to suggest likely upper & lower bounds but
difficult to arrive at a realistic values and to provide
guarantee for the chosen values
Possible to use timeouts
Unless the values of the bounds are guaranteed, any
design based on those will not be reliable
Modeling an algorithm as a synchronous system may be
useful for giving some idea of how it will behave in a real
distribute system
Synchronous and asynchronous DS
Asynchronous
Many DS (e.g. Internet) are very useful w/o being able to
qualify as synchronous system
Actual DS are very often asynchronous
There are many design problems that cannot be solved for
an asynchronous system that can be solved when some
aspects of time are used.
Any solution that is valid for asynchronous DS is also valid
for synchronous DS
Real-time ordering of events
User A:
• X sends a message with the subject “Meeting”
• Y and Z reply with the subject “Re: Meeting”
send receive receive
X
1 m 4
1
m
send 2
receive
Y 2 3 Physical
receive time
send
Z
receive receive
From Subject
m m m
3 1 2
A
receive receive receive
t1 t2 t3
Failure model
Types of failures
Omission failure
process
communication channel
Arbitrary failure
Timing failure
process p process q
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
Failure Types
Process omission failure
Crash-stop (fail-stop) – a process halts and does not execute any
further operations
Crash-recovery – a process halts, but then recovers (reboots) after
a while
Special case of crash-stop model (use a new identifier on
recovery)
• Masking failures:
Some services can mask a failure, e.g., checksums
are used to mask corrupted messages – effectively
converting an arbitrary failure into an omission failure,
omission failures can be masked by retransmission
The Enemy
To model security threats we postulate an enemy or an
adversary who can pose security threats
Threats assessment
is an important aspect of security model
Security threats
Copy of m
The enemy
m’
Process p m Process q
Communication channel
Secure channel