Easily re-used and adapted to new solutions
The Plexus Message Broker consists of the following four layers of software that allow it to be easily reused and adapted to new solutions:
|Kernel||The Plexus Kernel provides the framework for a set of common services that can be accessed by Message Servers, Adapters and Filters.|
|Message Servers||A combination of Adapters and Filters that take messages from one source, manipulate the message(s), and send the resulting message to one or more destinations|
|Adapters||A communication interface component|
|Filters||Message manipulation components|
The Plexus Message Broker Kernel is the software framework that supports all other Plexus Message Broker services. It provides the common services required by the other components of the Plexus Message Broker. These include but are not limited to: the external user interface, tracing facilities, threading models, and alerting services.
This type of Plexus Message Broker component receives messages, manipulates the messages, and sends the messages on their way. A simple Plexus Message Broker implementation might have two Message Servers: one for inbound messages and one for outbound messages. A complex Plexus Message Broker might have six or more Message Servers. Depending on the performance requirements, there may be multiple instances of each these Message Servers.
A Message Server can take input from a source external to the Plexus Message Broker or from a source that is internal to the Plexus Message Broker. Similarly, a Message Server can output messages to either an internal Plexus Message Broker destination or to a destination that is external to the Plexus Message Broker.
A Message Server can accept messages from one communication source, such as TCP, and output the resultant message to a different communication destination such as WMQI MQ. It is equally possible that either the input source or the output destination, or both, are .NET applications.
A Message Server can also manipulate the message, although this is not a requirement, as when simply transitioning message from WMQI MQ to Microsoft® MSMQ. Message manipulation can range from simple editing of the message to more complex operations such as consolidating multiple messages into a single message or calling an external service provider to acquire additional information that is added to the message before it is sent on its way.
A Message Server may support a single sessions or many sessions.
An Adapter is the component of a Message Server that provides the communication interface to services such as TCP, Microsoft® MSMQ, WMQI MQ, or SNA. There are usually two Adapters defined for each Message Server. Typically, one Adapter might act as a service provider (receiving a message), while the other acts as a service user (sending a message). The two Adapters can provide access to two different communication interfaces. That is, the source might be TCP and the destination might be WebSphere® MQ.
Filters reside on the data path between the two Adapters and provide the ability to tailor the Plexus Message Broker to each unique environment and task without requiring modification to the Plexus Kernel or Plexus Adapters.
A Filter is a programmable component that can be assigned to an Adapter. It is typically used to manipulate the content of a message, intercept a message, or route a message. They can also be used to manipulate Adapter interfaces. Filters can be written in: C#; Visual Basic .NET; C++; or JAVA.
Since a Message Server may have two Adapters, a Message Server may have up to two Filters as well.