Tuesday, May 25, 2010

Exercise_Week 6

Distributed Objects and CORBA

The term distributed objects, describes objects which reside in separate address spaces and methods of which can be subject of remote method calls (a remote call is issued in an address space separate to the address space where the target object resides). By convention, the code issuing the call is referred to as the client; the target object is referred to as the server object (or simply remote object); the set of methods which implements one of the server object’s interfaces is sometimes designated as a service that this object provides. Similarly, the process in which the server object is located is referred to as a server. (Orfali, Harkey and Edwards, Wiley Computer Publishing Group)
CORBA
CORBA stands for Common Object Request Broker Architecture, is the result of the work done by major actors of the hardware and software industry to set up a communication framework. The goal is to facilitate the development of distributed applications over a heterogeneous network. In a distributed environment, clients are talking to objects. The services that can be delivered to a client by an object are described in an interface. The means of communication are handled by an Object Request Broker (ORB). The idea behind CORBA is to provide an intermediary layer that handles access requests on data. It frees the developer from most of the portability issues. It enables the development of distributed objects. (Jon Siegel, Wiley Computer Publishing Group)
Distributed objects in CORBA
Basic principles
1. Request & response
In CORBA, a client issues a request to execute a method of an object implementation. There is no constraint imposed on the location of the client and the requested object implementation (remote object); they can share an address space, can be located in separate address spaces on the same node, or can be located on separate nodes. A server (process) can contain implementation of several objects or a single object, or even provide an implementation of one particular method only. However, typically, a multithreaded server encapsulates implementations of multiple objects.
2. Remote reference
Remote references are called Object References and the target of an Object Reference must be an object that supports the CORBA::Object IDL interface (such objects are called CORBA objects).
3. IDL Interface
CORBA specifies the CORBA IDL Language and its mapping to several programming languages (e.g., C++, Java, and Smalltalk). The IDL language provides means for interface definitions; there are no constructs related to object implementation (object state definitions have been proposed recently by OMG).
4. Proxy: local representative
Using the Broker Pattern terminology, the client-side proxy code is called IDL stub; the server-side proxy code is referred to as IDL skeleton. However, in CORBA, the concept "proxy" is used to denote an object created on the client side which contains the IDL stub plus provides some other functionality, e.g. support for dynamic invocation.

Reference:

  • Robert Orfali, Dan Harkey, and Jery Edwards. The Essential Distributed Objects Survival Guide. Wiley Computer Publishing Group
  • Stal, M. Worldwide CORBA: Distributed Objects and the Net, Object magazine
  • Szyperski,C.: Component Software, Beyond Object-Oriented Programming. Addison Wesley
  • Jon Siegel. CORBA, Fundamentals and Programming. Wiley Computer Publishing Group.

1 comment:

  1. After reading this blog entry I understand that Common Object Request Broker Architecture (CORBA)
    is an architecture that enables software programs to communicate with one another regardless of
    what programming language they are written in or what operating system they're running on.
    This is a very useful blog entry, Well done Kunal.

    ReplyDelete