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