distributed systems
play

DISTRIBUTED SYSTEMS Practical Lab Lab 03 - Schedule 2 Discussion - PowerPoint PPT Presentation

1 DISTRIBUTED SYSTEMS Practical Lab Lab 03 - Schedule 2 Discussion of Homework 03 Part A Discussion of open issues regarding HW 03 Part B Introduction to RMI General overview Small example Overview on Homework 04


  1. 1 DISTRIBUTED SYSTEMS Practical Lab

  2. Lab 03 - Schedule 2  Discussion of Homework 03 – Part A  Discussion of open issues regarding HW 03 – Part B  Introduction to RMI  General overview  Small example  Overview on Homework 04

  3. Remote Method Invocation 3 A pragmatic Introduction

  4. RMI - Overview 4  Simple idea:  In an OO-program objects communicate via methods  For remote communication – why not allow an object to invoke a method of an object within another JVM  => Remote Method Invocation (RMI) JVM - A JVM - B Java Objects Java Objects Middelware RMI RMI UDP / TCP / ?

  5. Detailed Structure & Terminology 5 Client JVM Server JVM W X A B Y Objects Z marshalling/ unmarshalling Stub Skeleton B‘ B‘‘ RMI Transport Layer UDP/TCP/IP

  6. Creating an RMI application 6  Step 1) Define Remote Interface  Has to extend java.rmi.Remote (marker interface)  Every method has to throw a RemoteException  Only those methods are available remotely public interface Service extends Remote { public int increment(int value) throws RemoteException; }  Parameter can be:  Serializeable objects => will be serialized and transferred  Remote objects => remote reference / stub will be transferred

  7. Creating an RMI Server 7  Step 2) Implement the Remote Interface  Any class may implement the interface – no restrictions  Step 3) Export the remote object  Initializes the RMI Environment / Transport Layer  Application will not terminate while an object is exported  e.g. using UnicastRemoteObject.exportObject (…)  Step 4) publish the remote object within a registry  Optional step, depending on the use case  => see source code example

  8. The RMI Registry 8  Problem: how to obtain references for remote objects?  A) from remote services via RMI (most frequent case)  B) very first reference: RMI registry  RMI Registry - simple, centralized naming service  Essentially a map between names (strings) and stubs  Can be accessed using RMI (lookup, bind, …)  A remote reference to access a registry can be constructed using a hostname and a port number  Can be an independent process (rmiregistry) or embedded within a Java application (see example)  The RMI Registry is handled using the LocateRegistry utility class

  9. Creating an RMI Client 9  Step 1) Obtain a remote object reference  e.g. by using an RMI registry, LDAP , …  Step 2) Use the remote object within your application  Invoke methods on the remote object just like for local objects (stub implements the remote interface)  Remote object references may be maintained within data structures (sets, lists, maps, …)  References can be forwarded to other services via arguments  References can also be stored within a file (they are serializeable)

  10. RMI Applications 10  Not limited to a Client/Server architecture  Every peer might provide and use remote services  Remote references can be exchanged between peers  e.g. references may be used within routing tables  RMI only supports synchronous method invocations  Simply because Java is only supporting those  Usual means to circumvent this limitation may be applied

  11. Advanced Topics 11  Distributed Garbage Collection  Unused remote objects are detected and removed  Based on Leases with a long lease time  Dynamic Class Loading  Load code from a remote location on demand (e.g. for arguments)  Remote Object Activation  Create objects on client demand (no need to run them all the time)  Transport Layer and interaction with alternative middleware  Encryption using SSL, firwalls , proxies, …  Interaction with CORBA

  12. Further References 12  For a more extensive description see  The Java RMI tutorial:  http://download.oracle.com/javase/tutorial/rmi/  Java ist auch eine Insel – Chapter 19 (German)  http://openbook.galileocomputing.de/javainsel8/javainsel_ 19_001.htm  RMI Specification  http://download.oracle.com/javase/6/docs/platform/rmi/s pec/rmiTOC.html

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend