Tuxedo (software)
Encyclopedia
Tuxedo is a middleware
platform used to manage distributed transaction processing in distributed computing environments. Tuxedo is a transaction processing system
or transaction-oriented middleware, or enterprise application server for a variety of systems and programming languages.
Developed first in the 1980s, it became a software product of Oracle Corporation
in 2008.
It was originally developed and designed by AT&T
in 1983 for the creation and administration of operations support systems for the US telephone company
that required online transaction processing
(OLTP) capabilities.
The Tuxedo concepts were 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 Unix
.
The original Tuxedo team was composed of members of the LMOS team. These included Juan M. Andrade, Mark T. Carges, Terrence Dwyer, and Stephen Felts.
In 1993 Novell
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 platforms, with most Novell employees working with Tuxedo joining BEA.
In 2008, Oracle Corporation
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
and XATMI.
The Tuxedo developers published papers about it in the early 1990s.
Later it was the basis of some research projects.
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
(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.
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.
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).
application servers where load balancing is done by the client making requests to different machines with the cluster.
, and Java Platform, Enterprise Edition
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.
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.
Middleware
Middleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...
platform used to manage distributed transaction processing in distributed computing environments. Tuxedo is a transaction processing system
Transaction Processing System
A transaction processing system is a type of information system. TPSs collect, store, modify, and retrieve the transactions of an organization. A transaction is an event that generates or modifies data that is eventually stored in an information system. To be considered a transaction processing...
or transaction-oriented middleware, or enterprise application server for a variety of systems and programming languages.
Developed first in the 1980s, it became a software product of Oracle Corporation
Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
in 2008.
History
Tuxedo was designed from the beginning for high availability and to provide extremely scalable applications to support applications requiring thousands of transactions per second on commonly available distributed systems.It was originally developed and designed by AT&T
AT&T
AT&T Inc. is an American multinational telecommunications corporation headquartered in Whitacre Tower, Dallas, Texas, United States. It is the largest provider of mobile telephony and fixed telephony in the United States, and is also a provider of broadband and subscription television services...
in 1983 for the creation and administration of operations support systems for the US telephone company
Telephone company
A telephone company is a service provider of telecommunications services such as telephony and data communications access. Many were at one time nationalized or state-regulated monopolies...
that required online transaction processing
Online transaction processing
Online transaction processing, or OLTP, refers to a class of systems that facilitate and manage transaction-oriented applications, typically for data entry and retrieval transaction processing...
(OLTP) capabilities.
The Tuxedo concepts were derived from the Loop Maintenance Operations System
Loop Maintenance Operations System
The Loop Maintenance Operations System is a telephone company trouble ticketing system that plays an essential part in the act of repairing local loops...
(LMOS).
Tuxedo supported moving the LMOS application off mainframe systems that used Information Management System (IMS) from IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
on to much cheaper distributed systems running Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
.
The original Tuxedo team was composed of members of the LMOS team. These included Juan M. Andrade, Mark T. Carges, Terrence Dwyer, and Stephen Felts.
In 1993 Novell
Novell
Novell, Inc. is a multinational software and services company. It is a wholly owned subsidiary of The Attachmate Group. It specializes in network operating systems, such as Novell NetWare; systems management solutions, such as Novell ZENworks; and collaboration solutions, such as Novell Groupwise...
acquired the Unix System Laboratories
Unix System Laboratories
Unix System Laboratories was originally organized as part of Bell Labs in 1989. USL joined with the UNIX Software Operation, also a Bell Laboratories division, in 1990. It assumed responsibility for Unix development and licensing activities...
(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
BEA Systems
BEA Systems, Inc. specialized in enterprise infrastructure software products known as "middleware", which connect software applications to databases and was acquired by Oracle Corporation on April 29, 2008.- History :...
made an exclusive agreement with Novell to develop and distribute Tuxedo on non-NetWare platforms, with most Novell employees working with Tuxedo joining BEA.
In 2008, Oracle Corporation
Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
acquired BEA Systems
BEA Systems
BEA Systems, Inc. specialized in enterprise infrastructure software products known as "middleware", which connect software applications to databases and was acquired by Oracle Corporation on April 29, 2008.- History :...
, and TUXEDO was marketed as part of the Oracle Fusion Middleware
Oracle Fusion Middleware
Oracle Fusion Middleware consists of several software products from Oracle Corporation. OFM spans multiple services, including Java EE and developer tools, integration services, business intelligence, collaboration, and content management...
product line.
Tuxedo has been used as transactional middleware by a number of multi-tier application development tools.
The Open Group
The Open Group
The Open Group is a vendor and technology-neutral industry consortium, currently with over three hundred member organizations. It was formed in 1996 when X/Open merged with the Open Software Foundation...
used some of the Tuxedo interfaces as the basis of their standards such as X/Open XA
X/Open XA
In computing, the XA standard is a specification by The Open Group for distributed transaction processing . It describes the interface between the global transaction manager and the local resource manager...
and XATMI.
The Tuxedo developers published papers about it in the early 1990s.
Later it was the basis of some research projects.
Features
- Standards based APIs - SCASCA- Organizations :* Schuylkill Canal Association, a non-governmental organization that maintains a section of historical canal in Pennsylvania* Scottish Canoe Association* Secular Coalition for America* Sexual Compulsives Anonymous...
, The Open GroupThe Open GroupThe Open Group is a vendor and technology-neutral industry consortium, currently with over three hundred member organizations. It was formed in 1996 when X/Open merged with the Open Software Foundation...
XATMI, Object Management GroupObject Management GroupObject Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...
CORBA - Communication types - Synchronous, Asynchronous, Conversational, Unsolicited Notifications, Publish/subscribePublish/subscribePublish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers. Published messages are characterized into classes, without knowledge of what, if any, subscribers there may be...
- Typed buffers
- FML/FML32 - Self describing fielded buffers similar to Abstract Syntax Notation One or Fast Infoset
- XMLXMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
- STRING and multibyte strings MBSTRING
- CARRAY binary blobs
- VIEW/VIEW32 externally descripted records
- Transaction Management - Global Transactions - Two-phase commit protocolTwo-phase commit protocolIn transaction processing, databases, and computer networking, the two-phase commit protocol is a type of atomic commitment protocol . It is a distributed algorithm that coordinates all the processes that participate in a distributed atomic transaction on whether to commit or abort the transaction...
- X/Open XAX/Open XAIn computing, the XA standard is a specification by The Open Group for distributed transaction processing . It describes the interface between the global transaction manager and the local resource manager... - Clustering - Domains
- /WS - Remote Clients
- Java clients - Jolt
- JEE Integration - Tuxedo JCA Adapter
- Bidirectional Web Services - SALT
- /QUEUE - Transient (in memory) and Persistent Queues (also called Reliable Queues)
- Data Dependent Routing (DDR)
- Event Broker
- Security - Authentication, Authorization, Auditing, and Public key infrastructurePublic key infrastructurePublic Key Infrastructure is a set of hardware, software, people, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates. In cryptography, a PKI is an arrangement that binds public keys with respective user identities by means of a certificate...
based message signing and encryption - Programmed Administration and SNMPSimple Network Management ProtocolSimple Network Management Protocol is an "Internet-standard protocol for managing devices on IP networks. Devices that typically support SNMP include routers, switches, servers, workstations, printers, modem racks, and more." It is used mostly in network management systems to monitor...
support - System and application performance monitoring - TSAM
- Load balancing, server spawning and decay
- Supports CC (programming language)C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, and COBOLCOBOLCOBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
applications on most UnixUnixUnix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
platforms, LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, Microsoft WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, and other proprietary platforms such as OpenVMSOpenVMSOpenVMS , previously known as VAX-11/VMS, VAX/VMS or VMS, is a computer server operating system that runs on VAX, Alpha and Itanium-based families of computers. Contrary to what its name suggests, OpenVMS is not open source software; however, the source listings are available for purchase...
and AS400 IBM System 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 communicationInter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...
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
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...
(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 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.
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 XMLXML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
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
Panther (development tool)
Panther Tool Suite is an extensible cross-platform collection of development tools targeted at development of 2-tier and n-tier client/server and component-based database-oriented applications. It works with all major databases and several major middleware systems. Applications developed with...
RAD
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...
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 and 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 EEJava Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...
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, IBM Systems Network Architecture (SNA), or the OSI protocolsOSI protocols
The Open Systems Interconnection protocols are a family of information exchange standards developed jointly by the ISO and the ITU-T starting in 1977....
, and Java Platform, Enterprise Edition
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...
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
CICS
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...
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. Any transactions that are affected by a server or machine failure are rolled back.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 controlled transactions.Queuing subsystem
Tuxedo provides a queuing subsystem called /Q. This facility provides transient and persistent queues that allows application to explicitly queue requests to 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 transactions. An automated queue forwarding server is provided that will remove entries from a queue and invoke an associated Tuxedo services.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.Mainframe re-hosting
In March 2010 oracle announced two new products in March 2010.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
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...
(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.