Presentation is loading. Please wait.

Presentation is loading. Please wait.

CORBA Alegria Baquero.

Similar presentations


Presentation on theme: "CORBA Alegria Baquero."— 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 An object is an encapsulation of data and functionality

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) calls on objects, not to a server process

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 IOR contains one or more profiles. Profile describes how a client can send requests to an object using a particular protocol. One profile is 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. IIOP  Connects ORB with ORB

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 languages supported: C, C++, Java, Smalltalk, Ada, COBOL, PL/I, LISP, Python IDL – similar to a Java interface IDL definitions  struct, union, sequence

13 where does IDL stand... The client thinks it is invoking the object instance on the server, but it is actually invoking the IDL stub Stub uses inter-process communication mechanisms like TCP/IP sockets to transmit the request and receive a reply

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 Common Object Request Broker Archictecture, OMG, July, 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-.


Download ppt "CORBA Alegria Baquero."

Similar presentations


Ads by Google