Your SlideShare is downloading. ×
  • Like
Distributed Objects: CORBA/Java RMI
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Distributed Objects: CORBA/Java RMI

  • 1,414 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,414
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
123
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ECE 566- Parallel and Distributed Technology Distributed Objects: CORBA/Java RMI Manish Parashar parashar@ece.rutgers.edu Department of Electrical & Computer Engineering Rutgers University
  • 2. Distributed Objects: Goals • Let any object reside anywhere in the network, and allow an application to interact with these objects exactly in the same way as they do with a local objects • Provide the ability to construct an object on one host and transmit it to another host • Enable an agent on one host to create a new object on another host. Lecture 14 & 15 ECE 566 - Parallel and Distributed 2 Computing
  • 3. Distributed Objects: Operations • Locate remote object • Creating remote objects • Invoke methods on remote objects • Obtain results from a remote method invocation • Delete remote object Lecture 14 & 15 ECE 566 - Parallel and Distributed 3 Computing
  • 4. Distributed Objects: Properties • Object locator • Communication – data type – data representation – synchronous/asynchronous • State Persistence • Security • Reliability/Availability • Load Balancing Lecture 14 & 15 ECE 566 - Parallel and Distributed 4 Computing
  • 5. Java RMI • Components – Object Interfaces • extends the Remote interface – Server side implementation of the interface • extends the java.rmi.server.UnicastRemoteObject – RMI registry – rmic compiler for stub and skeleton generation • Others Issues – Serialization – Exception handling – Constructors Lecture 14 & 15 ECE 566 - Parallel and Distributed 5 Computing
  • 6. Java RMI: Object Interfaces import java.rmi.Remote; import java.rmi.RemoteException; public interface DataRetrieval extends Remote { String GetData() throws RemoteException; } Lecture 14 & 15 ECE 566 - Parallel and Distributed 6 Computing
  • 7. Java RMI: Server Implementation import DataRetrieval; import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.RMISecurityManager; import java.rmi.server.UnicastRemoteObject; public String GetData() import java.net.InetAddress; throws RemoteException { String client = null; public class DataRetrievalImpl extends UnicastRemoteObject try implements DataRetrieval { client = getClientHost(); { } private int call; catch(Exception e) { System.out.println(quot;exception: quot; + e); public DataRetrievalImpl() client = quot;unknownquot;; throws RemoteException } { call++; super(); System.out.println(client + quot; call = 0; request, data is:quot; + call); } return quot;data is:quot; + call; } Lecture 14 & 15 ECE 566 - Parallel and Distributed 7 Computing
  • 8. Java RMI: Server Implementation public static void main(String args[]) { System.out.println(quot;Started server...quot;); try { InetAddress host = InetAddress.getLocalHost(); String name = quot;//quot; + host.getHostName() + quot;/DataRetrievalquot;; System.out.println(quot;binding to quot; + name); System.setSecurityManager(new RMISecurityManager()); DataRetrievalImpl data = new DataRetrievalImpl(); Naming.rebind(name,data); } catch(Exception e) { System.out.println(quot;exception: quot; + e); } } } Lecture 14 & 15 ECE 566 - Parallel and Distributed 8 Computing
  • 9. Java RMI: Client import DataRetrieval; import java.rmi.Naming; public class DataRetrievalClient { public static void main(String[] args) { if (args.length != 1) { System.out.println(quot;Please give server namequot;); return; } try { DataRetrieval data = null; String name = quot;rmi://quot; + args[0] + quot;/DataRetrievalquot;; data = (DataRetrieval)Naming.lookup(name); String reply; reply = data.GetData(); System.out.println(quot;Got quot;+reply); } catch(Exception e) { System.out.println(quot;Exception quot;+e); } System.exit(0); } Lecture 14 & 15 ECE 566 - Parallel and Distributed 9 } Computing
  • 10. Java RMI: Registry/rmic • RMI registry serves the role of the object manager • % rmiregistry • % rmiregistry <port #> // default is 1099 • Addressing a remote object MyObject obj1 = (MyObject)Naming.lookup(“rmi://objecthost.myorg.com/Object1); MyObject obj1 = (MyObject)Naming.lookup(“rmi://objecthost.myorg.com:2099/Object1); • rmic compiler • rmic serversideimpl • generates client stub and server skeleton • bootstraps off java bytecode Lecture 14 & 15 ECE 566 - Parallel and Distributed 10 Computing
  • 11. CORBA • Object Request Broker (ORB) – enable clients and server objects to interact – provide servers • naming services, security services, … • Interface Definition Language (IDL) • Dynamic Invocation Interface (DII) – Interface repository • Internet Inter-Orb Protocol (IIOP) Lecture 14 & 15 ECE 566 - Parallel and Distributed 11 Computing
  • 12. CORBA Solver • Generate IDL description • Generate client stub • idltojava -f client Solver.idl • generates Base Interface, holder classes & client stubs package DCJ.examples; public class _SolverStub extends org.omg.CORBA.portable.ObjectImpl implements DCJ.examples.Solver { package DCJ.examples; public class _ProblemSetStub extends org.omg.CORBA.portable.ObjectImpl implements DCJ.examples.ProblemSet { Lecture 14 & 15 ECE 566 - Parallel and Distributed 12 Computing
  • 13. CORBA Solver • Generate server skeleton and implementation • idltojava -f server Solver.idl • generates abstract base class for remote implementation package DCJ.examples; public abstract class _ProblemSetImplBase extends org.omg.CORBA.portable.ObjectImpl implements DCJ.examples.ProblemSet, org.omg.CORBA.portable.Skeleton { package DCJ.examples; public abstract class _SolverImplBase extends org.omg.CORBA.portable.ObjectImpl implements DCJ.examples.Solver, org.omg.CORBA.portable.Skeleton { Lecture 14 & 15 ECE 566 - Parallel and Distributed 13 Computing
  • 14. CORBA Solver • Implement remote object • Implement client • Start name server • nameserve -ORBInitialport 1050 • Run Server • Run Client Lecture 14 & 15 ECE 566 - Parallel and Distributed 14 Computing