http://e-docs.bea.com/tuxedo/tux91/interm/corbaprog.htm#client
BEA Tuxedo contains1. Two programming interfaces - ATMI and CORBA C++
2. High performance C++ application server
3. A Transaction Monitor
4. Manageable back-end transaction platform.
The BEA Tuxedo software supports the following types of client applications:
CORBA C++
OMG IDL - Object Management Group (OMG) Interface Definition Language (IDL) - describe available CORBA interfaces to client applications. It is a purely declarative language. ie contains no implementation details.
Operations specified in OMG IDL can be written in and invoked from any language that provides CORBA bindings. C++ and Java are two of the supported languages.
OMG IDL-to-C++ MappingSee The Common Object Request Broker:Architecture and Specification, Version 2.3.
Static and Dynamic InvocationThe CORBA server application cannot tell the difference between static and dynamic invocations.
static - Easiest and most common type of invocation. CORBA client application invokes operations directly on the client stubs. Static invocation is recommended for applications that know at compile time the particulars of the operations they need to invoke and can process within the synchronous nature of the invocation.
Dynamic - Enables CORBA client application to invoke operations on any CORBA object without having to know the CORBA object's interface at compile time.
Client StubsClient stubs providing the programming interface. The client application simply treats the stub as a local object. A CORBA client application must have a stub for each interface it plans to use.
idl command generate a client stub from the OMG IDL definition of the CORBA interface.
To create a stub file and header file from a programming language, invoke a method from within your CORBA client application to request an operation on the CORBA obejct.
Interface RepositoryContains descriptions of a CORBA object's interfaces and operations.
Static invocation do not access the Interface Repository at run time. It is included in client stub.
Dynamic invocation use the Interface Repository to learn about a CORBA object's interfaces, and invoke operations on the object.
idl2ir, ir2idl, irdel commands are used to manage the Interface Repository
Domainsgrouping objects and services together as a management entity. One CORBA client applications can connect to multiple BEA Tuxedo domains using different Bootstrap objects.
Environmental ObjectsIt set up communication between CORBA client and server applications in a BEA Tuxedo domain.
The following are the environmental objects
1. Bootstrap
2. FactoryFinder
3. InterfaceRepository
4. SecurityCurrent
5. TransactionCurrent
6. NotificationService
7. NameService
Bootstrap - establishes communication. It also obtains object references for other environmental objects.
FactoryFinder - locates a factory, can create object references for CORBA objects.
InterfaceRepository - contains interface definitions for all the available CORBA interfaces
SecurityCurrent - used to log a CORBA client application into a BEA Tuxedo domain with the proper security credentials.
TransactionCurrent - allows a CORBA client application to participate in a transaction.
NotificationService - allows a CORBA client application to obtain a reference to theevent channel factory in the CosNotification Service.
NameService - use a namespace to resolve object references.
Bootstrap Object
Which defines the address of an IIOP Listener/Handler. The IIOP Listener/Handler is the access point to a BEA Tuxedo domain and the CORBA services provided by the domain. A list of IIOP Listener/Handlers can be supplied either as a parameter or via the TOBADDR environmental variable or a Java property. A single IIOP Listener/Handler is specified as follows
// host:port eg myserver:4000
Once the Bootstrap object is initiated, the resolve_initial_references method is invoked, passing in a string ID, to obtain a reference to an available object. The valid values for the string ID are FactoryFinder, Interface Repository, SecurityCurrent, TransactionCurrent, NotificationService, TObj_SimpleEventsService, and NameService.
Factories and the FactoryFinder Object
A factory is any CORBA object that returns an object reference to another CORBA object and registers itself with the FactoryFinder object.
The factories available to CORBA client applications are those that are registered with the FactoryFinder object by CORBA server applications at startup.
The CORBA client applications uses the following sequece of steps to obtain a reference to a CORBA object;
- Once the Bootstrap object is created, the resolve_initial_references method is invoked to obtain the reference to the FactoryFinder object.
- CORBA client applications query the FactoryFinder object for object references to the desired factory.
- CORBA client applications then call the factory to obtain an object reference to the CORBA object.
Naming Conventions and BEA Tuxedo Extensions to the FactoryFinder Object
-------------------------------------------------------------------------------
InterfaceRepository Object
It offers proper set of interfaces as defined by the CORBA specification ver 2.2.
CORBA client applications that use the Dynamic Invocation Interface(DII) need to access the Interface Repository programmatically.
Security Current Object
CORBA client applications use the securityCurrent object to log on to the BEA Tuxedo domain and pass security credentials to the domain.
The following levels of authentication are provided:
TOBJ_NOAUTH - No authentication is needed. client application may still specify a username and a client appication name , but no password.
TOBJ_SYSAUTH - The CORBA client application must authenticate itself to the BEA Tuxedo domain and must specify a username, client application name, nad application password.
TransactionCurrent Object
Maintains a transactional context for the current session between the CORBA client application and the CORBA server application.
ex. initiating and terminating a transaction and getting the status of a transaction.
The transaction policies are
1. Never
The interface is not transactional. Objects created for this interface can never be involved in a transaction.
2. Optional
The interface may be transactional.
3. Always
The interface must always be part of a transaction.
4. Ignore
The interface is not transactional.
NotificationService and Tobj_SimpleEventsService Objects
Provide access to CORBA event service. The event service receives event posting messages, filters them, and distriutes them to subscribers.
A poster is a CORBA application that detects when an event of interest has occured and reports(posts) it to the event service.
A subscriber is a CORBA application that requests some notification action to be taken when an event of interest is posted.
NameService Object
CORBA client applications can locate an object by asking the CORBA Name Service to look up the name.