A Short Java RMI Tutorial Albert Guo [email_address]
Agenda Introducing RMI  The RMI classes and interfaces The General RMI Architecture Demo – build up 4 required classes Demo – compiling and running the Weather Server
Introducing RMI  An RMI application is often composed of two separate programs, a server and a client. The server creates remotes objects and makes references to those objects accessible. Then it waits for clients to invoke methods on the objects. The client gets remote references to remote objects in the server and invokes methods on those remote objects. Users use object as though it were a regular, local object Network connections happen automatically behind the scenes Java ‘serialization’ lets you pass complex data structures over the network without writing code to parse and reconstruct them
Introducing RMI (cont.)  A distributed object application has to handle the following properties: Locate remote objects Communicate with remote objects Load class bytecodes for objects that are passed as parameters or return values
Interfaces and Classes in the java.rmi package
The RMI classes and interfaces
The General RMI Architecture
Remote object interface implemenation
RMI Architecture
Runtime Architecture
Stub and Skeleton Package identifier of remote object Package method identifier Marshall parameters Send package to server skeleton Unmarshall parameters Calls return value or exception Marshall method return Send package to client stub Stub Operation Skeleton Operation
Demo – build up 4 required classes
Class Diagram – four required classes 1 2 3 4
The interface for remote object The remote interface must satisfy the following conditions: It must extend the interface Remote. Each remote method declaration in the remote interface must throw RemoteException
The remote object implementation The class must extend UnicastRemoteObject and implement the remote object interface The constructor should throw RemoteException
The remote object implementation
The RMI Server The server builds an object and register it with a particular URL Using Naming.bind(throw AlreadyBoundException if a previous binding exists) or Naming.rebuind (replace any previous bindings)
The RMI Client Lookup the object from the host using Naming.lookup, cast it to any appropriate type, then use it like a local object
The RMI Client
Demo – compiling and running the Weather Server
Compiling and running the Weather Server 1. generate the client stub and server Skelton 2. startup the RMI registry
Compiling and running the Weather Server 3. startup the server 4. start the client

A Short Java RMI Tutorial

  • 1.
    A Short JavaRMI Tutorial Albert Guo [email_address]
  • 2.
    Agenda Introducing RMI The RMI classes and interfaces The General RMI Architecture Demo – build up 4 required classes Demo – compiling and running the Weather Server
  • 3.
    Introducing RMI An RMI application is often composed of two separate programs, a server and a client. The server creates remotes objects and makes references to those objects accessible. Then it waits for clients to invoke methods on the objects. The client gets remote references to remote objects in the server and invokes methods on those remote objects. Users use object as though it were a regular, local object Network connections happen automatically behind the scenes Java ‘serialization’ lets you pass complex data structures over the network without writing code to parse and reconstruct them
  • 4.
    Introducing RMI (cont.) A distributed object application has to handle the following properties: Locate remote objects Communicate with remote objects Load class bytecodes for objects that are passed as parameters or return values
  • 5.
    Interfaces and Classesin the java.rmi package
  • 6.
    The RMI classesand interfaces
  • 7.
    The General RMIArchitecture
  • 8.
  • 9.
  • 10.
  • 11.
    Stub and SkeletonPackage identifier of remote object Package method identifier Marshall parameters Send package to server skeleton Unmarshall parameters Calls return value or exception Marshall method return Send package to client stub Stub Operation Skeleton Operation
  • 12.
    Demo – buildup 4 required classes
  • 13.
    Class Diagram –four required classes 1 2 3 4
  • 14.
    The interface forremote object The remote interface must satisfy the following conditions: It must extend the interface Remote. Each remote method declaration in the remote interface must throw RemoteException
  • 15.
    The remote objectimplementation The class must extend UnicastRemoteObject and implement the remote object interface The constructor should throw RemoteException
  • 16.
    The remote objectimplementation
  • 17.
    The RMI ServerThe server builds an object and register it with a particular URL Using Naming.bind(throw AlreadyBoundException if a previous binding exists) or Naming.rebuind (replace any previous bindings)
  • 18.
    The RMI ClientLookup the object from the host using Naming.lookup, cast it to any appropriate type, then use it like a local object
  • 19.
  • 20.
    Demo – compilingand running the Weather Server
  • 21.
    Compiling and runningthe Weather Server 1. generate the client stub and server Skelton 2. startup the RMI registry
  • 22.
    Compiling and runningthe Weather Server 3. startup the server 4. start the client