Universal Messaging Concepts : Architecture : Messaging Paradigms supported
Messaging Paradigms supported
Universal Messaging supports three broad messaging paradigms - Publish/Subscribe, Message Queues and Peer to Peer. Universal Messaging clients can use a mixture of these paradigms from a single session. In addition to this it is possible for clients to further control the conversation that takes place with the server by choosing particular styles of interaction. These styles are available to both readers and writers of messages and include asynchronous, synchronous, transactional and non-transactional.
Publish/Subscribe (using Channels/Topics)
Publish/Subscribe is an asynchronous messaging model where the sender (publisher) of a message and the consumer (subscriber) of a message are decoupled. When using the Channels/Topics, readers and writers of events are both connected to a common topic or channel. The publisher publishes data to the channel. The channel exists within the Universal Messaging realm server. As messages arrive on a channel, the server automatically sends them on to all consumers subscribed to the channel. Universal Messaging supports multiple publishers and subscribers on a single channel.
Publish/Subscribe (using DataStreams and DataGroups)
Universal Messaging DataGroups provide an alternative to Channels/Topics for Publish/Subscribe. Using DataGroups it is possible for remote processes to manage subscriptions on behalf of subscribers. The process of managing subscribers can be carried out by publishers themselves or by some other process. DataGroups are lightweight in nature and are designed to support large numbers of users whose subscriptions are fluid in nature. The addition / removal of users from DataGroups can be entirely transparent from the user perspective.
Message Queues
Like pub/sub, message queues decouple the publisher or sender of data from the consumer of data. The Universal Messaging realm server manages the fan out of messages to consumers. Unlike pub/sub with channels, however, only one consumer can read a message from a queue. If more than one consumer is subscribed to a queue then the messages are distributed in a round-robin fashion.
Peer to Peer
Peer to Peer provides a direct communications path between an instance of a service and the client requiring access to the service. The Universal Messaging realm server brokers the relationship between the service and the client and in doing so becomes transparent as messages pass through it.
Details of Usage for Software Developers
Details of how to develop applications in various languages for the paradigms described above, including code examples, are provided in the appropriate language-specific guides.
The following language-specific guides are available:
Java:
C++:
C# .NET:
Python:
JavaScript:
Flex:
Messaging Paradigms Comparison
DataGroups
Channels
Queues
Peer to Peer
Subscriptions Managed Remotely
yes
N/A
N/A
N/A
Nestable
yes
N/A
N/A
N/A
Clusterable
yes
yes
yes
N/A
Persistence (data)
N/A
yes
yes
N/A
Persistence (state)
yes
yes
yes
N/A
Message Replay
yes
yes
yes
yes
Synchronous Consumer
N/A
yes
yes
N/A
Asynchronous Consumer
yes
yes
yes
yes
Synchronous Producer
yes
yes
yes
N/A
Asynchronous Producer
yes
yes
yes
yes
Transactional Consumer
N/A
yes
yes
N/A
Non-Transactional Consumer
yes
yes
yes
yes
Transactional Producer
N/A
yes
yes
N/A
Non-Transactional Producer
yes
yes
yes
yes
Destructive Read
N/A
N/A
yes
yes
Delta Delivery
yes
yes
N/A
N/A
Conflation (Event Merge)
yes
N/A
N/A
N/A
Conflation (Event Overwrite)
yes
N/A
N/A
N/A
Conflation (Throttled Delivery)
yes
N/A
N/A
N/A
User Specified Filters
N/A
yes
yes
N/A
Addressable Messages
N/A
yes
yes
yes
User Access Controlled via ACLs
N/A
yes
yes
yes
Microsoft Reactive Extensions
N/A
yes
yes
N/A
Accessible via JMS
N/A
yes
yes
N/A
Copyright © 2013-2016 Software AG, Darmstadt, Germany.

Product LogoContact Support   |   Community   |   Feedback