Message Router

By on January 6, 2009

Message Router

MessageRouter is a program which helps facilitate integration of several software systems. It supports various communication protocols, and allows specifying rules for how the
messages from different systems will be routed (with conversion, if needed).

This product was developed for Trading Science Ltd, and is available for purchase — please contact Trading Science for details.


The Problem

There is a number of external systems, each with its own protocol of external interaction (MSMQ, MQ Series, etc.). When integrating these applications, developers may have the following problems:

  • it is necessary to convert all of the systems to one protocol, or make all of the systems support all of the present protocols.
  • The new system has to use the protocol that is known to the existing systems.
  • If one of the system’s protocol is changed, it may require changing the other systems.
  • Some of the systems may not reside in one LAN (domain), and not all of the protocols would support communication between different domains.

All of this results in complexity for integration between these systems, high dependancy of systems on each other, increases possibility of errors in protocols’ implementation and conversion.

The solution

MessageRouter completely manages data interchange between several systems. It supports several communication protocols (so far they are MSMQ, MQ Series, SOAP, and new ones can be easily added). Administrator can define a list of external systems and rules of where which messages should be routed. MessageRouter then listen to each of the external systems and forwards received messages according to the rules.

Now in order to include an external system into an integration with other systems it is only required to add the system to the list in MessageRouter, configure its queues and routing rules – and the system is ready to communicate!

It is also possible to connect remote networks over WAN (for example, Internet) using MessageRouter – each network should have an instance of MessageRouter running, and messages to other networks are sent using XML-based SOAP protocol.

System Features

  • Possible multiple MR setup, for communication between domains
  • Supports MSMQ, IBM MQ Series, SOAP protocols
  • Transactions support for MSMQ queues
  • Supports asynchronous/synchronous queue listening
  • Systems’ queues monitoring (possibility to watch Queue content, send messages to the Queue manually)
  • Configurable splitting of large messages into smalles pieces
  • Web-based Remote Control and Configuration with user-friendly GUI
  • Detailed event logging with possible storing of all the forwarded messages


These are examples of the available configuration and features in Message Router, please contact us for further details.

Systems configuration:

Message Router - System configuration

Rules configuration:

Message Router - Rules configuration

Manual message sending:

Message Router - Manual message sending

Message log:

Message Router - Message log

Technical details

Software Environment

  • Windows NT ver.4.0, Windows 2000 Server
  • MSMQ*, MQSeries*, SOAP* support installed
  • IIS installed

* – if required by integrated applications.

Implementation description

The application consists of two parts – MR Service, and MR Remote Configuration and Control.

MR Service is developed using MS VC++, MSMQ, IBM MQ Series, SOAP, XML). It is an NT Service, which is responsible for interaction with integrated systems and routing messages from an origin system to its destination systems.

For each messaging protocol supported (MSMQ, SOAP etc) there is a Queue Manager module, which is a COM object with a standard interface for managing queues. It is possible to add new messaging (or communication) protocols by creating a new standard COM object for this protocol. Queue Manager modules poll outgoing queues of external systems and all messages are passed to the Message Processor module.

Message Processor uses routing rules to determine the destinations for each message, and passes it to correspondent Queue Managers, so that they can place it in the incoming queue of each destination system.

All of the MR events and operations are logged by Log Manager module in an XML log file.

MR Remote Configuration and Control is developed using MS VC++, ASP, XML, XSL. It is a web-based application which allows configuring MR Service as well as monitoring its performance. Its functions include:

  • configuring MR Service (start, stop service etc),
  • managing external system settings,
  • managing routing rules,
  • and, monitoring MR Service performance (viewing logs, messages list, etc).

It is implemented using a set of ASP pages, as well as MR Configuration COM object. All of the MR settings are stored in XML format.

Architecture diagram

Message Router - Architecture diagram