Defining a Canonical Model

Defining a Canonical Model

A canonical model is an enterprise design pattern which provides a common set of definitions and values for all data in motion.   Canonical models are abstracted models not related to any applications.  They tend to be based on simple but extensible XML Schema and provide a single view of core business entities.

The canonical model establishes this common format on the data layer while the canonical message model defines this uniform format on the services layer.  Providing a clear understanding of the way business information is structured and ensuring business information is represented consistently across implementations results in alignment of process, services, messages, and data models.  This accelerates design activities, reduces new integration efforts, provides the starting point for message creation and avoids unnecessary transformations.  Data integrity is ensured and service duplication is eliminated.

Service Oriented Architecture (SOA) and Business Transformations like an acquisition or a new customer offering do not solve data problems they expose them.  A canonical model that is managed and widely adopted creates alignment between the data management group and the integration developers that are supposed to use this data to create XML messages.  The driver behind the canonical model is to improve data integration, reduce governance overhead and change management issues, increase reuse and decrease development time.