Introduction to Content-Based Router
Translator will basically change the context of a message from one interface to the other so that the message passed will adhere to the message context rules of the back end service. When communicating in between several applications each of the application might use a different standard of a data type. Therefore, to successfully maintain the communication, the messages should be intermediately be translated to a data format which will be compatible to the receiving application.
Message Translator is responsible to translate a message to ensure compatibility between two applications supporting two different data types. For more information please refer http://www.eaipatterns.com/MessageTranslator.html
Figure 1: Message Translator EIP
Example Scenario for the EIP
The rest of this document explains, through a typical example scenario, how the Content-Based Router EIP can be simulated using the WSO2 ESB.
The example scenario depicts an inventory for stocks and illustrates how the sender sends a request in a different format which will be transformed into a format which will be compatible through the receiver. In the given scenario the sender sends a request which contains the following format,
The format which is expected by the receiver is in the following format,
The Axis2 server accepts request being in the following format,
Here the client will send a request which is structure in the following manner,
Using the WSO2 ESB payloadFactory the request will be transformed to the structure which is accepted by the Axis2 Server. Then again when the response arrives it will be transformed back to the structure which is required by the client.
Implementation Using the WSO2 ESB
Start the Axis2 server and deploy the SimpleStockQuoteService if not already deployed
Start the ESB using the following configuration