alegriaCorba
Download
Report
Transcript alegriaCorba
Alegria Baquero
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
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)
Objects can be written in different languages
Mappings available for many languages
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
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
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
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.
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
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)
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
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
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
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.
RMI Remote Method Invocation
Is an alternative option to using IDL
Uses also IIOP to implement a CORBA
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
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
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-.