Integration Server 10.15 | Publish-Subscribe Developer’s Guide | Synchronizing Data Between Multiple Resources | Data Synchronization with webMethods | Canonical Documents
 
Canonical Documents
 
Structure of Canonical Documents and Canonical IDs
Source resources send documents to notify other resources of data changes. You set up processing to map the data from these notification documents into a canonical document. A canonical document is a document with a neutral structure, and it encompasses all information that resources will require to incorporate data changes. Use of canonical documents:
*Simplifies data synchronization between multiple resources by eliminating the need for every resource to understand the document structure of every other resource. Resources need only include logic for mapping to and from the canonical document. Without a canonical document, each resource needs to understand the document structures of the other resources. If a change is made to the document structure of one of the resources, logic for data synchronization would need to change in all resources.
For example, consider keeping data synchronized between three resources: a CRM system, Billing system, and Order Management system. Because the systems map directly to and from each others native structures, a change in one resource’s structure affects all resources. If the address structure was changed for the CRM system, you would need to update data synchronization logic in all resources.
When you use a canonical document, you limit the number of data synchronization logic changes that you need to make. Using the same example where the address structure changes for the CRM system, you would only need to update data synchronization logic in the CRM system.
*Makes adding new resources to the data synchronization easier. With canonical documents, you only need to add data synchronization logic to the new resource to use the canonical document. Without a canonical document, you would need to update the data synchronization logic of all resources so they understand the structure of the newly added resource, and the new resource would need to understand the document structures of all the existing resources.