1 / 29

Common Object Request Broker Architecture (CORBA)

Common Object Request Broker Architecture (CORBA). By: Sunil Gopinath David Watkins. Introduction. What is the purpose / goals of CORBA? How to meet goals? Example Conclusion. What is the purpose / goals of CORBA?. Enable the building of plug and play component software environment

alvis
Download Presentation

Common Object Request Broker Architecture (CORBA)

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. Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins

  2. Introduction • What is the purpose / goals of CORBA? • How to meet goals? • Example • Conclusion

  3. What is the purpose / goals of CORBA? • Enable the building of plug and play component software environment • Enable the development of portable, object oriented, interoperable code that is hardware, operating system, network, and programming language independent

  4. How to meet goals? • Interface Definition Language (IDL) • Object Request Broker (ORB)

  5. Interface Definition Language (IDL) • Language Independence • Defines Object Interfaces • Hides underlying object implementation • Language mappings exist for C, C++, Java, Cobol, Smalltalk, and Ada

  6. Interface Definition Language (IDL) module <identifier> { interface <identifier> [:inheritance] { <type declarations>; <constant declarations>; <exception declarations>; <attribute declarations>; [<op_type>] <identifier>(<parameters>) [raises exception][context]; } } Defines a container (namespace) Defines a CORBA object Defines a method

  7. IDL Compiler IDL Definitions • Define objects using IDL • Run IDL file through IDL compiler • Compiler uses language mappings to generate programming language specific stubs and skeletons IDL Compiler Stubs Skeletons

  8. Object Request Broker (ORB) • What is it? • Architecture • Request Handling • Scenario • CORBA Services • CORBA Facilities

  9. What is it? • Implementation of CORBA specification • Middleware product • Conceptual Software Bus • Hides location and implementation details about objects Application Middleware OS Drivers Hardware

  10. Client Client Obj Impl Obj Impl IDL IDL IDL IDL ORB ORB TCP/IP TCP/IP OSI OSI ATM ATM IPX IPX Client / Object Interaction Network

  11. OBJ Ref ORB Architecture Interface Repository IDL Compiler Implementation Repository Client Object (servant) IDL Skeleton DSI IDL Stub DII ORB Interface Object Adapter ORB Core GIOP/IOOP

  12. Interface Repository Interface Repository • Database of object definitions • Contains metadata about each object • Allows for introspection • Allows clients to discover interfaces at run-time • Used in support of dynamic invocations Object Adapter

  13. IDL Compiler IDL Compiler • Compiles IDL definition into stubs and skeletons • Uses OMG specified language mappings to translate IDL into a language specific implementation Object Adapter

  14. Implementation Repository Implementation Repository • Contains information that allows the ORB to locate and activate object implementations • Provides information about the classes a server supports, the objects that are instantiated, and their IDs Object Adapter

  15. ORB Core • Provides mechanism for transparently communicating client requests to target object implementations • Makes client requests appear to be local procedure calls • GIOP – General Inter-ORB Protocol • IIOP – Internet Inter-ORB Protocol Object Adapter ORB Core GIOP/IOOP

  16. ORB Interface Client Object (servant) • Provides helper functions • Converting object references to strings • Creating argument lists for requests made through DII ORB Interface Object Adapter

  17. Static invocation interface (SII) Marshals application data into a common packet-level representation Network byte order (little-endian or big- endian) Size of data types IDL Stub Client IDL Stub

  18. IDL Skeleton • Demarshals the packet-level representation back into typed data that is meaningful to an application • Network byte order (little-endian or big- endian) • Size of data types Object (servant) IDL Skeleton

  19. Dynamic Invocation Interface • Dynamically issue requests to objects without requiring IDL stubs to be linked in • Clients discover interfaces at run-time and learn how to call them • Steps: • Obtain interface name • Obtain method description (from interface repository) • Create argument list • Create request • Invoke request Client DII Object Adapter

  20. Dynamic Skeleton Interface • Server side analogue to DII • Allows an ORB to deliver requests to an object implementation that does not have compile-time knowledge of the type of object it is implementing Object (servant) DSI Object Adapter

  21. Object Adapter • Accept requests for service on behalf of the server’s objects • Demultiplexes requests to the correct servant • Dispatches the appropriate operation upcall on the servant • Registers classes it supports and their run-time instances with the implementation repository • Portable Object Adapter (POA) • policies control object behavior (ie. LifespanPolicy) • Instance of the adapter design pattern Object (servant) IDL Skeleton DSI Object Adapter

  22. OBJ Ref Object Reference Client Object (servant) • Interoperable Object Reference (IOR) • Uniquely identifies each object • Contents • Type Name (repository ID) • Protocol and Address Details • Object Key (object adaptor name, object name) Object Adapter

  23. POA POA POA Request Handling Server Application Incoming Request ORB Servants

  24. OBJ Ref IDL Skeleton DSI IDL Stub DII ORB Interface Object Adapter ORB Core GIOP/IOOP Scenario Interface Repository IDL Compiler Implementation Repository Client Object (servant)

  25. CORBA Services • Provide basic infrastructure functionality • Currently there are 15 defined services • Naming - maps human names to object references (White Pages) • Event - provides both a push and pull event model • Object Trader - discover objects based on the services they provide (Yellow Pages) • Transactions – allows distributed objects to participate in atomic transactions

  26. CORBA Facilities • Provide higher-level functionality at the application level • Provide standard components that can be used “off-the-shelf” • Two Categories • Horizontal – user interface, information management, systems management, and task management • Vertical – domain based, telecommunications, financial services

  27. Example

  28. Conclusion • Distributed object, component architecture • Real world examples of design patterns • TAO – freeware ORB • Adapter, Factory, Reactor, Strategy • Plugable Transports • CORBA Beans

  29. References • www.omg.org • www.cs.wustl.edu/~schmidt/corba.html • http://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm • Communications of the ACM, October 1998 • Jeri Edwards, Dan Harkey, and Robert Orfali. Instant CORBA. New York: Wiley Computer Publishing, 1997.

More Related