Distributed Systems

Remote Invocation

Remote Invocation

Middleware Layers

Pros and Cons of RPC, RMI

Example Applications

Request-Reply Protocol

Request-Reply communication

Operations

Design issues

Design decisions

Exchange protocols

Different flavours of exchange protocols:

TCP vs UDP

Invocation semantics

Fault tolerance

Call Semantics

Transparency

HTTP: RR protocol

RPC

RPC Roles

RPC roles

Sun RPC

Remote Method Invocation

Similarities: RMI and RPC

Differences: RMI and RPC

Distributed Object Concepts

Architectures

Remote Objects

Remote/local invocations

Remote object and remote interface

Distributed Actions

Instantiation of remote objects

Garbage Collection

Exceptions

Implementation

RMI

RMI Software

Development

  1. definition of interface for remote objects: defined using supported mechanism of the particular RMI software
  2. compile interface: generate proxy, dispatcher, skeleton classes
  3. writing server: remote object classes are implemented and compiled with classes for dispatchers and skeletons. Server is also responsible for creating/initialising objects, and registering them with the binder.
  4. writing client: client programs implement invoking code and contain proxies for all remote classes. Binder used to lookup remote objects

Dynamic invocation

Server and client program

Factory Methods

Binder

Activation of Remote Objects

Persistent Object Stores

Object Location

Java RMI

Developing a Java RMI server:

  1. specify remote interface
  2. implement Servant class
  3. compile interface and servant classes
  4. generate skeleton and stub classes
  5. implement server
  6. compile server

Developing a Java RMI client:

  1. implement client program
  2. compile client program

Java RMI: Distributed Garbage Collection


Edit this page.