<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Integration Engineer &#187; canonical</title>
	<atom:link href="http://www.theintegrationengineer.com/category/data/canonical/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.theintegrationengineer.com</link>
	<description>When it just has to work.</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:33:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Canonical Data Animation</title>
		<link>http://www.theintegrationengineer.com/canonical-data-animation/</link>
		<comments>http://www.theintegrationengineer.com/canonical-data-animation/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 12:51:07 +0000</pubDate>
		<dc:creator>Roy</dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[YouTube Posts]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.theintegrationengineer.com/?p=728</guid>
		<description><![CDATA[Sometimes a picture can bring more clarity to a concept.  For Canonical Data, an animation is what is called for.  I found this animation of canonical data and its implementation.  I think the first minute and a half paint a very good picture of how canonical data is implemented and can be leveraged.  [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-786" title="cannon_pzl" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/10/cannon_pzl.JPG" alt=" Canonical Data Animation" width="129" height="102" />Sometimes a picture can bring more clarity to a concept.  For Canonical Data, an animation is what is called for.  I found this animation of canonical data and its implementation.  I think the first minute and a half paint a very good picture of how canonical data is implemented and can be leveraged.  Later in the animation they start to describe a global vision of implementation.  Unfortunately I must disagree with this vision.  I don&#8217;t think that having a global canonical form of data will ever truly be a solution that works.</p>
<p><span id="more-728"></span></p>
<p>Take a look at this and tell me what you think.<br />
<center><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/mj-kCFzF0ME&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/mj-kCFzF0ME&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
</center><br />
The illustration of data that is passed between two applications, having gaps and overflow of the data needed by a third party application is all to real.  And this is a good representation of what can be done using a Canonical format to handle the needs of all of the parties.</p>
<p>There are two options with different benefits that I have used.  One is to build a actual file format that holds your canonical data.  Another is to use a database to act as your canonical.  Both of these have trade offs.</p>
<p><strong>File based Canonical:</strong></p>
<p>To make a canonical file format you will need to pick the type of file that you want all of your applications to be receiving either directly or through an adapter of some kind.  Building from scratch a flat file or XML file is the most flexible, but requires you to do a bunch of planning.  And after it is done, this format must be maintained.</p>
<p>Using a file based canonical does allow you a fairly easy way to find the state of a failed step, as you can look at the file and identify what is wrong.  You can also correct the data there and allow the process to continue.  You can also make copies of these files for your monitoring so that tracking your data and transactions becomes easy, and you performance metrics become rich with data.</p>
<p><strong>Database based Canonical:</strong></p>
<p>Sometimes people, DBAs especially, get excited when we talk about doing this.  They are visualizing one massive Canonical Database that holds all of the transactions and is accessed by all of the applications.  And there are many products that work this way internally.  But this is not the only approach.</p>
<p>The one database to rule all canonical, or as I like to call it &#8220;Lord of the Databases&#8221;, requires a DBA to pay attention to optimizing, backing up, and all of the other care and feeding tasks that go along with having a database that you maintain for the long haul.  This is efficient in that you can get all of your performance data from one place, and monitoring is one connection.  However, some times applications have limitations in how they talk to a database that is not theirs, and this can make implementation complex.</p>
<p>Another way to use a Database based Canonical model is to use disposable databases.  In the Disposable Database implementation, you create a database that is small, only contains the structures and tables for the one transaction, and gets destroyed at the end of the transaction life cycle.  Using the Disposable Database, you don&#8217;t ever have to optimize them, back them up, or any of the other care and feeding tasks that are part of the LOTDB implementation.</p>
<p><strong>Comparative implementations:</strong></p>
<p>I want to examine and compair the File vs DB canonical implementations in more detail in another article.  If you have another Canonical implementation that I haven&#8217;t seen, please let me know.  I would love to examine that as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theintegrationengineer.com/canonical-data-animation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Canonical Data</title>
		<link>http://www.theintegrationengineer.com/canonical-data/</link>
		<comments>http://www.theintegrationengineer.com/canonical-data/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 22:18:48 +0000</pubDate>
		<dc:creator>Roy</dc:creator>
				<category><![CDATA[canonical]]></category>
		<category><![CDATA[application  data]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Data-set]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.theintegrationengineer.com/?p=690</guid>
		<description><![CDATA[Like the exchange of data between Sellers and Suppliers, the exchange of data within the company is vital to successful processing of transactions.  This could be the Seller or the Supplier, it doesn&#8217;t really matter.  As data passes from the processing application, to the external interface.  We have a concept that is called a Canonical [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-719" title="emergency_traffic_cone_pzl" src="http://www.theintegrationengineer.com/wp-content/uploads/2009/09/emergency_traffic_cone_pzl.png" alt="emergency traffic cone pzl Canonical Data" width="76" height="85" />Like the exchange of data between Sellers and Suppliers, the exchange of data within the company is vital to successful processing of transactions.  This could be the Seller or the Supplier, it doesn&#8217;t really matter.  As data passes from the processing application, to the external interface.  We have a concept that is called a Canonical form of data.  Canonical data is the data that is required and essential to completing your business.  I have written about this in passing before, but today I want to talk about what goes in it, and what it looks like.<span id="more-690"></span></p>
<p><strong>What is Canonical Data?</strong></p>
<p>Canonical Data is the data that you or your business needs to complete the job you have to do with it.  If we are talking about order processing, then the Canonical Data will comprise the data that is used to complete the order.  This is not the minimal data set, this is the whole data set.  This is not necessarily the EDI enveloping data, it may be Identifiers that relate to the TPIDs, and it may not contain control numbers and other things that may only be found in the EDI file.  But it will contain information that you need for the order, PO Number, Line Item data, and so forth.  All of this data will need to be passed from your integration, translation, and or communication software, to your order processing systems.  And it may be passed around between systems as the order is filled and processed or what ever else you are doing with it.</p>
<p>What this data is, becomes defined based on the requirements of your internal systems, software and data needs.  One company may take shipping data and stick it into a data base outside of the canonical data.  It gets retrieved later, but the internal applications don&#8217;t have to deal with and preserve it.  Others may include it and leverage it on some internal aspects of their order fulfilment.  But the Canonical Dataset that your business needs and uses will be defined by the internal systems so that they can do what you need them to do.</p>
<p><strong>What form should it take?</strong></p>
<p>This is largely a choice that is up to you and you organization.  There will probably be some formats that are native to some applications.  As long as these fill the requirements of encompassing the data that you need to process on, these are fine choices.  Also, looking at working with these internally through upgrades to 3rd party applications, and possible inclusion of new applications, a flexible format that can be updated is important.</p>
<p>For me, in my experience I have seen flat file and XML used with a good deal of success.  EDI may have a comprehensive set of data, but can become really clumsy when working with internal applications that need to be extended by adding data to the canonical file.  So I would discourage EDI or a canonized XML like cXML to be used at the canonical</p>
<p><strong>Who sees the Canonical Documents?</strong></p>
<p>Please keep your Canonical Documents for internal consumption only.  It is not that they contain secret information, (they may have confidential data)  but they are designed just for you and  your applications.  I worked with a supply chain company once that developed their internal XML format, and then published it out to a couple of trading partners.  These partners integrated to this.  Eighteen months later, when the company was doing some growing, they were stuck supporting this one-off format that was no longer used as the internal canonical.</p>
<p>Developers, and those supporting the applications are going to see and deal with the canonical data and data files.  Monitoring and reporting systems may represent the canonical data, but it is rare that you need to invest time training and supporting bringing people outside of this group up to a familiar speed on your canonical file format.</p>
<p><strong>What have you seen done?</strong></p>
<p>Does your company have a formal canonical dataset?  Or what have you seen done that works to fill the need of canonical data?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theintegrationengineer.com/canonical-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
