The advent of object-oriented programming techniques has given rise to the
latest innovation–distributed objects–in the Internet space. Here, an object
is defined as the small task-specific software component, which provides some
kind of services, such as access to database, account management, inventory
tracking, or controlling finances. The innovation is attributed to distribution
of objects over the network easily, permitting a cross-platform future where
objects running on different environment work together seamlessly. Their
importance increases from the fact that they are small, cheap, and easy to
write, upgrade and update. In a network infrastructure, such objects are
distributed over the entire network. It is the Common Object Request Broker
Architecture (CORBA) standard, which makes them work together irrespective of
different client and server operating systems and programming languages.
CORBA is defined by the Object Management Group (OMG) as a complete
distributed object platform specification that addresses interoperability in
distributed heterogeneous environment. There are over 800 OMG members including
vendors and developers as Sun, IBM, Oracle, Novel, Digital, and HP. OMG stages
the development of its standards in phases. CORBA Release 1.0 was released in
1991 and CORBA Release 2.0 in 1995, while CORBA Release 3.0 is round the corner.
The multi-technology network management (MTNM) working group of Tele Management
Forum (TMF) is responsible for CORBA specifications for the network management
layer (NML)/element management layer (EML).
There are several forums, which are involved in development of CORBA
specifications including TMF, TIMI, 3GPP, Parlay, ITU-T, and ETSI. These forums
have a regime of coordination among themselves to keep the standard consistent.
Basic premise behind the evolution of CORBA is that of ‘request for
services of distributed object’. CORBA is an open-vendor independent
specification for an architecture that computer applications employ to work
together over networks. It allows programs from multiple vendors, on almost any
computer, operating system, programming language, and network to interoperate.
Interoperability in a multi-vendor environment has made CORBA widely recognized
and popular. Object request brokers (ORBs) are fundamental to any CORBA
architecture. For any client or server to be a part of the CORBA regime, it must
include an ORB to help it find and communicate with the other CORBA objects.
Once equipped with an ORB, a client or server can use the services of any CORBA
object on any server or host in the network.
How CORBA objects interact and communicate with each other over the network
is governed by a protocol called the Internet Inter ORB Protocol (IIOP) defined
by CORBA. IIOP runs on top of the TCP/IP protocol. CORBA also defines a compiler
called interface definition language (IDL), which provides a language neutral
way to describe an interface for CORBA object and the services object provides.
IDL compiler allows objects written in different languages to communicate with
each other using IIOP and CORBA architecture. To define CORBA interface without
an IDL compiler, a few developers also suggest an alternate compiler to IDL
known as Caffeine using Java2iiop to save time in learning IDL.
CORBA can be conceptualized as a communication bus for client-server objects.
CORBA defines a method to divide application logic among objects distributed
over a network, some on clients, and others on servers. A CORBA ORB, which acts
as a middleware, establishes the connection between client application and the
object it wishes to use, to provide object location and access transparency.
CORBA-BASED TMM SERVIICE |
|
Service | Description |
Object Life Cycle |
Defines how CORBA objects are created, copied, moved and deleted from ORB |
Naming | Defines how CORBA objects are organized and accessed using human readable names. Allows a CORBA client to locate a named CORBA object |
Event Notification |
How objects notify each other. Enables objects to dynamically register and de-register interest in specific events |
Transaction | Allows transaction contexts between objects to be transparently propagated with IIOP |
Concurrency Control |
Ensure how CORBA objects can have serialized access. How ORB manages shared access to objects by multiple users |
Relationship | How objects are grouped together or associated with each other dynamically |
Externalization | Coordinate transformation of objects to and from external media |
Query | How search can be performed for objects existing in multiple storage domains |
Licensing or Metering |
How objects meter their use to provide charge by use component |
Properties | How new attribute can be assigned to objects dynamically |
Persistency | How objects are stored uniformly in various repositories |
Security | Provides encryption, authentication, and authorization to protect data and to control user access to objects and their services |
CORBA architecture provides several services for integration and
inter-operation of distributed objects that help the CORBA objects communicate
with each other to implement their application functionality. Currently, naming
and event notification services are widely supported.
CORBA offers numerous distinguished benefits as listed below:
l It permits a distributed and
heterogeneous collection of objects to interoperate. CORBA objects are fully
inter-operable, thanks to the IIOP.
l It protects investment in the existing systems. It bridges the past
legacy proprietary code with the present open distributed object Internet-based
computing. It provides a path for migrating or advancing legacy systems and
other existing code bases in to the Internet-based multi-vendor cross-platform.
This is accomplished by encapsulating a legacy application module in a CORBA IDL
wrapper that defines an interface to the legacy code creating an object wrapper.
This object wrapper gives the legacy code a CORBA compliant interface, making it
interoperable with other objects in a distributed computing environment
l CORBA is an open standard. It is implemented and supported by several
hardware and operating systems
l CORBA objects interact via interfaces. Therefore, changing an object’s
implementation does not affect other objects or applications
l CORBA provides security features including encryption, authentication,
and authorization, to protect data and to control user’s access to objects and
their services
There are two well-known programming languages that have been used for
developing CORBA, viz Java and C++. Among the two, most commonly Java is
preferred, since it is object-oriented and more flexible, permitting Java object
to work on any OS with a Java virtual machine. CORBA products that support the
Java programming language include:
l Java2ORB from Sun
l VisioBroker from Inprise Corporation
l OrbixWeb from Iona technologies
l WebSphere from IBM, etc
In addition, vendors such as Netscape, Borland, Symantec, IBM, etc, are
adding CORBA support to their visual tools.
Since, the evolution of CORBA has not attained acceptable maturity; ITU-T has
not been able to finalize CORBA standard specifications for multi-vendor
interoperability, so far. Albeit, ITU-T has adopted draft guidelines, which will
be subject to suitable upgradation as soon as new recommendations are available.
The adopted guidelines are:
n ITU recommendation X780: TMN guideline for defining CORBA managed
objects. It specifies guidelines for defining CORBA-based interfaces to software
objects
n ITU recommendation Q816: CORBA-based TMN services (listed in table)
n ITU recommendation M3120: CORBA generic network and NE level
information model
CORBA architecture has emerged as the standard specification for distributed
systems. It permits a distributed and heterogeneous collection of objects to
interoperate. CORBA provides an inter-vendor infrastructure that will be the
architecture of future next-generation network applications. Serious business
systems are being deployed in a distributed environment, which profit from the
services CORBA provides, and the interoperability it guarantees.
Ramdev Sharma, head (product marketing),
Huawei Technologies India