Saturday, 20 April 2013

CORBA


CORBA is a mechanism in software for normalizing the method-call semantics between application objects that reside either in the same address space (application) or remote address space (same host, or remote host on a networkThe CORBA specification dictates that there shall be an ORB through which the application interacts with other objects. In practice, the application simply initializes the ORB, and accesses an internal Object Adapter which maintains such issues as reference counting, object (and reference) instantiation policies, object lifetime policies, etc. The Object Adapter is used to register instances of the generated code classes. Generated code classes are the result of compiling the user IDL code, which translates the high-level interface definition into an OS- and language-specific class base for use by the user application. This step is necessary in order to enforce the CORBA semantics and provide a clean user process for interfacing with the CORBA infrastructure.
Figure 1-2 CORBA  Architecture

Illustration of the autogeneration of the infrastructure code from an interface defined using the CORBA IDLThis figure illustrates the high-level paradigm for remote interprocess communications using CORBA. Issues not addressed here, but that are accounted-for in the CORBA specification include: data typing, exceptions, network protocol, communication timeouts, etc. For example: Normally the server side has the Portable Object Adapter (POA) that redirects calls either to the local servants or (to balance the load) to the other servers. Also, both server and client parts often have interceptors that are described below. Issues CORBA (and thus this figure) does not address, but that all distributed systems must address: object lifetimes, redundancy/fail-over, naming semantics (beyond a simple name), memory management, dynamic load balancing, separation of model between display/data/control semantics, etc.
CORBA defines an architecture for distributed objects. The basic CORBA paradigm is that of a request for services of a distributed object. Everything else defined by the OMG is in terms of this basic paradigm. The services that an object provides are given by its interface. Interfaces are defined in OMG's Interface Definition Language (IDL). Distributed objects are identified by object references, which are typed by IDL interfaces.
The ORB is the distributed service that implements the request to the remote object. It locates the remote object on the network, communicates the request to the object, waits for the results and when available communicates those results back to the client.
The ORB implements location transparency. Exactly the same request mechanism is used by the client and the CORBA object regardless of where the object is located. It might be in the same process with the client, down the hall or across the planet. The client cannot tell the difference.
The ORB implements programming language independence for the request. The client issuing the request can be written in a different programming language from the implementation of the CORBA object. The ORB does the necessary translation between programming languages. Language bindings are defined for all popular programming languages.

CORBAservicesline

OMG is pleased to announce a new format for its formal CORBAservices specifications. Previously, the CORBAservices were combined into one "binder" and you had the option to view/print the complete set of services or each service.
The new format treats each CORBAservice as its own stand-alone document. You have the option to view/print each CORBAservice separately. There are several CORBA services. The popular ones are described in detail in another module of this course. Below is a brief description of each:
Service
Description
Object life cycle
Defines how CORBA objects are created, removed, moved, and copied
Naming
Defines how CORBA objects can have friendly symbolic names
Events
Decouples the communication between distributed objects
Relationships
Provides arbitrary typed n-ary relationships between CORBA objects
Externalization
Coordinates the transformation of CORBA objects to and from external media
Transactions
Coordinates atomic access to CORBA objects
Concurrency Control
Provides a locking service for CORBA objects in order to ensure serializable access
Property
Supports the association of name-value pairs with CORBA objects
Trader
Supports the finding of CORBA objects based on properties describing the service offered by the object
Query
Supports queries on objects

No comments:

Post a Comment