This Lecture will will cover the concept of CORBA in Distributed System. You will be able about CORBA , its architecture, working flow, application and features in easy way.
To make better use of Distributed systems.
To use object-oriented programming.
To allow objects in different programming - languages to communicate with one another.
CORBA(The Common Object Request Broker Architecture ) :
The Object Management Group (OMG) was formed in 1989.
CORBA is a standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together (i.e., it supports multiple platforms).
The object request broker (ORB) enables clients to invoke methods in a remote object.
CORBA is a mechanism in software for normalizing the method-call semantics between application objects residing either in the same address space (application) or remote address space (same host, or remote host on a network).
CORBA use an Interface Definition Language (IDL), ‘To specify the interfaces which objects represent to the outer world. CORBA then specifies a mapping from IDL to a specific implementation language like C++ or Java.
CORBA implementation comes with a tool called an IDL compiler which converts the user's IDL code into some language-specific generated code. A traditional compiler then compiles the generated code to create the linkable-object files for the application.
Working Flow of CORBA Architecture :
It carries out the request-reply protocol between client and server.
It Provide operations that enable process to be started and stopped.
It Provide operations to convert between remote object references and strings.
Object Adapter (server)
Bridges the gap between CORBA objects and the programming language interfaces of the slave classes.
Creates remoter object references for the CORBA objects
Dispatches each RMI to the appropriate servant class via a skeleton, and activates objects.
Assigns a unique name to itself and each object
Called the Portable Object Adapter in CORBA 2.0
processes can run on ORB’s produced by different developers.
An IDL compiler generates skeleton classes in the server’s language.
Dispatch RMI’s to the appropriate servant class.
Client Proxies / Stubs
Generated by an IDL compiler in the client language.
A proxy class is created for object oriented languages
Stub procedures are created for procedural languages.
Activates registered servers on demand and locates servers that are currently running.
Provides information about registered IDL interfaces to the clients and servers that require it. Optional for static invocation; required for dynamic invocation.
Applications of CORBA:
It is used as a RMI(remote method invocation) of a distributed client – server system.
By using this, we can communicate with clients and servers on different operating systems and implemented by different programming languages (Java cannot do this).
It is used in distributed applications.
It is Ideal for a heterogeneous distributed system like the Internet.
Harder to use than a single language RMI such as JAVA.
Compatible with various languages and operating systems.
CORBA’s IDL is the crucial part because it permits communication on a heterogeneous distributed system.
The OMG consists of several companies that maintain compatibility and standardization of the CORBA system.
Features Of CORBA :
Language Independence: CORBA provides to its users the flexibility for programming language.
Currently there are many languages supported by various CORBA providers, the most popular being Java and C++. There are also C, SmallTalk, Perl
OS Independence : CORBA's design is meant to be OS-independent.
CORBA is available in Java (OS-independent), Linux/Unix, Windows, Sun, Mac ...etc.
Freedom from Technologies: The main benefit of CORBA is “ It normalize the interfaces between various new and legacy systems”.
For example, a database wrapped by a server can have its database schema change for the sake of improved disk usage or performance (or even whole-scale database vendor change), without affecting the external interfaces. At the same time, C++ legacy code can talk to C/Fortran legacy code and Java database code, and can provide data to a web interface.
Strong Data Typing : CORBA provides flexible data typing, for example an "ANY" data type.
CORBA also enforces tightly coupled data typing, reducing human errors. CORBA IDL (Interface Definition Language) provides the mechanism to ensure that user-code conforms to method-names, return-, parameter-types, and exceptions.
Freedom From Data Transfer Details: When handling low-level connection and threading, CORBA provides a high level of detail .
Subscribe the channel for more videos.