This chapter introduces the following topics:
What This Chapter Is About
As a business grows, application developers may need to organize the different segments of the business by sets of functionality that require administrative autonomy but allow sharing of services and data. Each functionality set defines an application that may span one or more computer machines, and that is administered independently from other applications. Such a functionally distinct application is referred to as a domain; in practice, the organization often uses the domain's functionality as part of its name so you find applications with names like the "accounting" domain or the "order entry" domain.
The BEA TUXEDO system Domains feature provides a framework for interoperability between the domains of a business that continues the BEA TUXEDO enhanced client/server model. Interoperability means more than merely the capability of communicating from one domain to another. By transparently making access to services of a remote domain available to users of the local domain (or accepting local service requests from users of a remote domain), Domains, in effect, breaks down the walls between the business applications of an organization. Domains does this by defining a set of processes, called gateways, that manage the communication between domains. BEA TUXEDO system Domains is offered in an instance called TDOMAIN, which can be used to provide interoperability among two or more BEA TUXEDO applications.
The following terms are used in our discussion of Domains.
What Is a Domain?
Interoperability Between Domains
Domains Terms
unadvertise
command is issued or a MIB request removes the service.
TUXCONFIG
file. A BEA TUXEDO application can communicate with another BEA TUXEDO application through a domain gateway group.
GWADM
process and a gateway process, for example, a GWTDOMAIN
process.
TDOMAIN
Failback.
TDOMAIN
Failover.
dmadmin
(1) connect
command issued by the administrator.
BEA TUXEDO provides an application programming framework that simplifies the development of open OLTP distributed applications by hiding the complexity associated with the distribution of application processing. The framework consists of the following:
It is not always possible, however, to structure applications as a single distributed application because of their nature, geographical location, confidentiality, and potential growth. Also, an enterprise may want to expand their business by cooperating with other organizations that provide OLTP services under the control of different transaction processing monitors, such as BEA's TopEnd, Transarc's Encina, IBM's CICS, Bull's TDS, Bull's TP8, ICL's TPMS, and so forth.
The BEA TUXEDO system provides the basic framework for domain interoperability. This framework defines a set of processes, called gateways, that manage the communication between domains. These gateways run within a BEA TUXEDO server group. This is illustrated in Figure 1-1, which shows a BEA TUXEDO application that requires services (in this case, credit card authorizations) from a remote domain.
The application also accepts service requests (for example, balance inquiries) from remote domains. The gateway process provides bidirectional transaction control, and administrative tools that allow the configuration of the information required for interoperability of the local application with other domains. This configuration information includes the identification of a set of exported services, imported services, addressing, and access control. The BEA TUXEDO configuration of Figure 1-2 shows a more detailed view of the environment associated with domains.
The example shows a credit card authorization center running under the control of the BEA TUXEDO system. The authorization center has two gateway groups: bankgw1 and bankgw2. In this example, Bank ABC generates service requests to the credit card authorization center. These requests are received by a gateway running within group The credit card authorization center may also issue service requests, For example, the authorization center may send balance inquiries to Bank ABC. Domains makes this possible by behaving as a local server that advertises the services available on the other domains as if they were local services.
Domains provides the notion of a local domain to control incoming requests, and to provide a generic addressing framework for the application. Local domains help to provide partial views of an application, that is, a subset of the local services available to a set of remote domains. Each local domain is always represented by at most one gateway server group.
The main goal of the Domains feature is to allow the cooperation of BEA TUXEDO applications with dozens of applications running in other administrative domains. By meeting this goal, the BEA TUXEDO system provides a common framework for controlling very large applications that may include domains running other transaction processing systems.
Domains maintains the BEA TUXEDO client/server model by making access to services on the remote TP System (or accepting service requests from a remote TP System) transparent to both the application programmer land the end-user (see Figure 1-3). Application programmers use the ATMI interface to access the services provided by remote domains, or to define services that can be executed by a remote domain. The following section discusses the implications of these interdomain communications on the different ATMI primitives.
Domains provides an asynchronous multithreaded gateway able to process both requests going out to remote domains and requests coming in from remote domains. Any request can be processed within a transaction.
The following four types of security are provided in Domains. These methods can be used separately or in combination with each other:
Figure 1-1 A Generalized View of Two Communicating Domains
TDOMAIN
is the subject of Chapter 2, "Configuring TDOMAIN."
Figure 1-2 A Look at Domains Environments
bankgw1
provides access to two remote BEA TUXEDO domain; bankgw2
provides access to one remote domains (Bank XYZ) using the OSI TP protocol.
bankgw1
. This gateway issues a service request on behalf of the remote domain to the credit card authorization service that is provided by a local server. The server processes the request and sends the reply to the gateway, and the gateway returns it to Bank ABC.
Cooperating with Other Applications
Figure 1-3 Two-way Communication through a Gateway
Security in Domains
DM_LOCAL_SERVICES
section of the DMCONFIG
file.
The BEA TUXEDO system provides an application programming framework that simplifies the development of open OLTP applications, and hides the complexity associated with the distribution of the application. The framework is an extended client/server model that offers three programming paradigms:
ATMI Programming Framework
These paradigms are provided through the Application Transaction Management Interface (ATMI), and are designed to meet the requirements of open OLTP systems. ATMI helps open OLTP application developers structure their code for portability, location transparency, performance, modular growth, and reliability.
Domains extends the BEA TUXEDO client/server model to provide transaction interoperability across TP domains. This extension preserves the model and the ATMI interface by making access to services on the remote domain (or accepting service requests from a remote domain) transparent to both the application programmer and the end user. Domains makes this possible via a highly asynchronous multitasking gateway that processes outgoing and incoming service requests to or from remote domains.
A Domain gateway is a BEA TUXEDO-supplied server that enables access to and from remote domains (DGW in Figure 1-4). In addition, Domains provides a gateway administrative server (
Domain gateways support the following functionality:
Extending the BEA TUXEDO Client-Server Model
What Is a Domain Gateway?
GWADM
in Figure 1-4) that enables run-time administration of the Domain gateway group and a Domain administrative server (DMADM
in Figure 1-4) that enables run-time administration of the BEA TUXEDO application-wide Domain configuration information. The application administrator enables remote domain access by specifying one or more gateway groups (each containing a domain gateway and a gateway administration server) and a domain administrative group in the GROUPS
section of the TUXCONFIG
file, and by adding entries for the gateway and the administrative servers in the SERVERS
section. Configuration is covered in Chapter 3, "Running Domains."
Figure 1-4 Domains Configuration
Domain gateways provide support for the request/response model of communication defined by the ATMI interface. A BEA TUXEDO application can request remote services exactly as if they were offered within the application. Also, remote domains can request services offered within the local application exactly as if they were offered within the remote application.
The following BEA TUXEDO ATMI primitives are logically limited to use within a single application and are not supported across domains:
Requesting Local and Remote Services Using Request/Response Communication
Support for ATMI Primitives
tpinit(3c)
/tpterm(3c)
-BEA TUXEDO applications do not attach to the environment of a remote domain; they use Domain gateways to access the remote domain. Therefore, an extra tpinit()
/tpterm()
is not needed for remote applications.
Support for
The ATMI interface is a connection-oriented interface that enables clients to establish and maintain a conversation with services configured and coded with the conversational paradigm (instead of the request/response paradigm).
BEA TUXEDO applications can use Note that the ATMI connection-oriented primitives provide half-duplex conversations and that Application administrators indicate whether a remote service is a conversational service by specifying In the BEA TUXEDO system, applications use typed buffers to send data between clients and servers. The typed buffer mechanism allows application programmers to transfer data without knowing the data representation scheme used by the machines on which the application's clients and servers are running.
A Domain gateway can receive and process service requests sent from workstations, BEA TUXEDO machines, or remote domains with different machine representations. Hence, gateways must be linked with the typed buffer switch defined by the application administrator so the gateways know how, for example, to decode the data sent with the service request.
Domain gateways always try to decode any service request that is received encoded for two reasons:
tpforward
(3c) is provided to preserve the portability of applications using this primitive. Forwarded requests are interpreted by Domain gateways as simple service requests. This is illustrated in Figure 1-5 in the simple case of a service using tpforward
to send a request to a remote service.
Figure 1-5 Using tpforward to Send a Request to a Remote Service
Enabling Conversational Services Using Conversational Communication
tpconnect
(3c) to open a conversation with a remote service, tpsend
(3c) and tprecv
(3c) to communicate with this service, and tpdiscon
(3c) to end the conversation. Domain gateways maintain the conversation with the remote service, and provide the same semantics for returns (that is, tpreturn
with TPSUCCESS
or TPFAIL
) and disconnects as defined for BEA TUXEDO conversational services.
tpforward
(3c) is not allowed within a conversational service.
CONV=Y
in the DM_REMOTE_SERVICES
section of the DMCONFIG
file.
Sending Data Between Clients and Servers with Typed Buffers
Following the OSI terminology, there is a difference between abstract syntax (that is, the structure of the data) and transfer syntax (that is, the particular encoding used to transfer the data). Each typed buffer implicitly defines a particular data structure (that is, its abstract syntax) and the encoding rules (that is, its typed buffer operations) required to map the data structure to a particular transfer syntax (for example, The BEA TUXEDO system provides a set of predefined buffer types ( Application programmers can supply their own buffer types by adding an instance to the The BEA TUXEDO system provides two timeout mechanisms: a transaction timeout mechanism and a blocking timeout mechanism. The transaction timeout is used to define the duration of a transaction, which may involve several service requests. The timeout value is defined when the transaction is started (with The BEA TUXEDO transaction timeout mechanism is used unchanged in the Domains framework. This is possible because Domain gateways implement the TMS functionality and therefore are required to handle the Domain gateways, however, cannot use the BEA TUXEDO blocking timeout mechanism. This is because the blocking timeout mechanism uses information stored in the registry slot assigned to each client or server. Information in the registry slot is used by the local When a Domain blocking timeout condition arises, the Domain gateway sends an error/failure reply message to the requester, and then it cleans any context associated with the service request.
You can specify the conditions under which a local domain gateway tries to establish a connection to a remote domain. You specify these conditions by assigning a value to the XDR
).
STRING
, CARRAY
, FML
, VIEW, X_C_TYPE, X_OCTET
, and X_COMMON
) and the encoding rules required to map these types to the XDR
transfer syntax.
tm_typesw
array in $TUXDIR/lib/tmtypesw.c
(see tuxtypes
(5) and typesw
(5)), and by supplying the routines for the new type (see buffer
(3c)).
Defining Transaction and Blocking Timeouts
tpbegin
(3c)). The blocking timeout is used to define the duration of service requests, that is, how long the application is willing to wait for a reply to a service request. The timeout value is a global value defined in the BLOCKTIME
field of the RESOURCES
section of the TUXCONFIG
file. The transaction timeout always overrides a blocking timeout value.
TMS_TIMEOUT
messages generated by the BBL
.
BBL
to detect requesters that have been blocked for a time greater than BLOCKTIME
. Domain gateways, however, are multitasking servers that may process several service requests at a time. This means that the Domain gateways cannot successfully use the registry slot mechanism.
Ways to Establish Connections Between your Domains
CONNECTION_POLICY
parameter in the domains configuration file (dmconfig
). You can select any of the following connection policies:
ON_STARTUP
)
ON_DEMAND
)
INCOMING_ONLY
)
Note:
For more detailed information on configuring connection policies, see Chapter 2, "Configuring TDOMAIN."
Domains-level failover provides fail over to alternate remote domains when a failure is detected with a primary remote domain. It also provides failback to the primary remote domain when it is restored. Domains-level failover/failback defines a remote domain as being available when a network connection can be established to the remote domain, and unavailable when a network connection cannot be established to the remote domain.
Note:
For more detailed information on failover and failback, see Chapter 2, "Configuring TDOMAIN."
Failover and Failback in Domains