[Enterprise Extensions only]

WebSphere CORBA support

WebSphere Application Server provides CORBA support that enables the use of CORBA interfaces between a server object providing a service and a client using the service. In practice this means WebSphere C++ CORBA servers and WebSphere EJB services can be accessed by CORBA clients, and WebSphere CORBA clients can access CORBA servers.

As part of the WebSphere J2EE environment, the C++ CORBA support provides a basic CORBA environment that can bootstrap into the J2EE name space and can invoke J2EE transactions. However, it does not provide its own Naming and Transaction services, for which a C++ CORBA client or server relies on the J2EE environment as a service provider. The C++ CORBA technology is provided on Solaris (Forte C++), AIX (VisualAge for C++), and Windows NT and Windows 2000 (Microsoft Visual C++).

The CORBA support comprises the following two main areas of functionality:

C++ CORBA Software Development Kit (SDK)
You can use the C++ CORBA SDK to build a lightweight WebSphere CORBA server for use with new or existing C and C++ programs. You can also use the SDK to build a WebSphere C++ CORBA client for use with a WebSphere C++ CORBA server, WebSphere EJB server, or with a 3rd-party C++ CORBA server (as part of a CORBA interoperation scenario). For example, you could use the SDK to build a C++ CORBA client to connect a C++ desktop application to a WebSphere EJB server.
WebSphere to 3rd-party CORBA interoperation
You can use the CORBA interoperation functionality to invoke CORBA applications outside of WebSphere from servlets and Enterprise JavaBeans on a WebSphere EJB server (acting as a CORBA client). You can also invoke WebSphere Enterprise JavaBeans from CORBA applications calling out from CORBA outside of WebSphere.

With CORBA interoperation, distributed objects are invoked using the ORB included with WebSphere. This enables the propagation of service contexts such as in-progress transactions. Because these service contexts are potentially usable by the third-party ORB receiving the calls, you might (for example) be able to include processing performed by the third-party ORB within the scope of a WebSphere-initiated transaction.

If CORBA interoperation is inadequate, you can consider ORB coexistence as an alternative solution. Coexistence refers to the ability of two different ORB runtime environments to reside and function in the same process. With coexistence, distributed objects are invoked using a 3rd-party ORB running in the WebSphere environment. This allows the 3rd-party ORB's bootstrapping protocol and vendor-specific APIs to be used.

The CORBA interoperation functionality uses a CORBA value type library for C++, provided as part of the WebSphere CORBA support, that simplifies calls from CORBA to Enterprise JavaBeans. The CORBA interoperation environments supported include VisiBroker C++ 3.3.3, VisiBroker Java 3.4, VisiBroker C++/Java 4.0/4.1, Orbix C++ 3.0.1 (except Solaris), Orbix C++ 3.0.2 (Solaris only), Orbix Web 3.2, and Orbix2000 C++/Java 1.2. The platforms supported include AIX 4.3.3, NT 4.0, Windows 2000, and Solaris 2.7.

To make use of the CORBA support provided by WebSphere Application Server you should be familiar with the CORBA specification and programming model. You should also be familiar with WebSphere Application Server application development.

The following articles provide the main conceptual information about the CORBA support: