<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx</link><description>What is the correct level of abstraction for the Enterprise Canonical Data Model (ECDM)? As I blogged before, the ECDM is used to decide what data should be passed through the integration infrastructure in the notifications that occur on business events.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3633519</link><pubDate>Sun, 01 Jul 2007 03:50:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3633519</guid><dc:creator>ehoff</dc:creator><description>&lt;p&gt;From your perspective, would you define the canonical data model at the SOAP/XSD level (as in service contract) or are you talking full-blown enterprise data model as in having a single data store (ala SQL/MDM)?&lt;/p&gt;
</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3634758</link><pubDate>Sun, 01 Jul 2007 05:17:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3634758</guid><dc:creator>NickMalik</dc:creator><description>&lt;p&gt;@ehoff,&lt;/p&gt;
&lt;p&gt;The enterprise canonical data model is a structure that looks (from a distance, if you squint) like a database model. &amp;nbsp;It has a lot of entities in it. &amp;nbsp;It has all the basic entities that the business uses to do what they need to do. &amp;nbsp;So, in that respect, it is like a single data store...&lt;/p&gt;
&lt;p&gt;Only you don't store data in it.&lt;/p&gt;
&lt;p&gt;You use it as a model to make sure that everyone agrees about what the entities mean and how they relate.&lt;/p&gt;
&lt;p&gt;The enterprise model doesn't contain enough data or enough detail to form the Enterprise Data Warehouse. &amp;nbsp;It is not a model for BI, although it is closely related because the data warehouse will need to use the same 'agreement' formed by this model to understand the data delivered by the source systems.&lt;/p&gt;
&lt;p&gt;In fact, if done right, the ECDM will make the development of an Enterprise Data Warehouse MUCH easier because it creates a consistent context for the data in every major system. &amp;nbsp;If data needs to be translated when it leaves a system in order to be part of the canonical model, it will need a very similar translation to be part of the data warehouse.&lt;/p&gt;
&lt;p&gt;hope that helps&lt;/p&gt;
</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3639855</link><pubDate>Sun, 01 Jul 2007 13:28:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3639855</guid><dc:creator>Mahesh CR</dc:creator><description>&lt;p&gt;Hi Nick&lt;/p&gt;
&lt;p&gt;Your post provides a good heuristic to determine notification granularity first of all. And tying it to a CDM would ensure every provider has a consistent vocabulary to deal with data elements. Neat post, thanks!&lt;/p&gt;
&lt;p&gt;Could you elaborate a little on the CDM itself? Is this an entity archetype that is communicated across the organization and fidelity to it enforced via best practice and governance? Where does one start on the CDM, if there are a hundred assorted data models, all loosely representing similar things? How does one version and manage this? Are there organizations that do this?! Any best practices you could share or point out?&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3646693</link><pubDate>Sun, 01 Jul 2007 22:15:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3646693</guid><dc:creator>NickMalik</dc:creator><description>&lt;p&gt;@Mahesh&lt;/p&gt;
&lt;p&gt;You have asked a good question. &amp;nbsp;I'm not sure I have a 'right' answer. &amp;nbsp;I will say this: the ECDM cannot be formed centrally and communicated outward. &amp;nbsp;It has to be formed at the edges and communicated in. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Where one starts is with the business. &amp;nbsp;What does the business understand about their data. &amp;nbsp;If you don't start with the conceptual data model, the canonical data model is unattainable or fictitious. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Normally the business will use different terms for the same entities. &amp;nbsp;Most of the problem of developing the ECDM is in dealing with people, not technology. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3654711</link><pubDate>Mon, 02 Jul 2007 05:59:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3654711</guid><dc:creator>Evan</dc:creator><description>&lt;p&gt;@Nick,&lt;/p&gt;
&lt;p&gt;That makes sense. &amp;nbsp;It seems like an attempt to bring together a common &amp;quot;contract&amp;quot; to say, 10k services in a large enterprise.&lt;/p&gt;
&lt;p&gt;Do you consider the EDM to be some form of executable contract (ala SOAP/XML, etc) or more an attempt at establishing a set of guidance and documentation across a large set of services.&lt;/p&gt;
&lt;p&gt;Evan&lt;/p&gt;</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3656771</link><pubDate>Mon, 02 Jul 2007 10:02:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3656771</guid><dc:creator>NickMalik</dc:creator><description>&lt;p&gt;@Evan,&lt;/p&gt;
&lt;p&gt;Do I consider the ECDM to be an executable contract? &amp;nbsp;Part of one, yes. &amp;nbsp;There is the behavior of the service as part of a message exchange pattern that is entirely outside the ECDM, and then there are the data elements that I pass that are formed from entries within the ECDM.&lt;/p&gt;
&lt;p&gt;I view it as more than guidance. &amp;nbsp;It is a consensus, hopefully. &amp;nbsp;An agreement for excellence. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3705384</link><pubDate>Thu, 05 Jul 2007 15:32:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3705384</guid><dc:creator>Anthony Jervis</dc:creator><description>&lt;p&gt;Business objects are the essential data elements that constitute the majority, if not the entirety, of the information which circulates between IT systems.&lt;/p&gt;
&lt;p&gt;It seems only logical that the basis for the analysis of an information flow’s structure in an execution contract be based upon these business objects.&lt;/p&gt;
&lt;p&gt;The canonical data model should &amp;quot;ideally&amp;quot; be derived from an enterprise-wide business object model (also known as Business Data Model or Semantic Model amoung others)&lt;/p&gt;
&lt;p&gt;Briefly on this, an enterprise-wide model contains a detailed, yet high-level view (ie: without system datatypes!), of the objects manipulated by the organization, the relationships between these objects and possibly the objects' lifecycle.&lt;/p&gt;
&lt;p&gt;Being derived from the generic enterprise business object model, the canonical data model becomes itself a generic data model that is conventionally used by mediation (or integration) platforms such as EAI or ESB platforms.&lt;/p&gt;
&lt;p&gt;In opposition to application or repository/data warehouse data models that are very often specific to the software package and may only be required to hold a limited amount of a business' data (objects &amp;amp; attributes), another goal of the canonical data model is to be an application-independent model or PIM (Platform Independent Model: see MDA principles by OMG).&lt;/p&gt;
&lt;p&gt;It is for this reason that canonical data models are preferred by mediation platforms as it provides the following:&lt;/p&gt;
&lt;p&gt;- the basis for construction of the canonical data types for business objects (made up of one or many business objects)&lt;/p&gt;
&lt;p&gt;- the basis for the standardisation of information flows that use the above mentioned business objects&lt;/p&gt;
&lt;p&gt;- an independent format to which the mapping of specific information flow data models can be performed&lt;/p&gt;
&lt;p&gt;- an adherence to the recommended hub-and-spoke integration model&lt;/p&gt;
&lt;p&gt;In SOA architectures the canonical data model, and in particular the canonical data types, can be used for defining the parameters that make up a service’s signature (transmission of objects as parameters rather than simply a list of values). Indeed, the definition of the different parameters (data &amp;amp; data types), for all request &amp;amp; response messages, can refer to external XSD schemas which represent the complex canonical data types. It will be up to the services, then, to pick from the full set of data as is required to perform their processing.&lt;/p&gt;
&lt;p&gt;I think that I may have covered a lot of subjects here, each one can be the subject of one or several articles, but I hope that this may have helped a little to better understand the benefits of ECDM, as a reference structure but also how it can be used as an executable contract in today's information systems.&lt;/p&gt;</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3709799</link><pubDate>Thu, 05 Jul 2007 20:47:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3709799</guid><dc:creator>NickMalik</dc:creator><description>&lt;p&gt;@Anthony&lt;/p&gt;
&lt;p&gt;You use the term Business Object Model. &amp;nbsp;I use the term Conceptual Data Model. &amp;nbsp;We mean the same thing.&lt;/p&gt;
&lt;p&gt;Thanks for your contribution.&lt;/p&gt;
&lt;p&gt;--- Nick&lt;/p&gt;
</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3710511</link><pubDate>Thu, 05 Jul 2007 21:46:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3710511</guid><dc:creator>ajervis</dc:creator><description>&lt;p&gt;@NickMalik&lt;/p&gt;
&lt;p&gt;I would consider the Business Object Model (or Semantic Model) as a higher level of concern than that of the Conceptual Data Model, if only for the sake of taking a step back from IT.&lt;/p&gt;
&lt;p&gt;Indeed, what the IT industry calls a Conceptual Data Model is a data model that has a pre-defined scope. The scope, here, is generally that of a target IT solution that a Software Architect is drafting up. In past CASE methodologies, and even in those of today, it remains the role of the Software Architect/Engineer to build the high-level conceptual data model based upon the business' requirements for the target IT solution)&lt;/p&gt;
&lt;p&gt;A Business Object Model is one that does not relate to IT &amp;lt;em&amp;gt;at all&amp;lt;em&amp;gt;, and one that is (or should be) drawn up by those that have the business knowlege: that is to say, the business users (with a little help from those who know how draw a meaningful diagram!).&lt;/p&gt;
&lt;p&gt;A Business Object Model represents the business knowledge, the business constraints on those business objects and business characteristics (attributes, taxonomies, etc.)&lt;/p&gt;
&lt;p&gt;The Conceptual Data Model can be &amp;lt;i&amp;gt;derived&amp;lt;/i&amp;gt; in a certain manner from the Business Object Model, regrouping only those objects that fall into the scope of the target IT solution. It is in this model that the objects &amp;amp; attributes are further worked upon and completed to include high-level data and system architecture considerations. From here on we follow the traditional route of software development process: conceptual -&amp;gt; logical -&amp;gt; physical models ... and, I hope, respecting the MDA fashion.&lt;/p&gt;
&lt;p&gt;But, I guess we're getting away from the subject of your original article.&lt;/p&gt;
&lt;p&gt;Anthony&lt;/p&gt;
</description></item><item><title>re: Getting the Enterprise Canonical Data Model right</title><link>http://blogs.msdn.com/nickmalik/archive/2007/06/30/getting-the-enterprise-canonical-data-model-right.aspx#3715952</link><pubDate>Fri, 06 Jul 2007 02:51:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3715952</guid><dc:creator>NickMalik</dc:creator><description>&lt;p&gt;@Anthony,&lt;/p&gt;
&lt;p&gt;Point well taken. &amp;nbsp;I was not using the term correctly. &amp;nbsp;You are right. &amp;nbsp;I should not use the term Conceptual Data Model to refer to the Enterprise Business Object Model.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;--- N&lt;/p&gt;
</description></item></channel></rss>