CORBA 2.6.1 Getting Started Guide for C++

NonStop CORBA also implements the interoperable extension of the Naming Service, allowing users to access an object through a human-
readable URL name. This format makes handling objects simpler for the user. In addition, the client no longer must import an IOR URL from the
server to invoke methods on that server. The Interoperable Naming Service defines four additions to the Naming Service:
Defines the name syntax and parsing interface
Standardizes bootstrapping to a common name context
Requires id and kind attribute matching
Adds support for URL (Uniform Resource Locator) names
The Naming Service installs automatically when you install NonStop CORBA.
Bootstrap Daemon (BSD)
The Bootstrap Daemon (BSD) is a component of the Interoperable Naming Service. The BSD is needed for interoperability with other ORBs
using the Bootstrap protocol. The BSD protocol provides operations for resolving an initial object reference and for listing the supported initial
reference ids. Interoperable client ORBs send a request to an initialization agent. The agent replies to the client ORB with the requested
information. The IDL interface provides two operations, a
get(), which accepts an ObjectId and a list(), which accepts no arguments. The IDL
interface for the two operations is as follows:
module CORBA{
interface InitialReferences {
Object get(in ObjectID id);
ObjectIdList list();
};
};
For more information on the Bootstrap Daemon, see the NonStop CORBA 2.6.1 Administration Guide.
Object Transaction Service (OTS)
The NonStop Object Transaction Service (OTS) is automatically installed with NonStop CORBA. OTS implements the Transaction Service
Specification defined by the Object Management Group. This service supports transaction processing between distributed objects.
NSots XID Broker
When transaction context is inherited from one process to another, an imported transaction branch is created. A transaction branch is
represented by a new TMF transaction identifier called the XID. The root XID and any branch XIDs are not recognized by TMF or SQL as
representing the same transaction. This means that if a process such as an application starts a transaction and makes multiple invocations on
server processes, multiple XIDs can be created resulting in SQL errors or blocking. It is up to the application designer to avoid this problem. If
more than one NSotsTM is configured in a server pool, multiple requests on the same transaction branch might be routed through more than
one NSotsTM. This situation is beyond the control of the application designer.
To solve this problem, NSOTS and NSJTS include an XID Broker function. The XID Broker brokers requests for imported transactions within the
pool of NSotsTMs by routing secondary import requests back to the NSotsTM that originally imported the transaction. In previous versions of
NSOTS and NSJTS, the broker function was provided through a shared file. The current version of NSOTS and NSJTS replaces the file
implementation with a singleton process called NSotsXID.
Object by Value
NonStop CORBA supports Object by Value, allowing applications to pass objects and parameters by value rather than by reference. The
receiving side of an object passed by value receives a description of the "state" of the object and then instantiates a new object with that state
but having a separate identity from that of the sending side. Once the parameter-passing operation is complete, no relationship exists between
the two instances.
Event Service
The Event Service allows for decoupled communication between suppliers and consumers of events through an event channel. Suppliers and
consumers register with the event channel. At registration, the supplier/consumer indicates either the push or pull model. For the push model,
the supplier initiates the transfer of the event. For the pull model, the consumer requests the event transfer. NonStop CORBA supports both the
generic and the typed communication models. The Event Service also installs automatically when you install NonStop CORBA.
Error Logging and Tracing
All server pools and system infrastructure in NonStop CORBA provide user-configurable error logging, tracing, and event-channel messaging.
Application programmers may instrument objects that take advantage of these debugging features.
NonStop CORBA also supplies an IDL interface to the Error Logging facility, allowing the developer to log application-specific information.
Portable Interceptors
NonStop CORBA supports the Portable Interceptors interface as defined in the OMG CORBA 2.6.1 specification.
Legacy Wrapper Interface
Legacy wrapping is never an easy task because the legacy application code itself may require modification. However, HP's supplied set of