Escolar Documentos
Profissional Documentos
Cultura Documentos
October 1998
by Melody Brake
http://holly.colostate.edu/~mabrake
mailto: mabrake@holly.colostate.edu
Acronyms
Introduction
What is CORBA?
What is an ORB?
Introduction
The web is evolving. The Web began as a unidirectional medium for publishing static
electronic documents. In 1995 the Web became an interactive medium using HTTP/CGI
(HyperText Transport Protocol/Common Gateway Interface). The exponential growth of
the Web, the popularity of PC's, and technological advances of high-speed network
access pushed the Web to the next generation, the use of distributed objects in 1996. The
HTTP/CGI technology cannot meet the new needs for long because a client object cannot
directly invoke a server object. Highly interactive conversations between components
require a scalable mediator. Two distributed object models have emerged; the Common
Object Request Broker Architecture (CORBA) and the Component Object Model
(COM). In June, 1997, Netscape began shipping CORBA/Java ORB with Communicator.
And the Web was dubbed the "Object Web."
Figure 1.
BYTE Magazine - October 1997 / Features / CORBA, Java, and the Object Web, http://www.byte.com/art/9710/sec6/art3.htm To top of
page
What is CORBA?
To explain CORBA, we must first explain ORBs.
What is an ORB?
Because the ORB can make this transaction happen between applications on different
machines in heterogeneous distributed environments, this process seems transparent to
the client. ORBs provide the flexibility of communication between different operating
systems, environments, and languages. They allow existing components to be used by
developers far and wide.
Of course, for this process to work well, a standard is required. A consortium of 700+
companies formed the Object Management Group (OMG) to create just such a standard.
They introduced this standard as the Common Object Request Broker Architecture
(CORBA) in 1991. According to the OMG, "CORBA allows applications to
communicate with one another no matter where they are located or who has designed
them." This standard also defined the Interface Definition Language (IDL) and the
1
2. Flexibility - CORBA allows developers to choose, for each component of their system,
the:
• operating system
• execution environment
• programming language
3. Processing speed - By directly invoking methods on a server, a client can pass
parameters using precompiled stubs or can generate them dynamically using CORBA's
invocation services.
The ORB manages all communication between components. Notice the levels of
architecture in Figure 2.
The OMG ORB model can be divided into two main parts:
Regardless of the type of client application, domain, or facilities, the ORB can translate
the request to the appropriate object services. To top of page
CORBA Architecture
The pivotal component of CORBA is the ORB which is responsible for the
communication of requests, passing requests from the client to the correct object. The
details of the CORBA architecture are shown in Figure 3.
Figure 3.
The parts of this figure can be explained as follows. As described by the OMG, "The
Client is the entity that wishes to perform an operation on the object and the Object
Implementation is the code and data that actually implements the object."2 The Client
requests services through the IDL Stub or (dynamically) through the Dynamic Invocation
Interface (DII). A General Inter-ORB Protocol (GIOP) is defined to support
interoperability of different ORB products. A specification of the GIOP on TCP/IP
connection is defined as the Internet Inter-ORB Protocol (IIOP). With the help of the
Object Adapter, the ORB Core then passes the request through an IDL Skeleton or
(dynamically) through the Dynamic Skeleton Interface (DSI) to the Object. The service is
encapsulated by the object. The Interface Repository provides at runtime, both: persistent
objects with IDL information, and help in identifying the interface and operations of
objects. The Implementation Repository stores the information that ORBs use to locate
and activate implementations of objects. To top of page
The overall architecture of CORBA is divided into three layers as illustrated in Figure 4.
Figure 4.
"DCOM and CORBA Side by Side, Step by Step, and Layer by Layer," http://www.bell-labs.com/~emerald/dcom_corba/Paper.html
In the top layer (Basic Programming Architecture) a client may request an object and
invoke its methods. The server responds by creating an object instance and making it
available to the client. The middle layer (Remoting Architecture) makes it seem as if the
client and server are in the same address space. Sending data across different address
spaces requires a standard format for packing and unpacking the transmission.
Marshaling is the term used when a method call's parameters are packed at a client's
space or when return values are packed at a server's space. Unmarshaling is the
unpacking of the standard format to a data presentation appropriate for the address space
of the receiving process. The ORB serves as the object bus. The Object Adaptor connects
the Object to the ORB. The Libraries on the client-side and server-side are linked at
compile time. The bottom layer (Wire Protocol Architecture) is where the wire protocol
is specified for the support of a client and a server on different machines.
The basic architectures of CORBA and COM are similar. But they are different in many
ways. To top of page
COM Background
Although CORBA and COM both allow applications to communicate in order to use
objects, they do not accomplish this task equally well. The following comparison looks at
the usability of COM and CORBA across the Object Web.
• According to Microsoft
representatives, where
specification and
Microsoft
implementations differ,
Microsoft considers its
own implementation to be
definitive.3
• C++
• Designed from the
beginning to be language-
• Support for other
neutral to accommodate a
Cross-Language programming languages
wide range of languages
Support is a problem. DCOM
including:C, C++, Ada,
requires passing C-style
Smalltalk, COBOL, Java,
memory pointers between
Visual Basic, FORTRAN
applications.
• Continuously changed
• Specifications published in
specifications and code
1991
• Key documents are
• Broad industry consensus
Maturity and available in draft form
and support
Deployment only
• Seven year use around the
• Available to end-users in
world
the last couple years
• Based on native machine
code, requiring a separate • Java mobile code easily
Support for WWW version of every object deals with cross-platform
control for every browser support
platform
• Java applets are insulated
from direct contact with the
host system by running on a
Security - All
virtual machine. This
distributed
provides a "sandbox"
communication
around the applet that
involves risk
• Compiled for C++ enforces security
without any security restrictions.
Confidentiality
restrictions • Confidentiality system
(using encryption)
• No confidentiality • Authentification system
Authentification
• No authentification • Non-repudiation system
(confirmation
ensures that users cannot
messages came from
deny their commitments
objects entitled to
later, accommodating
issue them)
international legal
requirements for security
auditing
Scalability • Not designed for large- • Designed for Internet-scale
scale networks
• Uses reference counts that
require programmers to
applications from the
manipulate them by hand
beginning.
• No reference counts
• Uses keep alive messages
necessary
(pinging) every two
minutes. After six
• No keep alive messages
minutes of no response,
necessary
the connection between
client and server is
severed.
To sum up this comparison, COM was never designed for Internet-scale inter-object
communication. It is merely an adaptation of an architecture originally designed for a
single machine with non-distributed tasks. It falls short in efficiently handling the Object
Web. Microsoft has tried to scale its architecture to the enterprise and internet to promote
the use of Microsoft products.
Conclusion
This next generation Web must be able to handle Internet, intranet, and extranet
interactions. Business-to-business and consumer-to-business transactions are pushing the
use of distributed objects. The Web is evolving into the role of a full-blown client/server
medium of distributed computing. CORBA creates a distributed objects infrastructure
which makes activating and accessing remote objects transparent. CORBA offers a
flexibility and adaptability that give it a promising future.
Footnotes
1
CORBA for Beginners, http://www.omg.org/news/begin.htm
2
CORBA Overview, Object Management Group, 1995,
http://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864
3
Comparing ActiveX and CORBA/IIOP, http://www.omg.org/news/activex.htm To top of
page
References
BYTE Magazine - October 1997 / Features / CORBA, Java, and the Object Web,
http://www.byte.com/art/9710/sec6/art3.htm
DCOM and CORBA Side by Side, Step by Step, and Layer by Layer, http://www.bell-
labs.com/~emerald/dcom_corba/Paper.html
INTRODUCTION
A considerable number of high-level beam dynamics (BD) applications have been
developed for the operation and monitoring of the SLS accelerator facilities. Fig. 1
captures typical components required by BD applications. Their number and demand on
computer resources motivated, in part, a desire for a distributed computing environment.
To this end, the Common Object Request Broker (CORBA), an emerging standard for
Distributed Object Computing (DOC), has been employed. Its use at the SLS has allowed
to realize the potential benefits of distributed computing, and to simultaneously exploit
features inherent to CORBA such as the interoperability between objects of different race
(language) and creed (platform).
Next: Exploiting the POA Up: THE CORBA ARCHITECTURE Previous: THE
CORBA ARCHITECTURE
Next: The Event Service Up: THE CORBA ARCHITECTURE Previous: Client and
Server Perspectives
Michael Boege
2003-11-23
Next: THE SLS CORBA SERVERS Up: THE CORBA ARCHITECTURE Previous:
Exploiting the POA
Michael Boege
2003-11-23
Next: The Fast Orbit Feedback Up: A COMPLEX CORBA APPLICATION Previous:
A COMPLEX CORBA APPLICATION
Next: The Fast Orbit Feedback Up: A COMPLEX CORBA APPLICATION Previous:
A COMPLEX CORBA APPLICATION
Michael Boege
2003-11-23