Tuxedo (software)
   HOME

TheInfoList



OR:

Tuxedo (Transactions for
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, ...
, Extended for Distributed Operations) is a
middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement ...
platform used to manage distributed transaction processing in
distributed computing A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
environments. Tuxedo is a
transaction processing system Transaction processing is a way of computing that divides work into individual, indivisible operations, called transactions. A transaction processing system (TPS) is a computer software, software system, or software/computer hardware, hardware co ...
or transaction-oriented middleware, or enterprise application server for a variety of systems and programming languages. Developed by
AT&T AT&T Inc. is an American multinational telecommunications holding company headquartered at Whitacre Tower in Downtown Dallas, Texas. It is the world's largest telecommunications company by revenue and the third largest provider of mobile ...
in the 1980s, it became a software product of
Oracle Corporation Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
in 2008 when they acquired BEA Systems. Tuxedo is now part of the Oracle Fusion Middleware.


History

From the beginning in 1983, AT&T designed Tuxedo for high availability and to provide extremely scalable applications to support applications requiring thousands of transactions per second on commonly available distributed systems. The original development targeted the creation and administration of operations support systems for the US
telephone company A telephone company, also known as a telco, telephone service provider, or telecommunications operator, is a kind of communications service provider (CSP), more precisely a telecommunications service provider (TSP), that provides telecommunicat ...
that required online transaction processing (OLTP) capabilities. The Tuxedo concepts derived from the Loop Maintenance Operations System (LMOS). Tuxedo supported moving the LMOS application off mainframe systems that used Information Management System (IMS) from IBM on to much cheaper distributed systems running (AT&T's own)
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, ...
. The original Tuxedo team comprised members of the LMOS team, including Juan M. Andrade, Mark T. Carges, Terrence Dwyer, and Stephen Felts. In 1993
Novell Novell, Inc. was an American software and services company headquartered in Provo, Utah, that existed from 1980 until 2014. Its most significant product was the multi- platform network operating system known as Novell NetWare. Under the le ...
acquired the Unix System Laboratories (USL) division of AT&T which was responsible for the development of Tuxedo at the time. In September 1993 it was called the "best known" distributed transaction processing monitor, running on 25 different platforms. In February 1996, BEA Systems made an exclusive agreement with Novell to develop and distribute Tuxedo on non-
NetWare NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the IPX network protocol. The original NetWare product in ...
platforms, with most Novell employees working with Tuxedo joining BEA. In 2008,
Oracle Corporation Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
acquired BEA Systems, and TUXEDO was marketed as part of the Oracle Fusion Middleware product line. Tuxedo has been used as transactional middleware by a number of multi-tier application development tools. The Open Group used some of the Tuxedo interfaces as the basis of their standards such as
X/Open XA For transaction processing in computing, the X/Open XA standard (short for "eXtended Architecture") is a specification released in 1991 by X/Open (which later merged with The Open Group) for distributed transaction processing (DTP). Goals The ...
and XATMI. The Tuxedo developers published papers about it in the early 1990s. Later it became the basis of some research projects.


Features

* Standards based APIs - SCA, The Open Group XATMI, Object Management Group CORBA * Communication types - Synchronous, Asynchronous, Conversational, Unsolicited Notifications, Publish/subscribe * Typed buffers ** FML/FML32 - Self-describing fielded buffers similar to
Abstract Syntax Notation One Abstract Syntax Notation One (ASN.1) is a standard interface description language for defining data structures that can be serialized and deserialized in a cross-platform way. It is broadly used in telecommunications and computer networking, a ...
or Fast Infoset **
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
** STRING and multibyte strings MBSTRING ** CARRAY binary blobs ** VIEW/VIEW32 externally described records ** RECORD representing COBOL record structures * Transaction Management - Global Transactions - Two-phase commit protocol -
X/Open XA For transaction processing in computing, the X/Open XA standard (short for "eXtended Architecture") is a specification released in 1991 by X/Open (which later merged with The Open Group) for distributed transaction processing (DTP). Goals The ...
* /D - Clustering - Domains */WS - Remote Clients * WTC - Weblogic Tuxedo Connector * Java clients - Jolt * Java EE (J2EE) Integration - Tuxedo JCA Adapter * Bidirectional SOAP and REST Web Services - SALT * /Q - Transient (in memory) and Persistent Queues (also called Reliable Queues) * Data Dependent Routing (DDR) * Event Broker (also called publish and subscribe messaging) * Security - Authentication, Authorization, Auditing, and
Public key infrastructure A public key infrastructure (PKI) is a set of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption. The purpose of a PKI is to facili ...
based message signing and encryption * Programmed Administration and
SNMP Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behaviour. Devices that typically ...
support * System and application performance monitoring - TSAM Plus * Load balancing, server spawning and decay * Mainframe connectivity - TMA * Supports C, C++,
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily u ...
, Python,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
, PHP, and
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
applications on most
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, ...
platforms,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
, and other proprietary platforms such as
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
and
IBM i IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS i ...
.


Messaging core

Tuxedo is at its core a message routing and queuing system. Requests are sent to named services and Tuxedo uses memory-based
inter-process communication In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categoriz ...
facilities to queue the requests to servers. The requester is unaware of where the server that actually processes the request is located or how it is implemented. In essence, Tuxedo provided the elements of
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provid ...
(SOA) decades before the phrase was coined. Tuxedo can use the content of the message to determine what servers should be utilized to receive the request by means of data-dependent routing.


Clustering

The heart of the Tuxedo system is the Bulletin Board (BB). This is a shared memory segment that contains the configuration and state of a Tuxedo domain. Servers, services, transactions, and clients are all registered in the BB providing a global view of their state across the machines within a domain. To coordinate updates to the BB a process called the Bulletin Board Liaison (BBL) runs on each machine to keep the local copy of the BB up-to-date. A master machine runs a process called the "Distinguished Bulletin Board Liaison" that coordinates the updates to the BB. This allows each machine to have a view of what servers, services, transactions, and clients are on each machine within the domain. Another process on each machine called the Bridge is responsible for passing requests from one machine to another. This allows Tuxedo to spread load across the various machines within a domain and allows servers and services to be running on multiple machines. In addition, the BBL and Bridge monitor each other and restart the other should one fail. In the advent of a failure of the master machine, another machine designated as a backup master can take over the function of master machine. Also, since machines within a single domain can be of different architectures (x86, IA32, SPARC, P-Series, etc.), the Bridge is also responsible for handling differences in things like
endianness In computing, endianness, also known as byte sex, is the order or sequence of bytes of a word of digital data in computer memory. Endianness is primarily expressed as big-endian (BE) or little-endian (LE). A big-endian system stores the mos ...
. On
Oracle Exalogic Exalogic is a computer appliance made by Oracle Corporation, commercially available since 2010. It is a cluster of x86-64-servers running Oracle Linux or Solaris preinstalled. Its full trade mark is ''Oracle Exalogic Elastic Cloud'' (derived from ...
Tuxedo leverages the RDMA capabilities of InfiniBand to bypass the bridge. This allows the client of a service on one machine to directly make a request of a server on another machine.


Flexible buffer formats

Tuxedo applications can utilize a variety of message formats depending upon the type of data that is to be passed. One of the most popular formats is the FML buffer format which is much like a binary
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
or ASN.1 format. FML buffers can contain an arbitrary number of named fields of arbitrary type. Fields can be repeated and nested. As it is a self-describing binary format, the processing of fields incurs very little overhead in comparison to the parsing necessary to support something like XML. VIEW buffers are essentially records, C structures, or COBOL copybooks. A VIEW buffer has an external description which allows Tuxedo to access the fields within it if necessary for things like data dependent routing. Other buffer formats include XML, CARRAY (opaque binary data), STRING, and MBSTRING (a string buffer containing multibyte characters.) Tuxedo can automatically and transparently convert FML buffers to and from XML buffers. There is also support for user-developed buffer types (for example JamFlex buffers defined by Tuxedo version of Panther RAD toolset).


Communication concentrators

For remote clients (Java, CORBA, or/WS), Tuxedo provides communication concentrators called listener/handlers that handle the remote network communication. Clients connect to these communication concentrators, which act as proxies for the clients. As clients make requests, the listener/handler uses the local Tuxedo infrastructure to make the request on the behalf of the client. Tuxedo then load balances the requests across the servers within the domain that offer the service even if the server is not on the local machine. This is in contrast to most Java EE application servers where load balancing is done by the client making requests to different machines with the cluster.


Gateways

To facilitate the sharing of services across domains, Tuxedo provides domain gateways. A domain gateway allows importing and exporting services from remote domains. This allows the local domain to see services on remote domains as though they were local services. The domain gateways are responsible for propagating security and transaction context to the remote domain. Besides connecting Tuxedo domains together, domain gateways exist for mainframe systems using
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the su ...
, IBM's Systems Network Architecture (SNA), or the OSI protocols, and
Java Platform, Enterprise Edition Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web ser ...
application servers. For the mainframe gateways, each system sees the services imported from the remote system as local services and use the local systems infrastructure to interact with those services. This means that Tuxedo sees a CICS transaction as a Tuxedo service, and CICS sees a Tuxedo service as a CICS transaction.


Failure recovery

The BBL on each machine monitors the state of all servers and can automatically restart failed servers. It can also detect hung servers and kill/restart them as required. The BRIDGE process in a clustered environment monitors to BBL, so there are no single points of failure. Any transactions that are affected by a server or machine failure and that have not completed the prepare phase are rolled back. Transactions that have completed the prepare phase but not the commit phase will be committed as part of the Tuxedo boot sequence.


Transaction monitoring and coordination

Tuxedo applications can request that all service invocations and their associated updates to any resources controlled by resource managers (such as databases) be controlled by a transaction. Once the application begins a transaction, all subsequent service invocations and nested invocations are included as part of that transaction, even those services that were executed on remote domains. Tuxedo then coordinates the commit processing with the resource managers to ensure atomic updates to all affected resources. Transactions can be controlled by the application or automatically controlled by the Tuxedo configuration, i.e., container managed transactions.


Queuing subsystem

Tuxedo provides a queuing subsystem called /Q. This facility provides transient and persistent queues that allows applications to explicitly enqueue and dequeue messages from named queues. Queues can be ordered by message availability time, expiration time, priority, LIFO, FIFO, or a combination. Queues are managed by an XA compliant resource manager allowing queue operations to participate in distributed transactions. An automated queue forwarding server is provided that will remove entries from a queue and invoke an associated Tuxedo services, placing the reply message on an associated reply queue.


Event subsystem

The event subsystem within Tuxedo provides support for unsolicited events as well as brokered events. Unsolicited events allow Tuxedo applications to send out-of-band notifications to clients that aren't necessarily waiting for a response. Brokered events allow application to subscribe to events of interest and when another application posts an event, all applications subscribed to that event receive it. This allows applications to use an event driven model instead of the more typical request/response model. As well this provides a publish and subscribe messaging model that can be combined with /Q.


Add-on Products

Oracle offers a number of add-on products to Tuxedo.


Mainframe re-hosting

In March 2010, Oracle announced two new products. Application Runtime for CICS and Batch along with the associated Oracle Tuxedo Application Rehosting Workbench allows the migration of IBM Customer Information Control System (CICS) and batch applications onto Tuxedo on distributed systems. By providing automated conversion tools, CICS equivalent API pre-processor macro expansion, and a JES-2 like Batch execution environment, the migration of mainframe applications is greatly simplified.


SALT

This product provides a bi-directional web services SOAP/HTTP(S) gateway. This gateway allows Tuxedo services to be accessed by external SOAP clients without making any changes to the Tuxedo service. Likewise, Tuxedo applications can call an external web service as though it were a local Tuxedo service. The latest version of SALT supports WS-AtomicTransactions and modules for Apache Web Server, Oracle HTTP Server, and Oracle iPlanet Web Server, that allows the creation of dynamic web content by calling Tuxedo services. In version 12.1.3 SALT added support for RESTful services.


TSAM Plus

This product provides centralized monitoring capabilities for multiple Tuxedo domains. TSAM Plus agents are deployed on the machines in a Tuxedo domain. These agents collect metric data from the running Tuxedo processes based on a configured policy, and send the data back to the TSAM Plus Manager where it is used historically or in real time. TSAM Plus provides configuration information, call path, call pattern, service execution, transaction, and more monitoring metrics. TSAM Plus also monitors Tuxedo ART CICS and Batch applications. An additional component of TSAM Plus is a plug-in for Oracle Enterprise Manager Cloud Control that provides full operation, configuration, administration, and management of a Tuxedo application.


Tuxedo Mainframe Adapters (TMA)

This product provides a set of gateway processes that run on Tuxedo that communicate with a mainframe using its native protocols. This gateway provides bidirectional integration between mainframe and Tuxedo platforms and makes Tuxedo appear as a remote CICS or IMS region to the mainframe, and the remote CICS or IMS region as another Tuxedo domain to the local Tuxedo application.


JCA Adapter

The Tuxedo JCA adapter provide a JCA 1.5 compliant Resource Adapter that can be deployed to any Java EE (J2EE) 1.5 or later JCA container. The adapter supports both the JCA Common Client interface or CCI, as well as the JATMI interface supported by the Oracle WebLogic Tuxedo Connector component of Oracle WebLogic Server. Message inflow and outflow is supported along with distributed transaction support.


Tuxedo Message Queue

Provides enterprise messaging capabilities that combines the features of Oracle MessageQ with Tuxedo. This extends the existing /Q message queuing facility of Tuxedo by providing things like delivery notification, offline messaging, and store and forward capability.


References


Further reading

*


External links


Oracle Tuxedo website
{{Oracle BEA Systems Message-oriented middleware Oracle software Service-oriented architecture-related products
Tuxedo Black tie is a semi-formal Western dress code for evening events, originating in British and American conventions for attire in the 19th century. In British English, the dress code is often referred to synecdochically by its principal element ...