Professional Documents
Culture Documents
Chapter 05
Chapter 05
Figure 5.1
Middleware layers
Applications
Operating System
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
1
Topics
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
2
The Object Model
Distributed Objects
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
3
Figure 5.3
Remote and local method invocations
remote local C
local E
invocation invocation
remote
invocation invocation F
B local
A
invocation D
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
4
Figure 5.2
CORBA IDL example
// In file Person.idl
struct Person {
string name;
string place;
long year;
};
interface PersonList {
readonly attribute string listname;
void addPerson(in Person p) ;
void getPerson(in string name, out Person p);
long number();
};
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Figure 5.4
A remote object and its remote interface
remoteobject
Data
remote
interface
m1 implementation m4
{ m2
m3 of methods
m5
m6
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
5
Figure 5.5 Instantiation of remote objects
L
C remote remote K
instantiate instantiate
invocation invocation
M N
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Actions
After invocation request received, an action is initiated and
may result further invocations on other objects
Remote GC
Reclaim the unused space
Cooperation between existing local GCs and a coordinator
Exceptions
Errors may occur and raise exceptions
Client programs need to be able to handle exceptions,
e.g. C++
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
6
Design Issues
Invocation semantics
Local: exact once
Remote: maybe, at-least-once, at-most-once
Transparency
Should local and remote invocations have the same
syntax?
Remote invocations may have many failures that local
invocations don’t have
The difference should be revealed in remote interfaces
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Figure 5.6
Invocation semantics
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
7
Figure 5.7
The role of proxy and skeleton in remote method invocation
client server
remote
object A proxy for B skeleton object B
Request & dispatcher
for B’s class
Reply
servant
Remote Communication Communication Remote reference
reference module module module module
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Implementation
8
Implementation (con’t)
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Figure 5.8 Role of client and server stub procedures in RPC in the context of
a procedural language
Request
Reply
client stub server stub
procedure procedure
client service
program Communication Communication procedure
module module dispatcher
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
9
Distributed Garbage Collection
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
10
Figure 5.10
Dealing room system
Notification Information
provider Notification
Notification
Notification
Notification
Dealer’s computer Dealer’s computer
Notification
Information
provider
Notification
Dealer Notification
Dealer
External
source
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
Figure 5.11
Architecture for distributed event notification
Event service
object of interest subscriber
1. notification
2. notification notification
3. notification
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
11
Distributed Event Notification
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
12
Distributed Event Notification (con’t)
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
© Pearson Education 2005
13