- Tuxedo (software)
name = BEA Tuxedo
caption = BEA Tuxedo
latest_release_version = 10
2 October, 2007
programming_language = C, C++, COBOL
status = Active
license = Proprietary
website = [http://www.bea.com www.bea.com]
Tuxedo (Transactions for
Unix, Extended for Distributed Operations) is a middlewareplatform used to manage distributed transaction processing in distributed computing environments. Tuxedo is a Transaction Processing Systemor Transaction Oriented Middleware, or Enterprise Application Server for C, C++, and COBOL.
It was originally developed and designed by
AT&Tin 1983 for the creation and administration of Operations Support Systemsthat required online transaction processing ( OLTP) capabilities. The Tuxedo concepts were derived from the LMOSsystem. The original Tuxedo team was comprised of seasoned members of the LMOS team. In 1993 Novellacquired the UNIX System Laboratories(USL) division of AT&T which was responsible for the development of Tuxedo at the time. In 1996, BEA Systemsmade 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 Corporationacquired BEA Systems.cite book | title = The TUXEDO System: Software for Constructing and Managing Distributed Business Applications
author = Andrade, Juan M. et al
year = 1996 | publisher = Addison-Wesley
isbn = 0201634937
pages = pp. xxxiv ] cite pressrelease
title = Novell and BEA Systems, Inc. Complete Transition of TUXEDO to BEA
publisher = BEA Systems, Inc.
date = 1996-02-28
url = http://www.bea.com/framework.jsp?CNT=pr00002.htm&FP=/content/news_events/press_releases/1996
quote = BEA is the exclusive developer and distributor of the TUXEDO System on UNIX, NT, and all non-NetWare platforms, and Novell will develop TUXEDO-based applications for NetWare. In addition, most Novell TUXEDO employees, including development and marketing personnel, have joined BEA, and BEA has assumed all contracts with TUXEDO partners, distributors, and customers. BEA has exclusive rights to the TUXEDO trademark.]
Tuxedo was designed from the beginning for high availability and to provide extremely scalable applications allowing Tuxedo to support applications requiring thousands of transactions per second on commonly available distributed systems. One of the first applications within AT&T for Tuxedo was to support moving the LMOS application off mainframe systems on to much cheaper distributed systems.
Features of Tuxedo
* Standards based APIs -
The Open GroupXATMI, Object Management GroupCORBA
* Communication types - Synchronous, Asynchronous, Conversational, Unsolicited Notifications,
* Typed Buffers
** FML/FML32 - Self describing fielded buffers similar to Abstract Syntax Notation One or Fast Infoset
** STRING and multbyte strings MBSTRING
** CARRAY binary blobs
** VIEW/VIEW32 externally descripted records
* Transaction Management - Global Transactions -
Two-phase commit protocol- X/Open XA
* Clustering - Domains
* /WS - Remote Clients
* Java clients - [http://edocs.bea.com/tuxedo/tux100/interm/jolt.html Jolt]
* Bidirectional Web Services - [http://edocs.bea.com/salt/docs20/index.html 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 infrastructurebased message signing and encryption
* Programmed Administration and
* System and application performance monitoring - [http://edocs.bea.com/tsam/docs11/index.html TSAM]
* Load balancing, server spawning and decay
* Supports C,
C++, and COBOLapplications on most Unixplatforms, Linux, Microsoft Windows, and other proprietary platforms
Tuxedo is at its core a message routing and queuing system. Requests are sent to named services and Tuxedo uses memory based
Inter-process communicationfacilities 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) years before the phrase Service-oriented architecture 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.
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 XML 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, STRING, and MBSTRING (a string buffer containing multibyte characters.) Tuxedo can automatically and transparently convert FML buffers to and from XML buffers.
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 Enterprise Editionapplication servers where load balancing is done by the client making requests to different machines with the cluster.
To facilitate the sharing of services across domains, Tuxedo provides domain gateways. A domain gateway's job is to allow the importing and exporting of 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 mainframes systems using
TCP/IP, SNA, or the OSI/TPprotocols, and Java 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 CICStransaction as a Tuxedo service, and CICS sees a Tuxedo service as a CICS transaction.
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.
Tuxedo provides a queuing subsystem called /Q. This facility provides transient and persistent queues that allows applications 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.
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.
* [http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/tux BEA Tuxedo website]
* [http://www.peoplesoftexpert.com/mediawiki/index.php/Bea_Tuxedo BEA Tuxedo Quick Reference - www.peoplesoftexpert.com]
Wikimedia Foundation. 2010.
Look at other dictionaries:
Tuxedo (software) — Tuxedo (Transactions for Unix, Extended for Distributed Operations) es una plataforma de middleware usada para gestionar procesos transaccionales distribuidos en entornos de computación distribuida. Tuxedo es un middleware orientado a… … Wikipedia Español
Tuxedo (logiciel) — Pour les articles homonymes, voir Tuxedo. Tuxedo est un logiciel middleware destiné à gérer les transactions dans un environnement distribué: c est un moniteur transactionnel pour systèmes Unix dont le nom signifie Transactions for Unix, Extended … Wikipédia en Français
Tuxedo (disambiguation) — A tuxedo is a type of semi formal dress for men.Tuxedo may also refer to: * Tuxedo (software), a middleware platform to manage distributed transaction processing * The Tuxedo , a Jackie Chan movie * Tuxedo cat, a coat pattern in bicolor cats *… … Wikipedia
Froggy Software — Logo de Froggy Software Création 1984 Disparition 1987 … Wikipédia en Français
Prolifics Open Source Software for Linux — Infobox Software name = POSSL developer = [http://www.prolifics.com Prolifics] latest release version = 4.18 operating system = Linux language = Multilingual programming language = C++ genre = RAD IDE license = BSD like website =… … Wikipedia
BEA Systems — Infobox Company name = BEA Systems, Inc. type = Wholly owned subsidiary slogan = Think liquid. foundation = 1995 location = San Jose, California, USA key people = num employees = revenue = profit$1.535 billion USD (2008) net income = profit$208.2 … Wikipedia
Exalogic — Exalogic аппаратно программный комплекс, серийно выпускаемый корпорацией Oracle с 2010 года, являющийся кластером серверов архитектуры x86 64, с предустановленным связующим и управляющим программным обеспечением. Основное… … Википедия
Object Request Broker — ORB est le sigle de Object Request Broker (traduction littérale : courtier de requêtes objet). Un ORB est l ensemble de fonctions (classes Java, bibliothèques C++...) qui implémentent un « bus logiciel » par lequel des objets… … Wikipédia en Français
Oracle Fusion Middleware — (OFM, also known as 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… … Wikipedia
Publish/subscribe — (or pub/sub) is an asynchronous messaging paradigm where senders (publishers) of messages are not programmed to send their messages to specific receivers (subscribers). Rather, published messages are characterized into classes, without knowledge… … Wikipedia