Architecture Overview
IBM webMethods Universal Messaging is a message-orientated middleware product that guarantees message delivery across public, private, and wireless infrastructures. Universal Messaging has been built to overcome the challenges of delivering data across different networks. It provides its guaranteed messaging functionality without the use of a web server or modifications to firewall policy.
Universal Messaging design offers both broker-based and umTransport (deprecated) communication, and thus comprises client and server components.
Broker-Based Communication
The standard UM "broker-based" client component can be subdivided into messaging clients, comet clients and management clients. The server component has specific design features to support each of these classifications of client as well as plugins, federation, clustering, and low latency IO.
Server Components
The Universal Messaging realm server is a Java process capable of delivering high throughput of data to large numbers of clients while ensuring latencies are kept to a minimum. In addition to supporting the client types described below, the Universal Messaging realm server has a number of built-in features to ensure optimal flexibility and performance.
Client Components
Universal Messaging supports the following client types:
- Messaging clients
- Comet clients
- Management clients
Each client type has been developed using open protocols with specific attention paid to performance and external deployment. Each client type has been specifically designed to transparently pass through firewalls and other security infrastructure while providing its own inherent security features.
Messaging Clients
Universal Messaging messaging clients support synchronous and asynchronous middleware models. Publish-subscribe and queue functionality are all supported and can be used independently or in combination with each other. Universal Messaging messaging clients can be developed in a wide range of languages on a wide range of platforms. Java, C#, and C++ running on Windows, Solaris, and Linux® are all supported. Mobile devices and web technologies exist as native messaging clients.
WebSocket, Comet, and LongPolling for JavaScript Clients
In addition to the native binary wire protocol, Universal Messaging also supports text-based delivery for languages that do not support binary data. Used in conjunction with Universal Messaging server plug-in technology, Comet, and Long Polling clients use HTTP and persistent connections to deliver asynchronous publish-subscribe functionality to clients. JavaScript clients can also use WebSocket as a delivery approach although this is not yet sufficiently supported in users' browsers to warrant a reliance on it over Comet and Long Polling.
Management Clients
Universal Messaging provides a very extensive and sophisticated management API written in Java. Management clients can construct resources (channels, ACLs, queues) and query management data (throughput, cluster state, numbers of connections) directly from Universal Messaging realm servers.
umTransport Communication (Deprecated)
Universal Messaging offers, in addition to its standard full-featured client-server API, an extremely lightweight client-client communication API known as the umTransport API (currently available for Java and C++).