|
| |
|
Common Object Request Broker
Architecture |
 |
|
Analysis
of IONA Orbix
family
by Maria Gina Sian
Introduction
"IONA Technologies was
founded in 1991 with the vision of Making
Software Work Together™. To achieve this
vision, IONA provides middleware products that
enable developers to integrate diverse computer
technologies and applications, on the Mainframe,
UNIX, Windows, Java, the Internet, and realtime
systems" [IONA -
Backgrounder]. "IONA's efforts
are targeted at corporations that need to
develop and deploy, quickly and easily,
distributed component and standards-based
systems that incorporate old and new
pieces" [C3 - IONA's Technology and Industry
Vision].
IONA's vision for
delivering solutions to middleware problems is
based around the C3 idea: containers,
components, and connectors. By supporting
CORBA, the Orbix product family is one of
the tools that support this vision.
For more information
about IONA's C3 vision, see the C3
documentation.
Comparison
Points
Product
Family
The Orbix
family of products consists of the
following:
- Orbix (C++) ORB and OrbixWeb (Java) ORB
-CORBA ORB for both
Java and C++ environments
- Orbix Object
Transaction Monitor (OTM) -Transaction solution
for distributed object applications
- Orbix for OS/390
- Provides support for
the IBM mainframe
- OrbixNames -
Implementation of the CORBA Naming
Service
- OrbixTalk -
Provides messaging support
service
- OrbixEvents -
Implementation of the CORBA Event
Service
- OrbixNotification -
Implementation of the CORBA Notification
Service
- OrbixTrader -
Implementation of the CORBA Trader Service
-
OrbixSecurity, Orbix
Wonderwall and OrbixSSL -
Provides
authentication, privacy, integrity, and firewall
protection
-
Orbix
COMet-Provides COM/CORBA
bridge
- Orbix Code Generation
Toolkit (CGT)-
a
Rapid Application Development (RAD) tool that
automates repetitive coding tasks
Compliance to CORBA
The Orbix for C++
ORB and the OrbixWeb ORB are fully compliant
with CORBA ORB version 2.1 specification.
Orbix version 3 supports both the IIOP versions
1 and 1.1 specifications.
Architecture
"Orbix
implements the ORB using two basic
components. Each Orbix application is
linked with the Orbix library, which provides
much of the ORB functionality, including the
full API. Each server host runs the Orbix
daemon process, which implements several other
features of the ORB. The primary role of
the Orbix daemon is as a server activator. When
a client calls an operation of an object, a
server processs containing the target object
must be available. If the process is not
running, the Orbix daemon at the server host
launches the server automatically" [
Orbix 3 White
Paper, p. 12]. Orbix supports
multi-threading and lets you define your own
model. It can be configured to create a
thread for each request, create a thread for
each object, or create a pool of threads for all
requests. Orbix also allows you to
dynamically increase and decrease the number of
threads.
Targeted
Programming Languages and
Platforms
The Orbix
ORB supports C++, the OrbixWeb ORB supports
Java, and the Orbix for OS390 supports the COBOL
and PL/1 in the IBM mainframe environment.
Orbix 2.3 supports version 1.0 of IIOP, while
Orbix 3 supports IIOP both versions 1 and
1.1. This provides interoperability
between both versions of Orbix as well as future
ORBs.
Orbix supports more than 20
platforms including Solaris 2.x, HP-UX, AIX,
IRIX, and Windows 95/NT.
Development, Administration, and
Deployment
Similar
to other ORBs, the development process for an
Orbix application starts with defining the
interface to your object using IDL. Then,
you compile your IDL using the Orbix IDL
compiler, which then produces the stub and the
skeleton codes. The stub code allows
clients to call operations on a CORBA object,
while the skeleton code allows a server to
create objects that implement IDL
interfaces. Next, you develop your server
and client applications. The server needs
to include a class that implements your IDL
interface, while the client locates a CORBA
object created by the server and calls its
operations. Finally, you compile and link
your applications. The server needs to be
linked with the generated skeleton code and an
Orbix library, while the client needs to be
linked with the stub code and the Orbix
library.
The Orbix
Code Generation Toolkit allows you to automate
many of the coding tasks in the above
process.
Orbix includes the
following graphical tools for deployment:
Orbix Configuration
Explorer
- allows you to configure
installed Orbix components, including the Orbix
ORB, OrbixNames, Orbix COMet, and other IONA
products
Orbix Server Manager
- allows you to control the availability of
servers in your system
Interface Repository
Browser
- allows you to maintain the
Orbix Interface Repository, which provides
runtime access to the IDL definitions of
objects
OrbixNames Browser -
allows you to control the way clients locate
objects in your
system
Accessing CORBA Objects
Clients
can locate CORBA objects through the OrbixNames,
which is Orbix's implementation of the CORBA
Naming Service.
"OrbixNames allows you to set up
groups of objects that can provide particular
services to a client. When a client
requests an object from a group, OrbixNames
selects an object using a random or a
round-robin load-balancing algorithm. You
choose the algorithm associated with each
group" [
Orbix 3 White
Paper, p. 9].
COM/CORBA Integration
Using the
OrbixCOMet, COM and CORBA applications can
communicate with each other. For instance,
a Visual Basic client running on Windows can
communicate with a CORBA server running on
Unix.
OrbixCOMet is a two-way
bridge that translates messages between COM and
CORBA applications. It provides different
deployment options such as placing the bridge on
each client machine or on a single central
machine.
Implemented CORBA
Services
The Orbix product family
provides implementation of the following
services:
-
Naming
Service.
The OrbixNames is IONA's implementation
of the CORBA Naming Service. "Clients
and servers communicate with OrbixNames through
a standard set of IDL interfaces, defined by the
OMG. The OrbixNames server stores names
and references to the associated objects in a
database...When deploying OrbixNames, you can
choose between using a single OrbixNames server
to manage the database of names or you can use a
federation of databases, each managed by a
single server" [
Orbix 3 White Paper
, p. 28]. In addition, the OrbixNames
extends the CORBA Naming Service by allowing a
name to be mapped to a group of objects instead
of just single object.
-
Event
Service. The
OrbixEvents is IONA's
implementation of the CORBA Event Service
specification.CORBA specifies two
approaches to initiating the transfer of events
between suppliers and consumers: the Push and
the Pull models (for more information on the
CORBA Event Service specification, seeSummary and
Implementation page). The current
version of OrbixEvents supports the Push model,
while OrbixTalk supports the Pull
model.
- Transaction. TheOrbixOTS (Object Transaction Service) is
an OMG standard for a CORBA transaction
manager. The OrbixOTS supports 2-phase
commits. "Clients (which can be any
CORBA client, including Java clients such as
OrbixWeb) begin and commit transactions, and the
OTS transaction manager transparently manages
the mechanics of the transaction, including
resource management, voting for commit or
rollback, and a variety of heuristic
outcomes" [
OrbixOTM
-Transactions].
-
Security.
The
OrbixSecurity is IONA's full implementation of
the CORBA security service Level 1. It
implements all features of the CORBA
specification, including identification and
authentication, authorization and access
control, security of communication, delegation
of privileges, and security auditing. In
addition to the OrbixSecurity, IONA provides the
OrbixWonderwall which provides firewall
protection IIOP communication. IONA also
provides the OrbixSSL which allows
"distributed applications to securely
transfer confidential data across a network,
intranet or the Internet and protect information
based between distributed objects...OrbixSSL can
be shipped using 128 bit encryption outside of
the U.S. and Canada ensuring that applications
that operate across the Internet and between
different geographic sites that do not have to
use weak (40 bit) encryption" [
OrbixOTM-
Security].
-
Notification Service.
The OrbixNotification is
IONA's implementation of the CORBA Notification
Service specifications. "This product
is an extension of OrbixEvents, adding the
ability for event consumers to register
subscriptions for events based on their type and
contents using a standard constraint grammar. In
addition, instead of being restricted to event
communication using the unbounded CORBA::Any
data type, the IONA's Notification Service
product supports event communication using the
new standard "Structured Event" data
type, comprised of well-defined fields for the
event header and body" [
Orbix Messaging -
OrbixNotification].
-
Trader
Service.
The OrbixTrader is IONA's implementation
of the CORBA Trader Service
specifications. It allows the client to
‘browse’ service applications and
choose the most appropriate
server.
Partnerships and
Awards
IONA
partners with several industry leaders including
EDS, Hewlett-Packard, IBM, Microsoft, NEC,
Oracle, Sun, and Symantec. For detailed
information on these partnerships and others,
see IONA'sAlliances page.
The
OrbixWeb has won a World Class Award from Java Developer's
Journal. The Orbix has won the "Best
ORB Middleware" category in Network
Computing's "Well-Connected" awards in
1997 and 1998. All Orbix awards
and IONA awards are highlighted in IONA's
Awards
page. For a
full comparison between IONA's OTM and Inprise's
ITS technology based on factors such as
performance, scalability, and throughput, see
the study conducted by the Object Consulting
Inc. [
Object Consulting Inc.
CORBA/OTS Performance] .
Pricing OrbixWeb
3.0 for Java costs $799 for the Standard Edition
and $1499 for the Professional Edition.
Technical support is not included in both
editions and costs an additional $650 per unit
(optional).
Orbix 3.0
(C++) Windows NT Development Kit (per developer)
costs $2995. Technical support is not
included with the Development Kit and costs an
additional $650 per unit. The Orbix 3.0
Unix Development Kit (per developer) costs $6995
and technical support costs an additional $1050
per unit (optional). An
Evaluation Kit is available for all products
(Orbix for Windows, Orbix for Unix, OrbixWeb)
for $200. The Evaluation Kit gives one
named developer 30 days to evaluate the product
and includes email technical
support.
Related
References
ORB
Comparison Introduction Borland/Visigenic VisiBroker
family
|
|
|