Download GIDL User Guide - Computer Science

Transcript
2
Common Object Requests Broker Architecture
The Object Management Group (OMG) is a non-profit organization that promotes the use of component technology in heterogeneous, distributed computing
systems. OMG pursues this goal through developing standards which allow the
distributed object oriented applications to be portable and to interoperate.
The Common Object Request Broker (CORBA) [12] is an OMG open standard, which defines an implementation independent architecture for building and
seamlessly interconnecting multiple systems involving distributed objects, in a
way transparent for the user. In practice, CORBA applications may have some
vendor dependency.
CORBA applications are composed of objects, individual units of running
software that combine functionality and data. Their design is based on the
OMG Object Model. The OMG Object Model defines common object semantics for specifying the externally visible characteristics of objects in a standard
and implementation-independent way. In this model clients request services from
objects (which will also be called servers) through a well-defined interface. This
interface is specified in OMG IDL (Interface Definition Language) [11].
This allows the framework to be platform and language independent, in the
sense that the client interfaces (to the objects), and the server implementations
(of these object interfaces) can be specified in any programming language. A
client accesses an object by issuing a request to the object. The request is an
event, and it carries information including an operation, the object reference of
the service provider, and actual parameters (if any). The object reference is an
object name that defines an object reliably.
The remaining of this section briefly presents the IDL language (Section 2.1),
and succinctly describes the components of the CORBA architecture (Section
2.2).
2.1
Interface Definition Language (IDL)
In order to achieve interoperability and portability, the CORBA standard requires the use of the IDL to describe the interfaces of remote objects. The interface is the syntax form of the promise the server object makes to the clients
invoking it. This fixes the operations that will be performed and the parameters (input and output) for each. The IDL interface definition is independent
of the programming language used for implementation, OMG having standardized mappings to popular programming languages like: C, C++, Java, COBOL,
Smalltalk, Ada, Lisp, Python[11].
IDL is a declarative language whose syntax was constructed from a subset of C++ and Pascal instructions. It defines basic types (short, byte, float,
double, string, etc.), structured types (struct, sequence, array, module),
and provides signatures for interface types, fully specifying each operation’s
parameters. Multiple inheritance among interfaces is supported, but recently
adopted features like function/operator overloading, and parametric polymorphism are not. However, since it targets distributed objects, IDL forces the user