Tuxedo (software)
| Company type | Middleware software |
|---|---|
| Industry | Enterprise software, Middleware |
| Predecessor | Loop Maintenance Operations System (LMOS) |
| Founded | 1983 |
| Founder | Juan M. Andrade, Mark T. Carges, Terrence Dwyer, Stephen Felts |
| Headquarters | United States |
Area served | Worldwide |
| Parent | Oracle Corporation |
Tuxedo (Transactions for Unix, Extended for Distributed Operations) is a middleware solution designed to oversee distributed transaction processing within enterprise-level settings. It operates both as a transaction processing system and an enterprise application server, supporting a variety of operating systems and programming languages. Initially created by AT&T during the 1980s, Tuxedo was incorporated into Oracle Corporation’s portfolio in 2008 after Oracle acquired BEA Systems. It is now part of the Oracle Fusion Middleware collection.
History
Launched in 1983, Tuxedo was engineered by AT&T to deliver high availability and scalability, capable of handling thousands of transactions per second across distributed architectures. Its original purpose was to enable online transaction processing (OLTP) for operations support systems within the US telephone network.
The platform originated as an evolution of the Loop Maintenance Operations System (LMOS), aimed at transitioning LMOS applications from expensive IBM IMS-based mainframes to more cost-effective distributed Unix environments. The founding development team comprised Juan M. Andrade, Mark T. Carges, Terrence Dwyer, and Stephen Felts.
In 1993, Novell purchased AT&T’s Unix System Laboratories division, which managed Tuxedo’s development; by that time, Tuxedo had established itself as a premier distributed transaction processing monitor available on over 25 different platforms. BEA Systems obtained exclusive rights in 1996 to develop and distribute Tuxedo on platforms other than NetWare, assimilating much of Novell’s Tuxedo development personnel.
Following Oracle’s acquisition of BEA Systems in 2008, Tuxedo was integrated into Oracle’s Fusion Middleware suite.
Tuxedo has played a significant role in shaping industry standards such as X/Open XA and XATMI through interfaces standardized by The Open Group. It has also been utilized as transactional middleware in numerous multi-tier application development environments and has supported various research initiatives focused on enhancing transaction processing scalability and capacity management.
Features
- Compliance with standard APIs – including SCA, The Open Group XATMI, and Object Management Group CORBA
- Communication modes – Synchronous, Asynchronous, Conversational, Unsolicited Notifications, and Publish/subscribe
- Typed buffer formats:
- FML/FML32 – Self-describing fielded buffers akin to Abstract Syntax Notation One or Fast Infoset
- XML
- STRING and multibyte string (MBSTRING)
- CARRAY for binary large objects
- VIEW/VIEW32 for externally defined record structures
- RECORD mirroring COBOL record layouts
- Transaction capabilities – Support for Global Transactions using Two-phase commit protocol and X/Open XA
- /D – Support for Clustering and Domain management
- /WS – Remote client connectivity
- WTC – Integration via Weblogic Tuxedo Connector
- Java client support through Jolt
- Java EE (J2EE) integration enabled by the Tuxedo JCA Adapter
- Bidirectional SOAP and RESTful Web Services implemented via SALT
- /Q – Management of Transient (in-memory) and Persistent (durable) Queues
- Data Dependent Routing (DDR)
- Event Broker functionality supporting publish-subscribe messaging patterns
- Security features encompassing Authentication, Authorization, Auditing, along with message signing and encryption based on Public key infrastructure
- Programmable administration interfaces coupled with SNMP compatibility
- Monitoring tools for system and application performance provided by TSAM Plus
- Load balancing mechanisms, dynamic server spawning, and decay control
- Mainframe integration through TMA
- Broad language support including C, C++, COBOL, Python, Ruby, PHP, and Java across most Unix variants, Linux, Microsoft Windows, as well as proprietary platforms such as OpenVMS and IBM i
Messaging core
Fundamentally, Tuxedo operates as a message routing and queuing platform. Requests are directed to designated services, utilizing memory-based inter-process communication to queue these requests for servers. The client remains unaware of the server’s physical location or its internal design. In essence, Tuxedo incorporated essential aspects of service-oriented architecture (SOA) long before the concept was formally recognized. It employs the content of messages to perform data-driven routing, selecting the appropriate servers for handling each request.
Clustering
At the heart of Tuxedo lies the Bulletin Board (BB), a shared memory segment that holds the configuration and current status of a Tuxedo domain. Servers, services, transactions, and clients register themselves within the BB, providing a unified overview that spans multiple machines. Each host runs a Bulletin Board Liaison (BBL) process responsible for synchronizing its local BB copy, while a master machine operates the Distinguished Bulletin Board Liaison to oversee BB updates across the domain. This architecture enables every machine to monitor servers, services, transactions, and clients throughout the entire domain.
A Bridge process on each host facilitates request routing between machines, supporting load balancing and allowing services to function across multiple systems. The BBL and Bridge processes mutually supervise and restart one another if necessary. In case the master machine fails, a predetermined backup takes over its responsibilities. Because domain machines may have varying architectures (such as x86, IA32, SPARC, or P-Series), the Bridge also handles differences like endianness.
On Oracle Exalogic, Tuxedo utilizes InfiniBand RDMA technology to bypass the Bridge layer, enabling direct client-to-server communication across different machines.
Flexible buffer formats
Tuxedo accommodates various message formats tailored to specific data types. The widely used FML buffer format functions similarly to a binary XML or ASN.1 structure, featuring named fields that can be repeated or nested with significantly lower processing overhead than XML parsing. VIEW buffers represent structured records or C data structures with external descriptors that facilitate field-level access for data-dependent routing decisions. Additional supported formats include XML, CARRAY (opaque binary data), STRING, and MBSTRING (multibyte character strings). Tuxedo transparently converts between FML and XML formats when needed.
The system also supports custom buffer types defined by users, such as JamFlex buffers originating from the Tuxedo adaptation of the Panther RAD toolkit.
Communication concentrators
For remote clients utilizing Java, CORBA, or Web Services protocols, Tuxedo offers communication concentrators known as listener/handlers that manage network interactions. These proxies accept client connections and leverage local Tuxedo infrastructure to execute requests on their behalf. Unlike many Java EE servers where clients manage load balancing by connecting directly to different servers, Tuxedo distributes requests evenly across all servers providing the requested service within the domain—even if those servers reside on remote machines.
Gateways
Tuxedo enables service sharing across multiple domains via domain gateways that import and export services from external domains, presenting them as if they were local. These gateways maintain security credentials and transaction contexts during cross-domain interactions. Beyond linking separate Tuxedo domains, gateways also connect mainframe environments through TCP/IP, IBM’s Systems Network Architecture (SNA), OSI protocols, and Java Platform, Enterprise Edition servers. Mainframe gateways allow each system to treat imported services as native; this integration lets Tuxedo recognize a CICS transaction as a service within its environment and vice versa.
Failure recovery
The BBL component of each server continuously tracks the status of server processes, automatically restarting any that have crashed or become unresponsive. In clustered setups, the BRIDGE process manages multiple BBL instances to prevent any single point of failure. Transactions that are interrupted before reaching the prepare phase are rolled back, whereas those that have passed prepare but not yet committed are completed during the Tuxedo startup routine.
Transaction monitoring and coordination
Tuxedo facilitates transaction-controlled service calls, including those that are nested or span remote domains. From the moment a transaction initiates, all modifications to resources overseen by resource managers (such as databases) are coordinated to guarantee atomic commit behavior. These transactions may be controlled directly by the application or automatically handled through Tuxedo’s configuration settings (container-managed transactions).
Queuing subsystem
The /Q queuing system provides both transient and persistent queue options with various ordering mechanisms like availability timing, expiration, priority levels, LIFO, and FIFO. Operating under an XA-compliant resource manager, queues actively participate in distributed transactions. An automated queue forwarding server processes queue entries by invoking corresponding Tuxedo services and placing responses onto specified reply queues.
Event subsystem
Tuxedo’s event subsystem supports two types of events: unsolicited and brokered. Unsolicited events allow clients to receive notifications asynchronously without requiring a response. Brokered events enable applications to subscribe and receive alerts when specific events occur, supporting an event-driven architecture alongside the conventional request/response model. This publish-subscribe mechanism is integrated with the /Q queuing infrastructure.
Add-on products
Oracle provides several supplementary products designed to extend Tuxedo’s functionality.
Mainframe re-hosting
In March 2010, Oracle launched Application Runtime for CICS and Batch along with the Oracle Tuxedo Application Rehosting Workbench. These solutions assist in migrating IBM CICS and batch workloads to Tuxedo running on distributed platforms by automating conversion processes, expanding CICS-equivalent API macros, and offering a batch execution environment similar to JES-2, thereby streamlining mainframe application transitions.
SALT
SALT functions as a bidirectional SOAP/HTTP(S) web services gateway that enables external SOAP clients to access Tuxedo services without requiring changes. It also permits Tuxedo applications to invoke external web services as if they were local services. The latest SALT release supports WS-AtomicTransactions and integrates seamlessly with Apache, Oracle HTTP Server, and Oracle iPlanet Web Server for generating dynamic web content. Version 12.1.3 introduced support for RESTful services.
TSAM Plus
TSAM Plus delivers centralized monitoring capabilities across multiple Tuxedo domains by deploying agents on domain machines. These agents gather data such as configuration details, call paths, service executions, and transaction metrics, forwarding this information to the TSAM Plus Manager for both real-time monitoring and historical analysis. It additionally supports monitoring of Tuxedo ART CICS and batch applications. An Oracle Enterprise Manager Cloud Control plug-in enables comprehensive management of Tuxedo operations, configuration, and administration.
Tuxedo Mainframe Adapters (TMA)
TMA provides gateway services that facilitate communication between Tuxedo and mainframe systems through native protocol support. This two-way integration allows Tuxedo to function as a remote CICS or IMS region from the mainframe perspective, and likewise enables the mainframe to interact with Tuxedo seamlessly, promoting smooth cross-platform connectivity.
JCA Adapter
The Tuxedo JCA adapter complies with JCA 1.5 standards and can be deployed within any Java EE 1.5 or newer environment. It supports both the JCA Common Client Interface (CCI) as well as the JATMI interface utilized by the Oracle WebLogic Tuxedo Connector in Oracle WebLogic Server, facilitating message exchange and distributed transaction management.
Tuxedo Message Queue
This component integrates Oracle MessageQ capabilities into Tuxedo, delivering robust enterprise messaging solutions. It extends Tuxedo’s /Q message queuing system by adding features such as delivery acknowledgments, offline message handling, and store-and-forward mechanisms.