The BEA TUXEDO system is about communication between processes. Most often the process that starts the communication is a client and the process that receives the communication is a server.
The BEA TUXEDO system is also about being able to architect, design, configure, and operate a distributed, business-critical application as a single unit.
The original design of the product was based on the classic design of OnLine Transaction Processing (OLTP) software in which a limited range of client requests is passed for quick bursts of processing against a central store of data. A frequently-used example of an OLTP application is a bank Automatic Teller Machine (ATM); the range of services offered to customers is limited-deposit, withdrawal, and a few others-and the store of data is the bank's customer record database.
Over the years since its introduction, the BEA TUXEDO system has been extended and enhanced in a number of significant ways, always with the intent of making communication between processes easier and more flexible.
To introduce the product we are going to break the BEA TUXEDO system down into five components. These are not components in the sense of being packaged or sold separately; indeed the product is fully integrated and is sold as a single unit (with add-on options). However, the parts we want to highlight are components in the sense that each is a piece of the total capability of the BEA TUXEDO system that you may elect to use or not use.
Here are the five components:
Introduction
BEA TUXEDO System Components
In this overview we will look at each component from three points of view: from the point of view of the designer or architect of a BEA TUXEDO application, from the point of view of a programmer, and finally, from the point of view of the implementer or administrator of such an application.
A fundamental question an application designer may ask about a software product is, "What does this software do that will help my business?" The description of BEA TUXEDO features that follows will, we hope, provide answers to that question.
The term client/server computing has been applied to so many cases that its meaning has become fuzzy.
In our definition, clients are responsible for bundling data items gathered from outside the application or computer and forwarding these bundles to servers for processing. Client processes are often made available to users through devices such as ATMs and data entry terminals.
Servers are software modules responsible for processing requests and sending replies back to clients. Services are application-specific code within servers that process clients' requests. Often the processing calls for accessing a database.
The BEA TUXEDO system earns its reputation as an enhanced Client/Server model by virtue of numerous features, including:
Architectural Aspects of the BEA TUXEDO System
Client/Server Computing
BEA TUXEDO System's Enhanced Client/Server Model
BEA TUXEDO system applications are modular and extensible; the BEA TUXEDO system provides a natural way to structure the many different components of a distributed OLTP or general-purpose client/server application into well-defined units or programs.
When the BEA TUXEDO system is used with a commercial UNIX DBMS, the BEA TUXEDO system enhanced client/server architecture demands much less in the way of system resources than the same DBMS without the BEA TUXEDO system. This is because relatively few BEA TUXEDO system servers can service literally hundreds of clients. In fact, in benchmark tests with commercial UNIX DBMSs, the BEA TUXEDO system has increased performance, measured in transactions per second, by a factor of 40.
Figure 1 provides a high-level glimpse of the client/server architecture.
The Administration Console is a new interface for the configuration and administration of BEA TUXEDO applications. It provides a helpful set of tools, principal among which are the "Tree" and the "Configuration Tool." The Tree is a graphical depiction of the hierarchical composition of the objects that make up a BEA TUXEDO application. The Configuration Tool is a set of "tabbed folders" on the screen that display data and prompt the administrator for the information needed to configure any class of administrative objects. In addition, the context-sensitive help feature allows the user to get detailed information about any GUI tool or field for which input is required.
The BEA TUXEDO system has defined a set of almost three dozen system events that are detected and reported on. The list of system events tracked is published in The BEA TUXEDO system can be conceptually divided into several major components or subsystems such as the core system, Workstation, /Q, and others. A component contains classes of objects; classes have attributes for which a range of values can be defined. When all of the classes and their objects are viewed as one larger object, that object is referred to as a MIB. There are several MIB entries in Section 5 of the BEA TUXEDO Reference Manual and probably the quickest way to grasp the idea of MIBs is to spend a few minutes with one of those entries.
The significance of the MIBs lies in the fact that they provide the framework for programmed administration of a BEA TUXEDO system. By changing the value of an attribute an administrator or operator can change the behavior of the system and can do it by executing programs written specifically to do so. A MIB entry in the BEA TUXEDO Reference Manual not only tells the allowed values for an attribute, it also tells the circumstances under which the value can be changed. For example, the description of the attribute The BEA TUXEDO System provides for the connectivity of a network of loosely coupled computers running clients and servers within the framework of a single application. Application designers have great flexibility when choosing platforms on which to implement applications. BEA TUXEDO system networking libraries work with either the Transport Layer Interface (TLI) library or Sockets interface, and can also successfully mix the two interfaces within one application. What this provides, at the application level, is independence from the underlying network. In addition, because the BEA TUXEDO system networking libraries hide the specifics of a particular transport mechanism, other networking interfaces, such as X.25 or SPX/IPX, can be seamlessly introduced.
The DTP capability of the BEA TUXEDO system guarantees the integrity of data accessed across several sites or managed by different database products. The BEA TUXEDO system coordinates distributed transactions to allow multi-site updates against heterogeneous databases on networked computers. The BEA TUXEDO system tracks transaction participants via the notion of a global transaction and supervises a two-phase commit protocol, ensuring that transaction commit and rollback are properly handled at each site. For instance, in a banking example of transferring money between accounts, a transaction will ensure that the debit to the "from" account won't happen unless the credit to the "to" account occurs, guaranteeing consistency.
The BEA TUXEDO system incorporates X/Open's TX interface for transaction demarcation. This interface allows an application writer to bracket a group of operations such that all of them will be done or none of them get done.
The BEA TUXEDO system also coordinates the recovery of global transactions in the event of site failure, network failure or global resource deadlocks. The BEA TUXEDO system uses the XA interface for communicating with the various resource managers. This interface was proposed by BEA TUXEDO to X/Open and has been accepted by X/Open as the standard interface for distributed transaction control between the transaction manager and resource managers.
BEA TUXEDO system applications communicating with one of the available API methods send and receive their data in typed buffers. Instead of allocating memory directly from the operating system, applications allocate typed buffers from the BEA TUXEDO system in which to place their data. Typed buffers are data structures defined by application designers and made known to the BEA TUXEDO system. Because the BEA TUXEDO system knows about the application data buffers, it can optimally manipulate them during communication. The BEA TUXEDO system provides several different kinds of typed buffers, but also allows application designers to define their own.
The BEA TUXEDO system incorporates X/Open's XA Interface standard for coordinating transactions among multiple database managers participating in an application. The XA interface is part of X/Open's DTP model. Having this interface in the BEA TUXEDO system gives a customer the following benefits:
Figure 1 Client/Server Architecture
Web-based Graphical User Interface for Administration
Event Broker/Monitor
EVENTS(5). When an event is detected the Event Broker/Monitor is informed by the system; it, in turn, passes the information along to any subscribing processes. An event can be as innocuous as a change in the system configuration or as potentially harmful as a failure in the system network. Subscribers sign up to receive information for as many of the monitored events as they are interested in. They can also choose to receive notification in several ways: it can be sent via unsolicited notification, it can be queued to stable storage via the Queue Management facility, or the event can be used to kick off a service. To illustrate, notice of a message queue blockage could be used to start a server that activates more servers in that group. An application also has the ability to define its own set of events, publish a list like that in EVENTS(5), and allow users to subscribe.
Management Information Base (MIB)
TA_STATE in class T_SERVER of the TM_MIB tells how the administrator can use the attribute to change the state of a server (and provides a list of valid states.) It also says that the value can be changed by the administrator or the operator when the server is active; others can retrieve the state, but may not change it. The real power of this lies in the fact that a program can be written to make the change when some condition is detected.
Distributed Services
Distributed Transaction Processing (DTP)
Typed Buffers
X/Open XA Compliance
The BEA TUXEDO system provides five levels of application security. This enables application developers to select the degree of security appropriate for the application.
Security
For a more in-depth discussion of the BEA TUXEDO system we recommend the BEA TUXEDO Application Development Guide, the Administering the BEA TUXEDO System, and the chapter entitled "The BEA TUXEDO System Development Environment" in the BEA TUXEDO Programmer's Guide.
Once application architects have agreed on the overall design of a BEA TUXEDO application, programmers have a number of possibilities.
The BEA TUXEDO system provides an API that offers both library-based and language-based programming. Library-based programming involves the use of a set of C or COBOL procedures. The BEA TUXEDO procedure library is known as the Application-to-Transaction Manager Interface (ATMI). It is a superset of X/Open's XATMI and TX interfaces.
Two additional choices are the BEA TUXEDO system's Field Manipulation Library (FML) and UFORM, a set of statements for describing data entry forms.
The BEA TUXEDO API provides a remote procedure call facility called TxRPC, which is a language-based programming paradigm. (It is described later in this chapter.) With this facility the application defines the procedures by means of an Interface Definition Language (IDL).
Selected by X/Open as the reference technology for OLTP application programming, ATMI was designed to support the enhanced client/server architecture of the BEA TUXEDO system; it is well suited to support OLTP applications.
ATMI lets programmers define transaction boundaries within their application so the work performed within services can be treated as an atomic unit. That means, within a single BEA TUXEDO transaction, the work performed in various services, accessing various databases across many computers, is either committed or rolled back as a single atomic unit of work. This keeps all the databases synchronized, even if there are machine failures.
ATMI also supports a conversational paradigm. Several types of applications, for example, database servers, require the notion of a conversation with a server during which context is kept from message to message. Application programmers can use the conversational functions to establish and maintain state-preserving connections between the requesting process and conversational server processes. Specifically, programmers can do the following:
Documentation
Programming Aspects of the BEA TUXEDO System
Introduction to the BEA TUXEDO API
ATMI
A conversational server is dedicated to the originating requester for the duration of the connection; the system automatically spawns a new copy of a server if one is not available when a conversational connection is requested.
Client and server processes may be written in either the COBOL or C programming language. An application may contain both languages. Alternatively, any one of 20 or more Rapid Application Development (RAD) tools can be used.
If the BEA TUXEDO System Field Manipulation Language (FML) and its fielded buffer concept are specified by the application designers, programmers have a rich array of functions for the definition and management of FML fields and buffers.
The selection includes functions to move data back and forth between a fielded buffer and a C structure or COBOL record (referred to as a VIEW), the members of which parallel the buffer's fields.
The FML function set has a companion function set, FML32, designed for use with larger records with more fields.
The BEA TUXEDO /AdminAPI is more a concept than a set of function calls. It refers to the use of the ATMI, FML buffers, and FML32 buffers to bring about programmed administration of an application. Programs can be written to manipulate the value of attribute fields in the Management Information Base (MIB). The programs can be set up to run at a certain time or when certain conditions are detected. This means that the administration of a BEA TUXEDO application can be planned in advance and automated; it no longer needs to rely solely on the judgement and attention span of a person at a system console.
For a more in-depth discussion of BEA TUXEDO programming, we recommend the BEA TUXEDO Application Development Guide, the BEA TUXEDO Programmer's Guide, the BEA TUXEDO FML Programmer's Guide, the BEA TUXEDO COBOL Guide, and of course, Section 3C of the BEA TUXEDO Reference Manual.
After the shape of a BEA TUXEDO application has been determined by the application architects, and in parallel with the development of application clients and services, the work of specifying the configuration can begin.
The BEA TUXEDO system provides a rich set of configuration and administration facilities required for production OLTP applications. The following are some of the features provided for the BEA TUXEDO application administrator:
FML
The /AdminAPI
Documentation
Implementation and Administration Aspects of the BEA TUXEDO System
Configuration and Administration
For a more in-depth discussion of BEA TUXEDO administration, we recommend the Administering the BEA TUXEDO System, and Sections 1 and 5 of the BEA TUXEDO Reference Manual.
Originally client processes had to be located on a machine with a full BEA TUXEDO installation. The Workstation feature moves client processes off the main BEA TUXEDO machine.
Documentation
BEA TUXEDO Workstation
Features
BEA TUXEDO Workstation allows customers to use ATMI's full client-side functionality with a UNIX System-based OLTP application from the PC/workstation tier. Each instantiation of BEA TUXEDO Workstation provides the power of the BEA TUXEDO system client functionality for the workstation tier without needing to support the full BEA TUXEDO system core capability on the workstation. Because the programming interface is the same as that used by application programmers in any BEA TUXEDO system environment, no retraining is needed to use the ATMI in BEA TUXEDO Workstation.
Client development can be done on a workstation of the desired platform in a central laboratory and moved as binary files to the field locations. This feature also provides the advantage of removing terminal character processing or graphical processing overhead from the UNIX server CPUs in an open OLTP application. Character handling overhead associated with character-based ASCII terminals is extremely high. Processing associated with GUIs uses significant resources. The benefit of moving that portion of an open OLTP application to the intelligent processing available at the workstation tier is that it results in more efficient use of both the workstation tier and the server tier.
The BEA TUXEDO System Workstation DLL (Dynamic Link Libraries) product takes the next step by extending the Workstation programming interface to the Microsoft Windows, Windows NT and OS/2 environments. This capability allows for more efficient use of memory by having a single copy of a library support various applications. With improved memory management, applications can process larger amounts of data than before. Using this feature, it is now possible to invoke the BEA TUXEDO system libraries from interpretive environments such as Visual Basic, ObjectVision and SQL Windows.
A multi-threaded gateway process referred to as a workstation handler resides on the native BEA TUXEDO system side to handle communication between Workstation clients and native BEA TUXEDO servers.
From the MS-DOS, Windows and Windows NT workstation tier, customers are provided with the same client functionality available to users logged directly onto the core BEA TUXEDO system. Client processes may be written in either the COBOL or C programming language.
Communications between a BEA TUXEDO system MS-DOS client and a BEA TUXEDO system application are provided for by Novell's LAN Workplace for DOS, which uses TCP/IP as the communications protocol. Networking under Windows makes use of the standard "Windows Sockets Interface."
From the UNIX workstation tier, customers are provided with the same client functionality available to users logged directly onto the core BEA TUXEDO system. Client processes may be written in either the COBOL or C programming language.
From the OS/2 workstation tier, customers are provided with the same client API available to users logged directly onto the core BEA TUXEDO system in character mode. 32-bit libraries are provided. Client processes may be written in either the COBOL or C programming language.
BEA TUXEDO Workstation provides extended security that supports Kerberos or other authentication systems that do login authentication for the Workstation clients. This feature provides the additional security needed to authorize clients accessing a UNIX-based OLTP application from a non-secure MS-DOS or UNIX workstation environment.
For a more in-depth discussion of BEA TUXEDO Workstation, we recommend the BEA TUXEDO Workstation Guide.
Architectural Aspects of BEA TUXEDO Workstation
BEA TUXEDO System Workstation DLL
Workstation Handler
Programming Aspects of BEA TUXEDO Workstation
Client-Side ATMI for MS-DOS, Windows and Windows NT Workstations
Client-Side ATMI for UNIX System Workstations
Client-Side ATMI for OS/2 System Workstations
Implementation/Administration Aspects of BEA TUXEDO Workstation
Security
Documentation
BEA TUXEDO /Q
Features
The BEA TUXEDO /Q feature makes it possible for an application, within a global transaction, to enqueue a message to stable storage for processing later. One advantage is that when BEA TUXEDO is used in an environment where a machine, server, or resource is unavailable or unreliable, as in a wide-area network, /Q can provide continuous processing, storing messages for processing when available. Another advantage is in batch processing of a transaction that could be long running. You are guaranteed the message will eventually be processed so you do not have to wait until it completes. This feature can also be used for work flow provisioning where each step generates a queued request to do the next step in a process. Properties such as data-dependent routing and priority handling are kept intact for queue-based requests and replies.
BEA TUXEDO /Q may be combined with BEA TUXEDO Workstation to enqueue and dequeue messages from Workstation clients. The interface is available to both the COBOL and C programming languages.
In addition to the whole programming vocabulary available to BEA TUXEDO programmers, two others are available when the application is using /Q:
Architectural Aspects of BEA TUXEDO /Q
Programming Aspects of BEA TUXEDO /Q
tpenqueue(3c) stores a message on a named queue
The two functions are available in both C and COBOL.
The administrative functions of BEA TUXEDO /Q provide the system administrator with a great deal of flexibility in establishing and managing the queues. They allow the system administrator to configure the following BEA TUXEDO system servers provided with the queued message facility:
Implementation/Administration Aspects of BEA TUXEDO /Q
TMQUEUE) enqueues and dequeues messages on behalf of clients and servers. This allows for transparent enqueueing and dequeueing of messages, whether or not the process is local to the queue.
For a more in-depth discussion of BEA TUXEDO /Q, we recommend the BEA TUXEDO /Q Guide.
Documentation
BEA TUXEDO Domains
Features
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 four programming paradigms: request/response, connection-oriented processing, enqueue/dequeue, and unsolicited notification. 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 system 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 multi-tasking gateway that processes outgoing and incoming service requests to or from remote domains.
A Domains gateway is a BEA TUXEDO system-supplied server that enables access to and from remote domains. Domains gateways (DGW) run as a Multiple Server Single Queue set (MSSQ) where each gateway uses a common request queue and has its own reply queue. In addition, Domains provides a gateway administrative server (GWADM) that enables run-time administration of the Domains gateway group and a Domains administrative server (DMADM) that enables run-time administration of the Domains configuration information. Domains gateways support the following functionality:
Architectural Aspects of BEA TUXEDO Domains
The important point here is that programmers on a BEA TUXEDO application using the Domains feature deal with client/server communication in exactly the same way they would on an application that does not use Domains. The full set of API choices is available.
The application administrator enables remote domain access by specifying a gateway group and a domain administration group in the For a more in-depth discussion of BEA TUXEDO Domains, we recommend the BEA TUXEDO Domains Guide.
Programming Aspects of BEA TUXEDO Domains
Implementation/Administration Aspects of BEA TUXEDO Domains
GROUPS section of the TUXCONFIG file, and by adding entries for the gateway and the two administrative servers in the SERVERS section.
Documentation
BEA TUXEDO TxRPC
Features
BEA TUXEDO TxRPC gives application architects a language-based Request/Response paradigm.
Remote procedures are defined using an interface definition language (IDL) that specifies the procedure's parameters and return values plus additional information.
The set of interface definitions developed for an application can be codified and shared among all programmers on a project.
TxRPC can be used from BEA TUXEDO Workstation clients and in inter-domain communication. Applications can either use any of the typed buffers provided by the BEA TUXEDO system, or add buffer types of their own.
BEA TUXEDO TxRPC manages the connection between the client and server processes transparently so that application programmers can concentrate on the work of the application.
The following shell commands and functions are added:
Architectural Aspects of BEA TUXEDO TxRPC
Programming Aspects of BEA TUXEDO TxRPC
bldc_dce(1) builds a BEA TUXEDO client that acts as an OSF/DCE -> BEA TUXEDO gateway.
blds_dce(1) builds a BEA TUXEDO server that acts as a BEA TUXEDO -> OSF/DCE gateway.
tidl(1) is the BEA TUXEDO IDL compiler.
uuidgen(1) generates a universal unique identifier for an IDL interface definition.
Manual pages for these shell commands can be found in Section 1 of the BEA TUXEDO Reference Manual.
TRY(3c) is an exception-returning interface for TxRPC.
Manual pages for these RPC functions can be found in Section 3c of the BEA TUXEDO Reference Manual.
Defining TxRPC servers in a BEA TUXEDO system configuration file is no different from defining a Request/Response server-unless the remote procedure call goes through a DCE Gateway process. In that case both the gateway and the DCE server must run on a POSIX platform that has DCE software installed on it. In the BEA TUXEDO system configuration file a gateway server group needs to be defined and DCE entities have to be added to the DCE Registry.
Examples of TxRPC applications (both with a Gateway and without) are included in the BEA TUXEDO TxRPC Guide.
The BEA TUXEDO system is considered the de facto standard for open OLTP solutions. As the de facto standard, the BEA TUXEDO system offers several capabilities on the leading edge of open OLTP. The BEA TUXEDO system is a mature, proven, and widely available product currently used as the benchmark against which other UNIX-based OLTP transaction monitors are compared. This combination yields a state-of-the-art technical solution capable of providing industrial-strength open OLTP. Workstation is a product extension which pushes the definition of open OLTP past the UNIX environment into multiple workstation environments. BEA TUXEDO System/Q guarantees and schedules message delivery.
The BEA TUXEDO system's architecture and many of its features have existed in earlier versions of the product dating as far back as 1978. The current product incorporates these features as well as significant functionality that reflects customer input and technical advances in open systems. Applications have been built with the BEA TUXEDO system since 1983 and the product has been commercially available since 1986 with over 60 applications and over 1,000 sites in production worldwide. The present release represents the sixth generation of the product, which continues to evolve around customer demands for open, affordable, and flexible OLTP technology.
Implementation/Administration Aspects of BEA TUXEDO TxRPC
Documentation
Summary