What is Oracle Tuxedo?

Surprisingly this is an all too common question. It recently came up in the Tuxedo OTN forum and based upon the response I got to my answer to this question, I thought it would be useful to post that here as well. So my answer was (and still is):

Tuxedo is an application server for non-Java languages. Specifically what this means is that it provides a bunch of facilities that help customers build and deploy enterprise applications written in C, C++, COBOL, and with the SALT add-on applications written in Python and Ruby. As an application server, it provides containers to host your business logic written in those languages. It provides facilities to transparently distribute your application across a cluster of machines and to route and load balance requests across the machines in the cluster and the servers within a machine. If machines fail or network links fail, Tuxedo will automatically route requests to the remaining accessible servers in the cluster, thus providing extremely high availability. When those resources are returned to service, Tuxedo will automatically start making use of those resources, thus you get failover and failback. Tuxedo tends to be used where RASP (Reliability, Availability, Scalability, and Performance) are paramount in the application. Tuxedo customers regularly get 99.99% to 99.999% availability for their applications with some customers running continuously for years without an outage. As a highly optimized application server, Tuxedo can invoke a service in another process and get a response back in around 35 microseconds. That performance combined with Tuxedo's clustering capabilities allows it to be able to handle 100,000's of requests/second, as Tuxedo scales nearly linearly from a single process on a single machine, to clusters of clusters.

As one of the original SOA platforms, everything in Tuxedo is a service that is accessed by name. A client simply calls a service by name passing a buffer of information. Tuxedo automatically routes the request to the least loaded server that can handle the request and then automatically dispatches the request in the server to the business logic associated with that service. The service implementation then processes the request in the buffer and returns a buffer to the caller containing the response from the service. Requests can be made synchronously, asynchronously, queued, or one-way. Other services provided by Tuxedo include transaction monitoring to support distributed XA transactions, store and forward messaging with a variety of QoS options, pub/sub messaging, a variety of gateways to provide transparent access to MQ Series queues, SNA and TCP gateways to transparently connect to CICS and IMS applications, and Java connectors that provide connectivity to JEE application servers. Clients for Tuxedo services can be written in C, C++, COBOL, .Net, and Java.

With an add-on product called SALT, Tuxedo can support bi-directional SOAP/HTTP(S) web services, thus providing easy integration into other SOA environments. With SALT, existing Tuxedo services can be made available as SOAP/HTTP(S) services without any change to the existing Tuxedo servers. As for "wrappers", SALT does use wrappers, or more accurately stubs and skeletons, in its support of the SCA standards. This allows business logic to implemented as a simple C++, Python, or Ruby function and all of the messaging and buffer handling is handled transparently by the SALT generated stubs and skeletons. This can make it quite easy to take an existing monolithic application and break it up into a set of Tuxedo services with little to no changes to the existing monolithic application code.

Tuxedo also provides extensive management and monitoring capabilities, especially with the TSAM (Tuxedo System and Application Monitor) add-on which provides detailed end-to-end performance monitoring of a Tuxedo application.

Lately Tuxedo has been used by many customers to migrate their COBOL applications from legacy environments such as IBM's CICS and IMS on expensive mainframe systems to much less expensive distributed systems. Two recent Tuxedo related products ART and ART Workbench provide tooling and a runtime infrastructure to help in these migrations, which are performed with primarily or only automated code transformation that replaces mainframe specific APIs with Tuxedo compatible APIs. Thus the business logic remains untouched, and only the technical APIs are modified. These customers often find that their total cost of ownership of the migrated application is reduced by 50-80%, while still maintaining mainframe or better quality of service.

Comments:

Wow... The $64,000,000 answer to the $64,000,000 question.

Posted by Mark Lindros on October 28, 2010 at 06:06 AM CDT #

Nice and clean article. Answers the most eternal question about tuxedo - "what is Tuxedo?". Brilliant.

Posted by Thyag on March 05, 2011 at 07:22 AM CST #

precisely the information I was looking for. Thanks a bunch.

Posted by Basu Ramanan on August 29, 2011 at 01:22 AM CDT #

Do I need to purchase Oracle Tuxedo workstation client ? or it comes for free if I have the Tuxedo server ?

Posted by guest on October 26, 2011 at 09:52 AM CDT #

Normal Oracle licensing for Tuxedo is based on the number of CPUs running Tuxedo servers. So in general the answer would be no, you don't have to buy workstation client licenses. However there are named user licensing options as well as a variety of older licensing terms based upon BEA Systems licenses. So you need to check the terms of your existing Tuxedo licenses to be certain if you already have Oracle Tuxedo.

Posted by guest on October 26, 2011 at 10:58 AM CDT #

dont work, dont exist information about it, how wait that i use it if nobody know how use it. i question to my boss. why to buy tuxedo if nobody know use it including ORACLE !!! should free more info about it

Posted by guest on March 10, 2012 at 10:57 AM CST #

I'm not sure what you are talking about. Tuxedo is used successfully in 10's of thousands of installations. Oracle uses Tuxedo in its PeopleSoft PeopleTools environment. The highest performance OLTP benchmarks (TPC-C) ever recorded were done with Tuxedo. If you used a phone today, did a financial transaction, shipped a package, or filled a prescription today, you most likely used Tuxedo.

As for more information, all of the documentation, evaluation downloads, customer success stories, white papers, and much more can be found at:

http://www.oracle.com/tuxedo

Regards,
Todd Little
Oracle Tuxedo Chief Architect

Posted by Todd Little on March 10, 2012 at 11:19 AM CST #

What are the competing products and why is Oracle Tuxedor better?

Posted by guest on February 14, 2013 at 09:39 AM CST #

A good question. There are few if any real competing products for Tuxedo. On distributed systems some customers use messaging systems or Messaging Oriented Middleware (MOMs) to do some of what Tuxedo does, i.e., allow distributed application components to communicate with each other in a network transparent way. But MOMs only solve part of the problems encountered in creating robust, reliable, high performing distributed applications, and none of the MOMs can manage distributed XA style transactions.

Since Tuxedo contains a CORBA ORB, any CORBA ORB could also be considered a competitor if CORBA is your thing, although I'm not aware of any that scale as Tuxedo scales, and none of the free or open source ORBs provide OTS. If your programming language of choice is Java, then any JEE application server would be a potential competitor. But if your programming language of choice is a native language such as C, C++, Python, Ruby, COBOL, PHP, then there is little in the way of competition.

On mainframe systems, IBM CICS or IMS would be worthy, if not expensive competitors.

Posted by Todd Little on March 04, 2013 at 02:02 PM CST #

can we use the socket programming in "c" for ATMI application development

Posted by guest on March 21, 2013 at 12:29 AM CDT #

Tuxedo client and servers can utilize sockets to communicate with external programs. In fact, we introduced a feature called Application Created Context for ATMI servers to allow them to have threads making ATMI calls that weren't directly related to a service they were processing. This allows customers to create gateways or socket handlers to handle network protocols inside a Tuxedo server.

Clients have always been able to do this as clients are free to create threads that do network communication or pretty much anything else a program could. Prior to this feature, it was difficult to have a server do anything when it wasn't processing a service request.

Posted by Todd Little on March 21, 2013 at 08:02 AM CDT #

I am a C++ programmer. I want to learn Tuxedo. How do I learn about tuxedo to develop a small application? Can I get a free trial to get hands on it on wondows machine?

Posted by guest on April 25, 2013 at 08:19 AM CDT #

Hi,

You can download Tuxedo and try it out under the OTN Developer license. Simply go to http://oracle.com/tuxedo to find the downloads and documentation. The kit includes numerous samples that can lead you through the development of simple Tuxedo applications. You might also want to download Solaris Studio and the Tuxedo plug-in for it as that will help you become more productive more quickly, although that would require you to use Linux or Solaris.

Please note that if you are going to use Windows, you will need to download and install the appropriate version of Microsoft Visual C/C++.

Posted by Todd Little on April 25, 2013 at 09:33 AM CDT #

Hi, I have installed tuxedo11g on my windows vista env. I have set all the environment variables but when I run command tmloadcf it gives error "'tmloadcf' is not recognized as an internal or external command,".
However when I run ipcrm or buildclient command it run successfully without giving any error which means tuxedo path is set correctly.
Could you please help. Also I dont see tmloadcf in the bin folder.

Posted by guest on May 04, 2013 at 06:53 AM CDT #

Hi,

I'm assuming you installed the Tuxedo client kit if you installed on Windows Vista as Tuxedo server is not supported on Vista because Microsoft doesn't consider it a server operating system. For Windows you need Microsoft Server 2008. For a full list of supported platforms for Tuxedo 11.1.1.2, please see the Platform Data Sheets at: http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/install/inspds.html As well for Windows, you need to have the appropriate Visual C/C++ compiler installed.

You could also run Tuxedo in a virtual machine. There are prebuilt developer VMs, including one for Tuxedo, that can be downloaded from: http://www.oracle.com/technetwork/community/developer-vm/index.html

Finally, you might get better support for these types of questions by using the Tuxedo forums located at: https://forums.oracle.com/forums/category.jspa?categoryID=199

Regards,
Todd Little
Oracle Tuxedo Chief Architect

Posted by Todd Little on May 04, 2013 at 07:05 AM CDT #

A follow up to the question regarding products that can compete with Tuxedo. Like Todd says, they pretty much don't exist today. At the peak of Tuxedo development projects, the main competition was:

-Distributed Computing Environment (DCE): This product competed directly against Tuxedo, but completely died a few years ago. I have been on projects to convert DCE to Tuxedo recently because IBM was ending support for DCE.
-TopEnd: This product was purchased by BEA some years ago, BEA created a TopEnd domain gateway for integration, and eventually phased out the TopEnd product.
-Encina: I never knew much about Encina, but a quick Google search shows that it was built on DCE so it probably saw a similar run.
-Microsoft Transaction Server (MTS): Microsoft's platform to provide services for COM objects. It never really took off as a real competitor, mainly because of single platform support, and now Microsoft focuses more on .NET and web services.

I can't really recall much other competition over the years except what Todd has already mentioned. A lot of small products and products that did only an aspect of what Tuxedo did were encountered. I ran into several situations in my consulting days where MQSeries, other MOMs, home-grown systems, and believe it or not 2-tier database systems competed for Tuxedo business. The only thing that ever displaced Tuxedo ever was the Java application server market, which Tuxedo integrates with nicely. Tuxedo is the only product that can do all of what it does... and it does it well.

Posted by Mark Lindros on October 09, 2013 at 03:43 PM CDT #

What about JBoss Blacktie/Narayana as a competitor?

Posted by guest on November 12, 2013 at 05:31 AM CST #

I don't see the comment in the blog, but I got a notification email asking the following question:

"What about JBoss Blacktie/Narayana as a competitor?"

I don't want to personally put any competitive info in writing on a blog as an Oracle employee. All I can do is offer a bit of my personal opinion, and state that it is not Oracle's opinion and not official in any case.

My experience in the field is that JBoss products tend not to scale as well as Tuxedo or WebLogic products. I see a lot of the typical enterprise computing buzz words on their sites, but I am more of a "show me" person. All official benchmarks in the days of Tuxedo's prime were based on Tuxedo being the frontrunner. At the end of the day, if there is a question of which is better for you, the best way to know for sure is to do a PoC between them. I am confident that if your PoC application is a large application with a large concurrent user base that Tuxedo will shine.

The BlackTie product mentions that it supports the X/Open XATMI interface. What it doesn't mention is that the XATMI interface was invented by the creators of Tuxedo... who also happen to implement the interface. It is nice to see that other products have implemented the interface because it was originally designed to make Tuxedo a non-proprietary technology. Why go with the copycat when you can have the original?

To me it looks like the Narayana product is a CORBA-based product. My experience with most competing ORB products is this (and it has been many years so could have changed but I doubt it):

CORBA is a standard, not an implementation. So this means that every product can potentially implement it differently. Tuxedo also provides a CORBA interface backed by a strong implementation. Tuxedo's CORBA interface is built on top of Tuxedo's powerful infrastructure and is truly proven in the field. Most other competing ORBs of yesteryear were falling far behind in comparison with scalability and performance. One of the biggest factors for that was the MxN connections problem. Not sure if that is a facet of Narayana or not. On top of this, it looks like the Narayana product is focused on XA transactions. I know it says JTA, but that is really just a layer above XA. Tuxedo provides a lot more such as domains, queuing, events, SALT, all its communication paradigms/messaging infrastructures, numerous integration capabilities, and mainframe rehosting capabilities.

The Narayana product talks about being the best of breed product for 20 years, but I seem to remember CORBA coming out in a practical sense around 1996, so not really at the full 20 year mark yet. CORBA may have been out before that, but it was far from mature. Tuxedo has been around since 1983, and has pretty much been the leading high performance product in the world ever since, with thousands of the largest production-proven applications in the world. All of these other products are pretty much taking their lead from Tuxedo concepts... even SOA and application servers of today.

Although I am a Java Application Server person for the past 13+ years, Tuxedo still remains my favorite product. There's nothing really like it in the world.

Posted by Mark Lindros on November 12, 2013 at 08:30 AM CST #

Post a Comment:
  • HTML Syntax: NOT allowed
About

This is the Tuxedo product team blog.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today