Organizational Communications and Distributed Object TechnologiesCORBAToday’s TopicsCORBA History and GoalsHistory and GoalsSlide 6CORBA RMICORBA ServicesThe Distributed Whiteboard Example in CORBAIDL Interfaces Shape and ShapeListThe “idltojava” toolPowerPoint PresentationJava Interface ShapeList Generated by idltojava from CORBA Interface ShapeListShapeListServant.java Written by a Java DeveloperShapeListServer.javaShapeListClient.javaCORBA Architecture (1)CORBA Architecture (2)CORBA Architecture (3)Naming Graph in CORBA Naming ServiceMy Summary195-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.Organizational Communications and Distributed Object TechnologiesLecture 13: CORBA295-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.CORBAChapter 20 Coulouris text395-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.Today’s Topics •CORBA History and goals•CORBA RMI•CORBA services•The Distributed Whiteboard Revisited495-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.CORBA History and Goals•Object Management Group Formed in 1989•Goals: -- OOP on distributed systems -- heterogeneous hardware -- heterogeneous OS -- different programming languages595-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.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 1996695-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.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 Protocol795-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.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 cancellations895-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.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 using the Two Phase Commit Protocol) -- Persistent Object Service (POS)995-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.The Distributed Whiteboard Example in CORBA1095-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.IDL Interfaces Shape and ShapeListstruct Rectangle{ // no class in IDL 1long width; long height;long x;long y;} ;struct GraphicalObject {2string type; Rectangle enclosing; boolean isFilled;};interface Shape { 3long getVersion() ;GraphicalObject getAllState() ; // returns state of the GraphicalObject};typedef sequence <Shape, 100> All; // All is a 100 element array 4interface ShapeList { 5exception FullException{ }; 6Shape newShape(in GraphicalObject g) raises (FullException); 7All allShapes(); // returns sequence of remote object references 8long 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 reference1195-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.The “idltojava” tool•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.1295-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.From IDL to Your Language of ChoiceThe OMG specifies a mapping from IDL to several different programming languages, including Java, C, C++, Lisp, Python, Smalltalk, COBOL, and Ada. When mapped, statements in the OMG IDL are translated to corresponding statements in the programming language of choice. From JDK DocumentationThe IDL and the IDL compiler give CORBA its interoperability. IDL IDL Compiler ProxyQuiz: How does this compare with Web Services?1395-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.Java Interface ShapeList Generated by idltojava from CORBA Interface ShapeListpublic interface ShapeList extends org.omg.CORBA.Object {Shape newShape(GraphicalObject g) throws ShapeListPackage.FullException;Shape[] allShapes();int getVersion();}1495-702 OCTMaster of Information System ManagementQuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture. ShapeListServant.java Written by a Java Developerimport org.omg.CORBA.*;class
View Full Document