Tuxedo vs MQ Series or other MOMs - No comparison
By Todd Little on Sep 05, 2013
I'm often involved in situations where customers are looking for a messaging system because they believe the solution to building enterprise systems is to settle for a messaging oriented middleware or MOM. Tuxedo has been classified as a MOM and some analysts still place it in that category, but that is sort of like saying a Ferrari is just a car or an F-35 is just and airplane. Tuxedo is no more a MOM than WebLogic Server or WebSphere are MOMs. Sure, they have messaging facilities, but their core value isn't in providing messaging services. Their core value as application servers is to simplify the life of the enterprise application developer and the OA&M staff supporting the applications they've developed.
The primary function of a MOM is to get a message from point A to point B without the application having to worry about how it got there. It's a fantastic model for application development if you're willing to build all the rest of what an application server provides, as you will have to build those things if you want to provide an enterprise application. One of the fundamental differences between a MOM and an application server is that a MOM doesn't offer such things as ensuring your application is actually running and doing useful work. A MOM typically doesn't manage any aspect of your application or infrastructure other than getting those messages from point A to point B.
What does an application server provide that a MOM typically doesn't provide? Fundamentally application servers provide a container that hosts your business logic. MOM's don't provide a container, they provide a library that offers an API to move messages. An application server on the other hand provides a runtime and management environment to host your business logic. In JEE terms, a MOM let's you build clients, typically an OS process that you manage yourself. The MOM worries about the messaging servers and only the messaging servers. So monitoring, managing, and restarting failed clients is up the application to handle. As well, since a MOM really only provides client services, it means it can't manage things such as application consistency through such things as transaction management, or application availability or scalability through things like dynamic scale out and load balancing. In fact, a MOM can't do most of what an application server can do, whereas an application server can do everything a MOM can do and much, much more.
So what does this have to do with Tuxedo? Well Tuxedo is a multi-language application server built on SOA principles and designed to support the most demanding enterprise applications on the planet. It provides containers to host your business logic so your application doesn't have to worry about things like scaling, availability management, and the like. Your application focuses on providing business value through the business services you develop, instead of focusing on infrastructure that provides little to no business value on its own.