1 / 18

Organizational Communications and Distributed Object Technologies

Organizational Communications and Distributed Object Technologies. Lecture 11: CORBA. CORBA. Chapter 20 Coulouris text. Today’s Topics. CORBA History and goals CORBA RMI CORBA services The Distributed Whiteboard Revisited. CORBA History and Goals. Object Management Group Formed in 1989

artie
Download Presentation

Organizational Communications and Distributed Object Technologies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Organizational Communications and Distributed Object Technologies Lecture 11: CORBA Master of Information System Management

  2. CORBA Chapter 20 Coulouris text Master of Information System Management

  3. Today’s Topics • CORBA History and goals • CORBA RMI • CORBA services • The Distributed Whiteboard Revisited Master of Information System Management

  4. CORBA History and Goals • Object Management Group Formed in 1989 • Goals: -- OOP on distributed systems -- heterogeneous hardware -- heterogeneous OS -- different programming languages Master of Information System Management

  5. History and Goals • OMG Introduced the Object Request Broker (ORB) • The role of the ORB is to help a client find an object, activate the object if necessary, and call a method on the object. • Common Object Request Broker Architecture (CORBA) agreed to by a group of companies in 1991 • CORBA 2.0 specification released in 1996 Master of Information System Management

  6. History and Goals • CORBA 2.0 specification defined standards for different implementations of CORBA to communicate with one another • These standards are called the General Inter-ORB protocol (GIOP) and may run over various transports • GIOP over TCP/IP is called the Internet Inter-ORB Protocol Master of Information System Management

  7. CORBA RMI • Main components: -- An Interface Definition language (IDL) that promotes the use of different programming languages, stubs are generated in the client’s language and skeletons are generated in the server’s language -- An architecture -- GIOP defines an external data representation (CDR) as well as message formats and message types -- Message types include request and reply as well as location requests, errors, and request cancellations Master of Information System Management

  8. CORBA Services • A set of generic services that can be used for distributed application: -- Naming Service (location by name) -- Trading Service (location by attribute - directory service) -- Event Service -- Security Service (authentication, ACL’s, auditing, non- repudiation) -- Transaction Service (begin, commit, rollback a series of RMI calls ) -- Persistent Object Service (POS) Master of Information System Management

  9. The Distributed Whiteboard Example in CORBA Master of Information System Management

  10. IDL interfaces Shape and ShapeList struct Rectangle{ // no class in IDL 1 long width; long height; long x; long y; } ; struct GraphicalObject { 2 string type; Rectangle enclosing; boolean isFilled; }; interface Shape { 3 long getVersion() ; GraphicalObject getAllState() ; // returns state of the GraphicalObject }; typedef sequence <Shape, 100> All; // All is a 100 element array 4 interface ShapeList { 5 exception FullException{ }; 6 Shape newShape(in GraphicalObject g) raises (FullException); 7 All allShapes(); // returns sequence of remote object references 8 long getVersion() ; // parameters are in, out, or both }; // parameters may be primitive, struct or array and // are passed by value // parameters whose type is an IDL interface // is passed by remote reference Master of Information System Management

  11. idltojava • Run idltojava on the above interface • The command idlj is found in j2sdk1.4.2\bin • The Java 2 Platform, Standard Edition, v1.4, provides an Object Request Broker (ORB) runtime component • The JDK documentation states that its Java ORB has not been tested with ORB’s written in other languages • JDK 1.4 provides an Orb class with a pluggable architecture Master of Information System Management

  12. From the JDK Doc OMG specifies a mapping from IDL to several different programming languages, including Java, C, C++, Lisp, Python, Smalltalk, COBOL, and Ada. When mapped, each statement in OMG IDL is translated to a corresponding statement in the programming language of choice. Master of Information System Management

  13. Java interface ShapeList generated by idltojava from CORBA interface ShapeList public interface ShapeList extends org.omg.CORBA.Object { Shape newShape(GraphicalObject g) throws ShapeListPackage.FullException; Shape[] allShapes(); int getVersion(); } Master of Information System Management

  14. ShapeListServant class from CORBA interface ShapeList import org.omg.CORBA.*; class ShapeListServant extends _ShapeListImplBase { ORB theOrb; private Shape theList[]; private int version; private static int n=0; public ShapeListServant(ORB orb){ theOrb = orb; // initialize the other instance variables } public Shape newShape(GraphicalObject g) throws ShapeListPackage.FullException { 1 version++; Shape s = new ShapeServant( g, version); if(n >=100) throw new ShapeListPackage.FullException(); theList[n++] = s; 2 theOrb.connect(s); return s; } public Shape[] allShapes(){ ... } public int getVersion() { ... } } Master of Information System Management

  15. Java class ShapeListServer import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class ShapeListServer { public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); 1 ShapeListServant shapeRef = new ShapeListServant(orb); 2 orb.connect(shapeRef); 3 org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); 4 NamingContext ncRef = NamingContextHelper.narrow(objRef); NameComponent nc = new NameComponent("ShapeList", ""); 5 NameComponent path[] = {nc}; 6 ncRef.rebind(path, shapeRef); 7 java.lang.Object sync = new java.lang.Object(); synchronized (sync) { sync.wait();} } catch (Exception e) { ... } } } Master of Information System Management

  16. Java client program for CORBA interfaces Shape and ShapeList import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class ShapeListClient{ public static void main(String args[]) { try{ ORB orb = ORB.init(args, null); 1 org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); NamingContext ncRef = NamingContextHelper.narrow(objRef); NameComponent nc = new NameComponent("ShapeList", ""); NameComponent path [] = { nc }; ShapeList shapeListRef = ShapeListHelper.narrow(ncRef.resolve(path)); 2 Shape[] sList = shapeListRef.allShapes(); 3 GraphicalObject g = sList[0].getAllState(); 4 } catch(org.omg.CORBA.SystemException e) {...} } Master of Information System Management

  17. server client implementation interface repository repository skeleton object adapter Request ORB client proxy Servant ORB program for A core A core Reply or dynamic invocation or dynamic skeleton The main components of the CORBA architecture Master of Information System Management

  18. Naming graph in CORBA Naming Service initial naming context initial naming context initial naming context XX B ShapeList V P C T D E S R Q U Master of Information System Management

More Related