11ude824 - Distributed Computing: Prepared by N.Susila, Ap / It Skcet
11ude824 - Distributed Computing: Prepared by N.Susila, Ap / It Skcet
COMPUTING
Prepared By
N.SUSILA,
AP / IT
SKCET
Definition of Distributed System
Distributed System Definition:
◦ A distributed system is a collection of
autonomous hosts that are connected through a
computer network.
◦ Each host executes components and operates a
distribution middleware.
◦ Middleware enables the components to
coordinate their activities.
◦ Users perceive the system as a single,
integrated computing facility.
N.Susila, AP/IT, SKCET 2
Features
◦ breaking down an application into individual
computing agents
◦ distributed over a network
◦ work together on a cooperative task
Motivation for DC:
◦ Scalability: can solve larger problems without
larger computers
◦ Openness and heterogeneity: applications and data
may be difficult to relocate and reconfigure
◦ Fault-tolerance: redundant processing agents for
system availability
N.Susila, AP/IT, SKCET 3
Ingredients of a Distributed System
Host-1 Host-n
Component-1 … Component-n
Middleware
Network OS
Hardware
Host-1
Middleware Middleware
Network OS Network OS
Hardware Hardware
Host-1 Host-2
Network
Component-1 … Component-n Component-1 … Component-n
Middleware Middleware
Network OS Network OS
Hardware Hardware
Host-n Host-3
Payables/
Receivables
Sales Accounting
Manufacturing
Inventory
Shipping/
Receiving
Engineering
Dimensions of transparency in DS
◦ Access Transparency
◦ Location Transparency
◦ Migration Transparency
◦ Replication Transparency
◦ Concurrency Transparency
◦ Scalability Transparency
◦ Performance Transparency
◦ Failure Transparency
N.Susila, AP/IT, SKCET 14
Architecture Model
Architecture model is concerned with the
placement of its parts, namely how
components are mapped to underlying
network and the relationship between them,
that is, their functional roles and patterns of
communication between them.
result result
Server
Client
Key:
Process: Computer:
Peer 1
Application
Application
Sharable Peer 3
objects
Application
Peer 4
Application
Peers 5 .... N
Server
Client
Server
Client
Server
The servers may partition the set of objects on which the service is
based and distributed them between them, or they may maintain
replicated copies of them.
Web provides a common example of partitioned data
Client Web
server
Cache is a store of recently used data objects that is closer than the
object themselves.
Proxy server and caches: web proxy server provides a shared
cache of web resources for the client machines at a site or across
several sites.
Client Web
server
Applet code
Web
Client Applet server
Mobile code
Mobile agent
Applications, services
Middleware
Operating system
Platform
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
2
© Pearson Education 2012 N.Susila, AP/IT, SKCET 8
Fundamental Models
It deals with a more formal description of the properties that are
common in all of the architectural models.
Since no global time in a distributed system, so the clocks on
different computers do not necessarily give the same time as one
another.. Messages communications can be affected by delays and
suffer from a variety of failures and vulnerable to security attacks.
Issues can be addressed by the following three models:
◦ The interaction model deals with performance and with difficulty of
setting time limits.
◦ The failure model attempts to give a precise specification of the faults
that can be exhibited by processes and communication channels.
◦ The security model discusses the possible threats to processes and
communication channels. It introduces the concept of a secure channel,
which is secure against those threats.
◦ Interaction
◦ Failure
◦ Security
send
Z
receive receive
m3 m1 m2
A
receive receive receive
t1 t2 t3
process p process q
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
Client
result Server
Copy ofm
The enemy
m’
Processp m Processq
Communication channel
Enemy can copy, alter or inject messages as they travel across the network. Such
Attack present a threat to the privacy and integrity of information and the integrity
Of the system.
Principal A Principal B
The true serialized form contains additional type markers; h0 and h1 are handles
N.Susila, AP/IT, SKCET 46
External data representation and marshalling
■ Use of reflection
◆ Reflection: inquiring about class properties, e.g., names, types
of methods and variables, of objects
◆ Allows to do serialization and deserialization in a generic
manner, unlike in CORBA, which needs IDL specifications
■ Serialization
■ Deserialization
ensure uniqueness
remote local C
invocation invocation local E
invocation remote
invocation F
B local
A
invocation D
N.Susila,
AP/IT,
SKCET 49
External data representation and marshalling
■ A remote object reference must be unique over space and time
■ (IP address + port #) + (time of creation + local object number)
■in case objects live only in the process that created them, the reference
Client Server
Request
doOperation
getRequest
message select object
(wait) execute
Reply method
message sendReply
(continuation)
messageType int
requestId
(0=Request, 1= Reply)
objectReference
methodId int
RemoteObjectRef
arguments
int or Method
■ Marshalled RemoteObjectRef: array of bytes
32 bits 32 bits 32 32 bits
bitsaddress
Internet port number time object number interface of
remote object
port #
■ Duplicate request handling: (scenario?)
■ if reply not sent: make sure only execute once
Group Communication
◦ For coordination among processes of a group.
• Efficiency Þ Multicast
Options:
◦ Peer group or client-server group
◦ Closed or Open Group
Integrity
A correct process delivers a message at most once.
Validity
A message from a correct process will be delivered by
the process eventually.
Agreement
A message delivered by a correct process will be
delivered by all other correct processes in the group.
p3
Basic multicast
◦ Requirement:
All correct processes will eventually deliver the message from
a correct sender.
◦ Implementation:
B-multicast( g, m): p g: send( p, m);
On receive( m) at p: B-deliver( m) at p.
Properties: integrity, validity.