ds-ppts
ds-ppts
Architectural Models
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
2
Figure 2.2
Communicating entities and communication paradigms
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
3
Figure 2.3
Clients invoke individual servers
result result
Server
Client
Key:
Process: Computer:
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.4a
Peer-to-peer architecture
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.4b
A service provided by multiple servers
Service
Server
Client
Server
Client
Server
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.5
Web proxy server
Client Web
server
Proxy
server
Client Web
server
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.6
Web applets
Client Web
Applet code server
Web
Client Applet server
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.7
Software and hardware service layers in distributed systems
Applications, services
Middleware
Operating system
Platform
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.8
Two-tier and three-tier architectures
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
10
Figure 2.9
AJAX example: soccer score updates
new Ajax.Request('scores.php?
game=Arsenal:Liverpool’,
{onSuccess: updateScore});
function updateScore(request) {
.....
( request contains the state of the Ajax request
including the returned result.
The result is parsed to obtain some text giving the
score, which is used to update the relevant portion
of the current page.)
.....
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
11
} © Pearson Education 2012
Figure 2.10
Thin clients and compute servers
Compute server
Network computer or PC
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.11
The web service architectural pattern
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
13
Figure 2.12
Categories of middleware
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
14
Figure 2.13
Real-time ordering of events
send
Z
receive receive
m3 m1 m2
A
receive receive receive
t1 t2 t3
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.14
Processes and channels
processp process q
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.15
Omission and arbitrary failures
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.11
Timing failures
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.17
Objects and principals
Client
result Server
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.18
The enemy
Copy of m
The enemy
m’
Process p m Process q
Communication channel
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.19
Secure channels
Principal A Principal B
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Slides for Chapter 4:
Interprocess Communication
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.2
Sockets and ports
message
client server
other ports
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.3
UDP client sends a message to the server and gets a reply
import java.net.*;
import java.io.*;
public class UDPClient{
public static void main(String args[]){
// args give message contents and server hostname
DatagramSocket aSocket = null;
try {
aSocket = new DatagramSocket();
byte [] m = args[0].getBytes();
InetAddress aHost = InetAddress.getByName(args[1]);
int serverPort = 6789;
DatagramPacket request = new DatagramPacket(m, m.length(), aHost, serverPort);
aSocket.send(request);
byte[] buffer = new byte[1000];
DatagramPacket reply = new DatagramPacket(buffer, buffer.length);
aSocket.receive(reply);
System.out.println("Reply: " + new String(reply.getData()));
}catch (SocketException e){System.out.println("Socket: " + e.getMessage());
}catch (IOException e){System.out.println("IO: " + e.getMessage());}
}finally {if(aSocket != null) aSocket.close();}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
} © Pearson Education 2012
Figure 4.4
UDP server repeatedly receives a request and sends it back to the client
import java.net.*;
import java.io.*;
public class UDPServer{
public static void main(String args[]){
DatagramSocket aSocket = null;
try{
aSocket = new DatagramSocket(6789);
byte[] buffer = new byte[1000];
while(true){
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
aSocket.receive(request);
DatagramPacket reply = new DatagramPacket(request.getData(),
request.getLength(), request.getAddress(), request.getPort());
aSocket.send(reply);
}
}catch (SocketException e){System.out.println("Socket: " + e.getMessage());
}catch (IOException e) {System.out.println("IO: " + e.getMessage());}
}finally {if(aSocket != null) aSocket.close();}
}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.5
TCP client makes connection to server, sends request and receives reply
import java.net.*;
import java.io.*;
public class TCPClient {
public static void main (String args[]) {
// arguments supply message and hostname of destination
Socket s = null;
try{
int serverPort = 7896;
s = new Socket(args[1], serverPort);
DataInputStream in = new DataInputStream( s.getInputStream());
DataOutputStream out =
new DataOutputStream( s.getOutputStream());
out.writeUTF(args[0]); // UTF is a string encoding see Sn 4.3
String data = in.readUTF();
System.out.println("Received: "+ data) ;
}catch (UnknownHostException e){
System.out.println("Sock:"+e.getMessage());
}catch (EOFException e){System.out.println("EOF:"+e.getMessage());
}catch (IOException e){System.out.println("IO:"+e.getMessage());}
}finally {if(s!=null) try {s.close();}catch (IOException
e){System.out.println("close:"+e.getMessage());}}
}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.6
TCP server makes a connection for each client and then echoes the client’s request
import java.net.*;
import java.io.*;
public class TCPServer {
public static void main (String args[]) {
try{
int serverPort = 7896;
ServerSocket listenSocket = new ServerSocket(serverPort);
while(true) {
Socket clientSocket = listenSocket.accept();
Connection c = new Connection(clientSocket);
}
} catch(IOException e) {System.out.println("Listen :"+e.getMessage());}
}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.6 continued
Type Representation
sequence length (unsignedlong) followedby elements in order
stri ng length (unsignedlong) followedby characters in order (can also
can have widecharacters)
array array elements in order (no length specified because it is fixed)
struct in theorder of declaration of thecomponents
enumerated unsigned long (the values are specified by theorder declared)
union type tag followed by the selected member
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.8
CORBA CDR message
index in notes
sequence of bytes 4 bytes on representation
0–3 5 length of string
4–7 "Smit" ‘Smith’
8–11 "h___"
12–15 6 length of string
16–19 "Lond" ‘London’
20-23 "on__"
24–27 1984 unsigned long
The flattened form represents a Person struct with value: {‘Smith’, ‘London’, 1984}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.9
Indication of Java serialized form
The true serialized form contains additional type markers; h0 and h1 are handles
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.10 XML definition of the Person structure
<person id="123456789">
<name>Smith</name>
<place>London</place>
<year>1984</year>
<!-- a comment -->
</person >
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.11 Illustration of the use of a namespace in the Person structure
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.12 An XML schema for the Person structure
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.13
Representation of a remote object reference
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.14
Multicast peer joins a group and sends and receives datagrams
import java.net.*;
import java.io.*;
public class MulticastPeer{
public static void main(String args[]){
// args give message contents & destination multicast group (e.g. "228.5.6.7")
MulticastSocket s =null;
try {
InetAddress group = InetAddress.getByName(args[1]);
s = new MulticastSocket(6789);
s.joinGroup(group);
byte [] m = args[0].getBytes();
DatagramPacket messageOut =
new DatagramPacket(m, m.length, group, 6789);
s.send(messageOut);
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.14
continued
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 4.15
Types of overlay
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
19
Figure 4.16
Skype overlay architecture
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
20
Figure 4.17
An overview of point-to-point communication in MPI
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
21
Figure 4.18
Selected send operations in MPI
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
22
Chapter 5
Distributed Systems
Jeff McCrea
Overview
About Distribute Systems (What, When, & How)
Six Types of Distributed Systems
The IT Infrastructure
CLJ
CTQ
Distributed Systems
Architecture of Choice for today’s
Business
Key Definitions:
IT Architecture-
Architecture- blueprint that shows how a system, house,
vehicle, or product will look, and how its parts interrelate.
IT Infrastructure-
Infrastructure- actual implementation of the architecture,
specifically processes, software, databases, etc.
Slides for Chapter 8:
Distributed Objects and Components
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
2
Figure 8.2
IDL interfaces Shape and ShapeList
interface Shape { 3
long getVersion() ;
GraphicalObject getAllState() ; // returns state of the GraphicalObject
};
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.3
IDL module Whiteboard
module Whiteboard {
struct Rectangle{
...} ;
struct GraphicalObject {
...};
interface Shape {
...};
typedef sequence <Shape, 100> All;
interface ShapeList {
...};
};
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.4
IDL constructed types – 1
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.4
IDL constructed types – 2
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.5
The main components of the CORBA architecture
server
client implementation interface
repository repository object skeleton
adapter
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.6
CORBA Services (1)
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
8
Figure 8.6
CORBA Services (continued)
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
9
Figure 8.7
Java interfaces generated by idlj from CORBA interface ShapeList
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.8
ShapeListServant class of the Java server program for CORBA interface ShapeList
import org.omg.CORBA.*;
import org.omg.PortableServer.POA;
class ShapeListServant extends ShapeListPOA {
private POA theRootpoa;
private Shape theList[];
private int version;
private static int n=0;
public ShapeListServant(POA rootpoa){
theRootpoa = rootpoa;
// initialize the other instance variables
}
// continued on the next slide
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.8 continued
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.9
Java class ShapeListServer
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.10
Java client program for CORBA interfaces Shape and ShapeList
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
public class ShapeListClient{
public static void main(String args[]) {
try{
ORB orb = ORB.init(args, null); 1
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);
NameComponent nc = new NameComponent("ShapeList", "");
NameComponent path [] = { nc };
ShapeList shapeListRef =
ShapeListHelper.narrow(ncRef.resolve(path)); 2
Shape[] sList = shapeListRef.allShapes(); 3
GraphicalObject g = sList[0].getAllState(); 4
} catch(org.omg.CORBA.SystemException e) {...}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 8.11
An example software architecture
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
15
Figure 8.12
The structure of a container
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
16
Figure 8.13
Application servers
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
17
Figure 8.14
Transaction attributes in EJB.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
18
Figure 8.15
Invocation contexts in EJB
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
19
Figure 8.16
An example component configuration in Fractal
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
20
Figure 8.17
The structure of a Fractal component
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
21
Figure 8.18
Component and ContentController Interfaces in Fractal
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
22
Slides for Chapter 9
Web Services
Applications
Directory service Security Choreography
SOAP
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.2
The ‘travel agent service’ combines other web services
flight booking a
flight booking
b
Travel Agent
Client
Service hire car booking a
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.3
SOAP message in an envelope
envelope
header
body
body element body element
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.4
Example of a simple request without headers
m:exchange
xmlns:m = namespace URI of the service description
m:arg1 m:arg2
Hello World
In this figure and the next, each XML element is represented by a shaded
box with its name in italic followed by any attributes and its content
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.5
Example of a reply corresponding to the request in Figure 9.4
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.6
Use of HTTP POST Request in SOAP client-server communication
header
HTTP
Host: www.cdk4.net
Content-Type: application/soap+xml
Action: http://www.cdk4.net/examples/stringer#exchange action
message
<env:header> </env:header>
envelope
<env:body> </env:body>
Soap
</env:Envelope>
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.7
Java web service interface ShapeList
import java.rmi.*;
public interface ShapeList extends Remote {
int newShape(GraphicalObject g) throws
RemoteException; 1
int numberOfShapes()throws RemoteException;
int getVersion() throws RemoteException;
int getGOVersion(int i)throws RemoteException;
GraphicalObject getAllState(int i) throws RemoteException;
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.8
Java implementation of the ShapeList server
import java.util.Vector;
public class ShapeListImpl implements ShapeList {
private Vector theList = new Vector();
private int version = 0;
private Vector theVersions = new Vector();
public int newShape(GraphicalObject g) throws RemoteException{
version++;
theList.addElement(g);
theVersions.addElement(new Integer(version));
return theList.size();
}
public int numberOfShapes(){}
public int getVersion() {}
public int getGOVersion(int i){ }
public GraphicalObject getAllState(int i) {}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.9
Java implementation of the ShapeList client
package staticstub;
import javax.xml.rpc.Stub;
public class ShapeListClient {
public static void main(String[] args) { /* pass URL of service */
try {
Stub proxy = createProxy(); 1
proxy._setProperty 2
(javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY, args[0]);
ShapeList aShapeList = (ShapeList)proxy; 3
GraphicalObject g = aShapeList.getAllState(0); 4
} catch (Exception ex) { ex.printStackTrace(); }
}
private static Stub createProxy() { 5
return
(Stub) (new MyShapeListService_Impl().getShapeListPort()); 6
}
}
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.10
The main elements in a WSDL description
definitions
types message interface bindings services
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.11
WSDL request and reply messages for the newShape operation
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.12
Message exchange patterns for WSDL operations
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.13
WSDL operation newShape
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.14
SOAP binding and service definitions
binding service
name = ShapeListBinding name = "MyShapeListService"
type = tns:ShapeList
soap:binding transport = URI endpoint
for schemas for soap/http
style= "rpc" name = "ShapeListPort"
binding = "tns:ShapeListBinding"
operation
name= "newShape"
input soap:address
soap:body location = service URI
encoding, namespace
output
soap:body
encoding, namespace
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.15
The main UDDI data structures
businessEntity businessServices
human readable businessServices
information
businessServices bindingTemplate
about the publisher
human readable
bindingTemplate
information URL
about a bindingTemplate tModel
family of services information tModel
about the
URL
serviceinterfaces
service interfaces
tModel
key URL
key service descriptions
key
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.16
Algorithms required for XML signature
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.17
Algorithms required for encryption(in Figure 9.16 are also required)
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.18
Travel agent scenario
1. The client asks the travel agent service for information about a set of services; for example,
flights, car hire and hotel bookings.
2. The travel agent service collects prices and availability information and sends it to the client,
which chooses one of the following on behalf of the user:
(a) refine the query, possibly involving more providers to get more information, then repeat step
2;
(b) make reservations;
(c) quit.
3. The client requests a reservation and the travel agent service checks availability.
4. Either all are available;
or for services that are not available;
either alternatives are offered to the client who goes back to step 3;
or the client goes back to step 1.
5. Take deposit.
6. Give the client a reservation number as a confirmation.
7. During the period until the final payment, the client may modify or cancel reservations
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 9.19
A selection of Amazon Web Services
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Slides for Chapter 10:
Peer-to-Peer
Peer Systems
IPv4 is limited to 232 addressable nodes. The Peer-to-peer systems can address more obj
IPv6 name space is much more generenerous The GUID name space is very large and fla
(2128), but addresses in both versions
versi are (>2128), allowing it to be much more fully
hierarchically structured and much of the space occupied.
is pre-allocated according to administrative
requirements.
balancing Loads on routers are determin ed by network Object locations can be ra ndomized and he
topology and associated traffic patterns. traffic patterns are divorced from the netwo
topology.
rk dynamics IP routing tables are updated asy nchronously
n on Routing tables can be u pdated synchronous
ion/deletion of a best-efforts
efforts basis with time constants on the asynchronously with fractions of a second
s/nodes) order of 1 hour. delays.
tolerance Redundancy is designed into the IP network by Routes and object refer ences can be replica
its managers, ensuring toleran ce of a single n-fold, ensuring toleran ce of n failures of n
router or network co nnectivity failure. n-fold or connections.
replication is costly.
t identification Each IP address maps to exactly one target Messages can be rout ed to the nearest repli
node. a target object.
ty and anonymity Addressing is only secu re when all nodes are Security can be achiev ed even in environm
trusted. Anonymity for the owners of addresses with limited trust. A limited degree of
is not achievable. anonymity can be provided.
cated index
peers
A
D
bject:
BÕs routing knowledge CÕs routing knowledge
ode:
T) as implemented by the PAST API over Pastry
t(GUID, data)
e data is stored in replicas at all nodes responsible for the
ject identified by GUID.
move(GUID)
letes all references to GUID and the associated data.
ue = get(GUID)
e data associated with GUID is retrieved from one of the
des responsible it.
routing (DOLR) as implemented by Tapestry
blish(GUID )
ID can be computed from the object (or some part of it,
. its name). This function makes the node performing a
blish operation the host for the object corresponding to
ID.
publish(GUID)
kes the object corresponding to GUID inaccessible.
ndToObj(msg, GUID, [n])
lowing the object-oriented
oriented paradigm, an invocation
ssage is sent to an object in order to access it. This
ght be a request to open a TCP connection for data
nsfer or to return a message containing all or part of the
ect’s state. The final optional parameter [n], if present,
uests the delivery of the same message to n replicas of
Rowstron and Druschel [2001]
D13DA3
A1FC
re 10.7: First four rows of a Pastry routing table
g table is located at a node whose GUID begins 65A1. Digits are in hexadecimal. The n’s represent [GUID, IP address] pairs specifying the ne
aken by messages addressed to GUIDs that match each given prefix. Grey-
Grey shaded entries indicate that the prefix matches the current GUID u
value of p:: the next row down or the leaf set should be examined to find a route. Although there are a maximum of 128 rows in the table,
table only
ws will be populated on average in a network with N active nodes.
Routing a message from node 65A1FC to D46A1C.
With the aid of a well-populated routing table the
0 FFFFF....F (2128 -1) message can be delivered in ~ log16 (N ) hops.
D471F1
D467C4
D46A1C D462BA
D4213F
D13DA3
A1FC
re 10.9: Pastry’s routing algorithm
43FE 437A
ublish path
4228
4361
cation mapping 4378
PhilÕs 4664
for 4378
Books
4B4F 4A6D
outes actually
n by send(4378) E791 4378
57EC AA93 PhilÕ
Book
plicas of the file PhilÕs Books(G=4378) are hosted at nodes 4228 and AA93. Node 4377 is the root node
object 4378. The Tapestry routings shown are some of the entries in routing tables. The publish paths show
es followed by the publish messages laying down cached location mappings for object 4378. The location
ppings are subsequently used to route messages sent to 4378.
re 10.11: Structured versus unstructured peer-to-peer
peer systems
10.12: Key elements in the Gnutella protocol
re 10.13: Storage organization of OceanStore objects
AGUID
VGUID of current
certificate
version
version i+1
VGUID of
root block
data blocks d1 d2 d3 d4 d5
i+1 has been updated in blocks d1,
d3. The certificate and the root
VGUID of version i-1
nclude some metadata not shown.
re 10.14: Types of identifier used in OceanStore
DHash serve
Application Application
DHash serve
DHash serve
Modifled
NFS Client
module DHash serve
Kernel
Slides for Chapter 12:
Distributed File Systems
File length
Creation timestamp
Read timestamp
Write timestamp
Attribute timestamp
Reference count
Owner
File type
Access control list
X file system operations
filedes = open(name, mode) Opens an existing file with the given name.
filedes = creat(name, mode) Creates a new file with the given name.
Both operations deliver a file descriptor referencing the open
file. The mode is read, write or both.
status = close(filedes) Closes the open file filedes.
count = read(filedes, buffer, n) Transfers n bytes from the file referenced by filedes to buffer.
count = write(filedes, buffer, n) Transfers n bytes to the file referenced by filedes from buffer.
Both operations deliver the number of bytes actually transferred
and advance the read-write
read pointer.
pos = lseek(filedes, offset, Moves the read--write pointer to offset (relative or absolute,
whence) depending on whence).
whence
status = unlink(name) Removes the file name from the directory structure. If the file
has no other names, it is deleted.
status = link(name1, name2) Adds a new name (name2) ( for a file (name1).
status = stat(name, buffer) Gets the file attributes for file name into buffer.
service architecture
Client module
file service operations
ookup(Dir, Name) -> FileId Locates the text name in the directory and returns the
— throwsNotFound relevant UFID. If Name is not in the directory, throws an
exception.
ddName(Dir, Name, FileId) If Name is not in the directory, adds (Name,
( File) to the
— throwsNameDuplicate directory and updates the file’s attribute record.
If Name is already in the directory: throws an exception.
UnName(Dir, Name) If Name is in the directory: the entry containing Name is
— throwsNotFound removed from the directory.
If Name is not in the directory: throws an exception.
GetNames(Dir, Pattern) -> NameSeqReturns
Returns all the text names in the directory that match the
regular expression Pattern.
architecture
Application Application
program program
UNIX
m calls
UNIX kernel
X kernel Virtual file system Virtual file system
Local Remote
file system
UNIX UNIX
NFS NFS
file file
Other
client server
system system
NFS
protocol
server operations (simplified) – 1
kup(dirfh, name) -> fh, Returns file handle and attributes for the file name in the
dirfh.
directory
ate(dirfh, name, attr) Creates a new file name in directory dirfh with attributes attr
newfh, and
returns the new file handle and
attr attributes.
ove(dirfh, name) Removes file name from directory
s dirfh.
tr(fh) -> Returns file attributes of file fh. (Similar to the UNIX stat
system
call.)
tr(fh, attr) -> Sets the attributes (mode, user id, group id, size, access time
modify time of a file). Setting the size to 0 truncates the
and
file.
(fh, offset, count) -> attr, Returns up to count bytes of data from a file starting at
offset.
Also returns the latest attributes of the
file.
(fh, offset, count, data) -> Writes count bytes of data to a file starting at offset.
Returns the
attributes of the file after the write has taken
place.
me(dirfh, name, todirfh, Changes the name of file name in directory dirfh to
me) -> toname into
directory .
status todirfh
newdirfh, newname, dirfh, Creates an entry newname in the directory newdirfh which
e) -> refers
file to in the directory
name
status
server operations (simplified) – 2
Remote Remote
people students x staff users
mount mount
te: The file system mounted at /usr/students in the client is actually the sub-tree
sub located at /export/pe
rver 1;
ibution of processes in the Andrew File System
Workstations Servers
User Venus
program
Vice
UNIX kernel
UNIX kernel
Venus
User Network
program
UNIX kernel
Vice
Venus
User
program UNIX kernel
UNIX kernel
name space seen by clients of AFS
Local Shared
/ (root)
bin
Symbolic
links
em call interception in AFS
Workstation
User Venus
program
UNIX file Non-local file
system calls operations
UNIX kernel
UNIX file system
Local
disk
ementation of file system calls in AFS
ch(fid) -> attr, Returns the attributes (status) and, optionally, the contents
a identified
of file by the fid and records a callback promise
e(fid, attr, on it.
Updates the attributes and (optionally) the contents of a
a) file.
specified
ate() -> Creates a new file and records a callback promise
move(fi on it. the specified
Deletes
Lock(fid, file.
Sets a lock on the specified file or directory. The mode
de) lock
of themay be shared or exclusive. Locks that are not
expire
removed after 30
easeLock(fi minutes.
Unlocks the specified file or
moveCallback(fi directory.
Informs server that a Venus process has flushed a file
cach
from its
akCallback(fid e.
This call is made by a Vice server to a Venus process. It
the callback promise on the relevant
cancels
file.
Slides for Chapter 13:
Name Services
URL
http://www.cdk5.net:8888/WebExamples/earth.html
http://www.cdk3.net:8888/WebExamples/earth.html
DNS lookup
Resource ID (IP number, port number, pathname)
Web server
Network address
2:60:8c:2:b0:5a
2:60:8c:2:b0:5a file
Socket
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.2
Iterative navigation
NS2
2
Name
1 NS1 servers
Client
3
NS3
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.3
Non-recursive and recursive server-controlled navigation
NS2 NS2
2 2
4 3
1 1
NS1 NS1
client client
4 3 5
NS3 NS3
Non-recursive Recursive
server-controlled server-controlled
A name server NS1 communicates with other name servers on behalf of a client
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.4
DNS name servers
ic.ac.uk
qmul.ac.uk
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.5
DNS resource records
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.6
DNS zone data records
dcs 1D IN NS dns0.dcs
dns0.dcs 1D IN A 138.37.88.249
dcs 1D IN NS dns1.dcs
dns1.dcs 1D IN A 138.37.94.248
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.7
GNS directory tree and value tree for user Peter.Smith
DI: 437 AC
Peter.Smith
mailboxes password
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.8
Merging trees under a new root
UK FR US CANADA
DI: 543 DI: 574 DI: 732 DI: 457
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.9
Restructuring the directory
DI: 633(WORLD)
Well-known directories:
#599 = #633/EC
#642 = #633/NORTH AMERICA EC NORTH AMERICA
US US CANADA
DI: 543 UK FR DI: 574 DI: 732 DI: 457
#633/EC/US
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.10
X.500 service architecture
DUA DSA
DSA
DSA
DUA
DSA
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.11
Part of the X.500 Directory Information Tree
... Alice Flintstone (person) ... Pat King (person) James Healey (person) Janet Papworth (person) ...
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 13.12
An X.500 DIB Entry
info
Alice Flintstone, Departmental Staff, Department of Computer Science,
University of Gormenghast, GB
commonName uid
Alice.L.Flintstone alf
Alice.Flintstone
Alice Flintstone mail
A. Flintstone
[email protected]
surname [email protected]
Flintstone roomNumber
telephoneNumber Z42
+44 986 33 4604 userClass
Research Fellow
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Slides for Chapter 15:
Coordination and Agreement
Crashed
router
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.2
Server managing a mutual exclusion token for a set of processes
Server
Queue of
requests
4
2
3. Grant
token
1. Request
token
2. Release p4
p token
1
p2 p
3
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.3
A ring of processes transferring a mutual exclusion token
p
1 p
2
p
n
p
3
p
4
Token
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.4
Ricart and Agrawala’s algorithm
On initialization
state := RELEASED;
To enter the section
state := WANTED;
Multicast request to all processes; request processing deferred here
T := request’s timestamp;
Wait until (number of replies received = (N – 1));
state := HELD;
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.5
Multicast synchronization
41
41 p
3
p Reply
1
Reply 34
Reply
34
41
p 34
2
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.6
Maekawa’s algorithm – part 1
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.7
A ring-based election in progress
3
17
24
15
28 24
election election C
Stage 2
answer
p1 p p p
2 3 4
timeout
Stage 3
p p p p
1 2 3 4
Eventually.....
coordinator
C
Stage 4
p p p p
1 2 3 4
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.9
Reliable multicast algorithm
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.10
The hold-back queue for arriving multicast messages
Message
processing
deliver
Hold-back
queue Delivery queue
When delivery
guarantees are
met
Incoming
messages
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.11
Total, FIFO and causal ordering of multicast messages
T1
Notice the consistent T2
C1
C2
C3
P1 P2 P3
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.12
Display from bulletin board program
Bulletin board:os.interesting
Item From Subject
23 A.Hanlon Mach
24 G.Joseph Microkernels
25 A.Hanlon Re: Microkernels
26 T.L’Heureux RPC performance
27 M.Walker Re: Mach
end
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.13
Total ordering using a sequencer
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.14
The ISIS algorithm for total ordering
P2
1 Message
3
22 P4
1
3 Agreed Seq
1
2 P1
3
P3
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.15
Causal ordering using vector timestamps
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.16
Consensus for three processes
d1 :=proceed d2 :=proceed
P1 P2
v1 =proceed v2=proceed
1
Consensus algorithm
v3=abort
P3 (crashes)
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.17
Consensus in a synchronous system
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.18
Three Byzantine generals
p1 (Commander) p1 (Commander)
2:1:v 2:1:w
p2 p3 p2 p3
3:1:u 3:1:x
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 15.19
Four Byzantine generals
p1 (Commander) p1 (Commander)
p4 p4
Faulty processes are shown coloured
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Slides for Chapter 19:
Mobile and Ubiquitous Computing
User’s ID
3. Display responds Hello Roy 1. User enters room wearing
to user active badge
Infrared
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.2
Examples of pre-configured versus spontaneous association
Pre-configured Spontaneous
Human-driven:
Service-driven: web browser and web servers
email client and server
Data-driven:
P2P file-sharing applications
Physically-driven:
mobile and ubiquitous systems
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.3
The interface to a discovery service
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.4
Service discovery in Jini
admin
Lookup Client
service
4. Use printing Network 2. Here I am: .....
service admin, finance
3. Request Lookup
Corporate Printing ‘printing’ service
infoservice service
finance
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.5
The IdentityPresence widget class of the Context Toolkit
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.6
A PersonFinder widget constructed using IdentityPresence widgets
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.7
Directed diffusion
sink
sink sink
source
source source
source
source source
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.8 Some location-sensing technologies
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.10
Secure device association using physical contact
W
K
1. Fresh secret key K exchanged by physical contact 2. Devices communicate using secure channel
constructed over W using K
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.11
Detecting a man-in-the-middle
hash=0x6F9E...
K2
2. User(s) compare hashes of keys displayed on
1. Keys exchanged by devices – by sight or with an integrated imaging
Man-in-the-middle device. Since they differ, they conclude that
Diffie-Hellman
protocol there is a man-in-the-middle or that accidental
K1 mis-association has occurred
hash=0xD57C...
Device displaying hash of key
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.12
Cooltown layers
Web presences
Physical hyperlinks
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 19.13
Capturing and printing the web presence of a painting
painting
beacon
PDA or phone
<link title=“Chop Suey” href= “http..”> <link title=“Chop Suey” href= “http..”>
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Slides for Chapter 20:
Distributed Multimedia Systems
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.2
Characteristics of typical multimedia streams
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.3
Typical infrastructure components for multimedia applications
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.4
QoS specifications for components of the application shown in Figure 20.3
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.5
The QoS manager’s task
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.6
Traffic shaping algorithms
Token generator
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.7
The RFC 1363 Flow Spec
Protocol version
Maximum transmission unit
Token bucket rate
Bandwidth:
Token bucket size
Maximum transmission rate
Minimum delay noticed
Delay:
Maximum delay variation
Loss sensitivity
Loss: Burst loss sensitivity
Loss interval
Quality of guarantee
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.8
Filtering
Source
Targets
High bandwidth
Medium bandwidth
Low bandwidth
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.9
Tiger video file server hardware configuration
Controller
low-bandwidth network
Start/Stop
video distribution to clients requests from clients
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.10
Tiger schedule
2 1 block service 0
block play time T time t
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.11
BitTorrent Terminology
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.12
Approaches to real-time video streaming
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 20.13
An example tree in ESM
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012