CSC/ECE 517 Fall 2010/ch6 6i ak: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 13: Line 13:
* '''Client & Implementation :''' As in the 'Client-Server' terminology, client is a component that requests for a service from the Server. A CORBA object is designated as a 'Server' if it has the implementation of the interface, that is requested by another object. But in CORBA the roles are interchangeable as a CORBA object might take part in multiple interactions simultaneously acting both as server and client.
* '''Client & Implementation :''' As in the 'Client-Server' terminology, client is a component that requests for a service from the Server. A CORBA object is designated as a 'Server' if it has the implementation of the interface, that is requested by another object. But in CORBA the roles are interchangeable as a CORBA object might take part in multiple interactions simultaneously acting both as server and client.


* '''IDL Stub & Skeleton :''' IDL stands for ''Interface definition Language'' and it is the standard language in CORBA for defining the interfaces. As the name suggests it can only be used for defining interfaces between the application components.
* '''IDL Stub & Skeleton :''' IDL stands for ''"Interface definition Language"'' and it is the standard language in CORBA for defining the interfaces. As the name suggests it can only be used for defining interfaces between the application components.  
 
[[Image:Img2.jpg|center|Client stub and Server skeleton]]
 
 
When such IDL files are compiled the IDL compiler generates Client Stubs and Server skeletons. Stub is a piece of code, that provides a framework through which a client can access server's interface. Skeleton is also a piece of code that provides a framework on which implementation of the interface is built.
Example of IDL interface file:
<pre>
      module shapes{
        interface rectangle{
          long area(in long length,long breadth);
          };
      };   
 
IDL keywords: module: This is similar to package in java,
              interface: This is similar to a java interface,
              long: Datatype in IDL
              in : Direction of data flow (from Client to Server).
 
</pre>
 
 
 
 


* DII Interface  
* DII Interface  
* ORB Interface and ORB  
* ORB Interface and ORB : ORB serves the following purpose:
      (i) Enable communication between objects
    (ii) Locate a remote object given a object reference
    (iii) Marshal parameters to remote method invocation
    (iv) Un-marshal parameters from remote method invocation
* DSI  
* DSI  
* BOA Interface  
* BOA Interface  
Line 29: Line 56:
From the figure, we could understand the functions of ORB:
From the figure, we could understand the functions of ORB:


* Enable communication between objects
 
* Locate a remote object given a object reference
* Marshal parameters to remote method invocation
* Un-marshal parameters from remote method invocation


== CORBA's language independence (IDL) ==
== CORBA's language independence (IDL) ==

Revision as of 04:27, 17 November 2010

Introduction

Business applications have evolved gradually over time from the ages of monolithic architectures, witnessing a slow transition to the Client-server architecture and then to multitier-client server architecture and culminating with Distributed systems and it still continues to evolve.... So at any point in time, there would be different systems involving different architecture and should still be able to communicate with each other. There is also a possibility that some of the systems have a monolithic architecture, while others have an architecture of recent times. The more diversified the systems are, more is the need for a standard interface encompassing two important features a) Platform Independence b) Language Independence for an effective exchange of information between such systems. CORBA is instrumental in implementing this utopia!

In today's distributed environment, a system exposes its functionalities through objects for other systems to utilize. These objects in turn make use of services provided by other objects within the same system or across systems. CORBA (Common Object Request Broker Architecture) is an Object oriented architecture to utilize a plethora of services available from various objects that reside in different systems within same or different networks, in a manner that language and platform independent.

CORBA Architecture:

CORBA Architecture
CORBA Architecture

Figure1: CORBA Architecture Let us take a look at each one of these components and their functions.

  • Client & Implementation : As in the 'Client-Server' terminology, client is a component that requests for a service from the Server. A CORBA object is designated as a 'Server' if it has the implementation of the interface, that is requested by another object. But in CORBA the roles are interchangeable as a CORBA object might take part in multiple interactions simultaneously acting both as server and client.
  • IDL Stub & Skeleton : IDL stands for "Interface definition Language" and it is the standard language in CORBA for defining the interfaces. As the name suggests it can only be used for defining interfaces between the application components.
Client stub and Server skeleton
Client stub and Server skeleton


When such IDL files are compiled the IDL compiler generates Client Stubs and Server skeletons. Stub is a piece of code, that provides a framework through which a client can access server's interface. Skeleton is also a piece of code that provides a framework on which implementation of the interface is built. Example of IDL interface file:

      module shapes{
        interface rectangle{
          long area(in long length,long breadth);
          };
      };    

IDL keywords: module: This is similar to package in java, 
              interface: This is similar to a java interface, 
              long: Datatype in IDL
              in : Direction of data flow (from Client to Server).



  • DII Interface
  • ORB Interface and ORB : ORB serves the following purpose:
     (i) Enable communication between objects
    (ii) Locate a remote object given a object reference
   (iii) Marshal parameters to remote method invocation
    (iv) Un-marshal parameters from remote method invocation 
  • DSI
  • BOA Interface
  • Interface Repository
  • Implementation Interface

CORBA's platform independence (ORM)

Previously, we mentioned that CORBA is language independent and it is the ORB(Object Request Broker) that makes CORBA language independent by performing the following functions. Below figure illustrates how message exchanges happen between CORBA objects (client and the server) via the ORB.

ORB resolution of object requests
ORB resolution of object requests

From the figure, we could understand the functions of ORB:


CORBA's language independence (IDL)

References

1.http://en.wikipedia.org/wiki/Transaction_Processing_Facility

2.orbix CORBA http://web.progress.com/en/orbix/orbix_mainframe.html 3.http://www.ibm.com/developerworks/webservices/library/ws-exploring-corba/