1 / 19

CORBA

CORBA. Alegria Baquero. Introduction. CORBA  C ommon O bject R equest B roker A rchitecture A project of Object Management Group (OMG) CORBA is an OO distributed communication middleware Mediates the communication between distributed objects

wilmer
Download Presentation

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. CORBA Alegria Baquero

  2. Introduction • CORBA  Common Object Request Broker Architecture • A project of Object Management Group (OMG) • CORBA is an OO distributed communication middleware • Mediates the communication between distributed objects • ORB  the object-oriented version of a RPC

  3. What is CORBA for? • Invoking methods on objects in a local or remote host (in the same or in different machines) • Make autonomous applications communicate with each other • Connects objects across a network • Objects can live on different platforms (OS)

  4. CORBA and component heterogeneity • Objects can be written in different languages • Mappings available for many languages

  5. What are CORBA’s strengths? • Simplifies programming of distributed systems • Can support a large number of clients invoking an object method • Location transparency • It is not necessary to know in what language an object or CORBA service is written

  6. What are CORBA’s strengths? • Easy integration with other technologies (e.g. legacy systems) • Wide platform and language support • Scalability  able to manage an unlimited number of objects • Efficient transmission over the network by converting programming language to a binary buffer

  7. CORBA in more detail • No strict differentiation between client and server. A computer can be both client and server. • Client  calls object; Server  contains object • Every object instance has a unique reference to be able to communicate with it. • IOR (Interoperable Object Reference)  a common format for object references exchanged over IIOP

  8. CORBA in more detail • It a synchronous way of communication • CORBA has a collection of services (libraries) that provide functionality to extend basic CORBA • Uses the Internet Inter-ORB Protocol (IIOP) for distributed programs to communicate over the internet.

  9. The architectural style • The constraints that CORBA enforces belong to the “distributed objects” architectural style • Distributed objects is a mix of object-oriented style with client-server style • One of these constraints is the serialization of parameters for an effective communication

  10. GIOP (General Inter-ORB Protocol) IIOP (Internet Inter-ORB Protocol) • Protocol by which ORBs communicate • IIOP is a GIOP specific for TCP/IP communication GIOP + TCP/IP = IIOP • Common misconception  IIOP is something separate that the developer needs to write. An ORB already incorporates IIOP • IIOP  defines a set of data formatting rules  Common Data Representation (CDR)

  11. GIOP (General Inter-ORB Protocol) IIOP (Internet Inter-ORB Protocol) • CDR  tailored to the data types supported in the CORBA Interface Definition Language • With CDR  IIOP defines a set of message types that support ORB semantics defined in the CORBA core specification

  12. What is an IDL and what is it for? • Interface Description Language  a specification language to describe component’s interfaces • Defines the public application programming interface (API) to access objects in a server • For each object an IDL interface is defined, and it represents a contract to invoke methods on the object • IDL is language independent, but can be mapped to many languages like C, C++ or Java • An IDL compiler translates IDL into the equivalent in the chosen programming language

  13. where does IDL stand...

  14. more on IDL… • IDL language-independence enables interoperability and transparency • An IDL interface can include operations and attributes (getters and setters) • IDL code is compiled into client stubs and object skeletons which serve as proxies (acting in behalf of something) • Stubs and skeletons are as well created by the IDL compiler

  15. more on IDL… • Skeleton  receives incoming requests and translates to the application domain • When a method is called on the object, the calling parameters are serialized (transformed into binary data) to cross the network. • To create an object in a different server, the client needs to invoke a function in the server which creates the object. • How to reference an object? A “naming service” maintains a directory of objects to call the up by name. • The skeleton receives it, rebuilds the request and makes the call on the object. • Strong data type system to prevent errors.

  16. Java RMI • RMI  Remote Method Invocation • Is an alternative option to using IDL • Uses also IIOP to implement a CORBA

  17. Portable Object Adapter (POA) • Is a mechanism to connect a request with to the code to process it • Is a standard component defined by the CORBA specification • Goal  build objects that can be supported in different ORBs • Assists an ORB in delivering client requests to server object implementations (servants) • Generates and interprets object references • Portability achieved by standardizing skeletons classes that are generated by the IDL compiler • Deactivates idle objects' servants; activates them when needed

  18. ORB vendors • Orbix (IONA)  Enterprise CORBA • Orbacus (IONA)  small footprint, embeddable CORBA • Visibroker (Borland)  for Java, C++, C#. • MICO (ObjectSecurity)  available as GNU open source software • ORBexpress (Objective Interface Systems)  a real-time ORB • ORBit (GNOME) for C, C++ and Python • OmniORB for C++ and Python • opalORB for Perl • JacORB for Java • OmniBroker  for non-commercial use. C++ and Java

  19. References • www.omg.org • Common Object Request Broker Archictecture, OMG, July, 1995. • www.wikipedia.org • http://www.ciaranmchale.com/corba-explained-simply/ • Taylor et. al. (2008). Software Architectures: Foundations, Theory and Practice. • java.sun.com • Pyarali, I. (1998). An overview of the CORBA portable object adapter. StandardView, 6(1), 30-.

More Related