This section explains, through an example scenario, how the Canonical Data Model EIP can be implemented using WSO2 ESB. The following topics are covered:
Introduction to Canonical Data Model
The Canonical Data Model EIP minimizes dependencies when integrating applications that use different data formats. It is independent from any specific application, and requires each application to produce and consume messages in this common format. For more information, refer to http://www.eaipatterns.com/CanonicalDataModel.html.
Figure 1: Canonical Data Model EIP
How the EIP is Implemented in WSO2 ESB
According to the Canonical Data Model EIP, messaging systems have to minimize the dependencies between applications which uses different data formats, thereby ensuring loose coupling between applications. The WSO2 ESB supports number of different data formats including POX, JSON and SOAP. Translating to a common data model (SOAP in WSO2 ESB) and vice versa is done through the underlying implementations of message builders and message formatters. If the receiving messages are not in the form the back-end service requires, users can use a Translator mediator or create a new message in SOAP format using the Payload Factory mediator.
Sample scenarios and explanations are included in the Normalizer EIP section.