Chris Judson has given an interesting presentation regarding a Canonical Data Model within a Service Oriented Architecture.
First he gave an example of the different aspects and problems you could be facing when defining the existing arhictecture and business flows within an organisation.
One of the aspects that’s needed to accomplish this, is getting IT and business to consolidate and collaborate with eachother to have a clear understaning of today’s architecture and the goals defined for the future.
The Canonical Data Model will define a common format to describe business entity within the enterprise wide organisation, as well for business as IT.
Take aways from this session:
- The CDM will reduce the interface maintenance and encapsulate business logic in one central place
- Put the CDM on the bus: you can plug in new applications to listen to existing events, without the need to define a new format for the new consumer + there’s a common understanding of the data model for as well business as it
- Use the 80/20 rule to define a CDM: First you take all the unique identifiers combined with a super set of data which will be used by most consumers. In other words, if 80% of the consumers have the needed data within the CDM, the 20% can be delivered using the enrichment pattern, without the need to enlarge the payload of the CDM
- Managing change is hard within such a model, because the dependencies between several applications are mostly high. To manage change, the 80/20 rule is applicable as well. When 80% of the consumers need new attributes, changes in the existing attributes, … the CDM can be changed. The other consumers can be delivered the same functionality using the enrichment pattern again.
- For schema versioning the Format Indicator Pattern is mostly used
- Use generic XML types for the XSD instead of DB specific types
- Use declarative namespaces to manage data domains to have a generic enterprise wide data definition strategy in place
The presentation of Chris was very enlightning, because a lot of these tips & tricks are valuable for each design or implementation using XML type data and service enablement.