C   O   R   B   A
  O R B  
 
Home
CORBA
ORBs
Project
The Hawaii Group
Services
Naming
Event
Vendors
Comparison
In Industry
Telecom
Resources
Text
Links
 
 
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