<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Services &amp; Integration Stuff</title><subtitle type="html" /><id>http://barmagy.com/blogs/mika/atom.aspx</id><link rel="alternate" type="text/html" href="http://barmagy.com/blogs/mika/default.aspx" /><link rel="self" type="application/atom+xml" href="http://barmagy.com/blogs/mika/atom.aspx" /><generator uri="http://communityserver.org" version="2.0.60217.2664">Community Server</generator><updated>2007-04-29T15:27:00Z</updated><entry><title>BizTalk - The way I see it! – Part 4: Developing Schemas</title><link rel="alternate" type="text/html" href="http://barmagy.com/blogs/mika/archive/2008/05/02/1346.aspx" /><id>http://barmagy.com/blogs/mika/archive/2008/05/02/1346.aspx</id><published>2008-05-02T08:04:00Z</published><updated>2008-05-02T08:04:00Z</updated><content type="html">&lt;P class=MsoNormal align=center&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Today, I’ll talk about how to develop Schemas using BizTalk, if you don’t know what a schema is, kindly use &lt;/FONT&gt;&lt;A href="/blogs/mika/archive/2008/05/01/1341.aspx"&gt;&lt;FONT color=#800080 face=Calibri&gt;this link&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;As a prerequisite, you must install the following software in order to develop BizTalk Applications:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Microsoft Visual Studio (2003 or higher)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Microsoft BizTalk Server 2006 (preferably R2), and its prerequisites &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;After you install BizTalk, Kindly walk with me thru the following steps:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Open Visual Studio&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;In the new Project window, you should see something similar to this&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;IMG src="http://sbwaeq.bay.livefilestore.com/y1pSYpTLojdqS9ogYuzZ-Czi8xUdgqRWA2hI3h7joR4-AXAdBAs9x27Q4t2vVNeV84L49rWzQvzqTc"&gt;&lt;/IMG&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;3.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;After selecting “Empty BizTalk Server Project” from templates pane, write a descriptive name of the new project, let’s say, “&lt;B&gt;BizTalkTraining.OneBigApplication&lt;/B&gt;”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;4.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Next step is to create some folders inside the newly created project, as the following&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;FONT face=Calibri&gt;&lt;IMG src="http://sbwaeq.bay.livefilestore.com/y1pSYpTLojdqS-BStuV2vGjOJeXJlwwyNVXmpCNYLIp54dicpKTvt3v8d3rhh5kKSIVadzo6zAui10"&gt;&lt;/IMG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;This step is not mandatory; however, creating these folders will help you with the namespaces and target namespaces.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;5.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;To create a new Schema, right-click the Schemas folder and say Add - new Item&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;6.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;In the Add New Item window, choose Schema, and type the name of the new Schema, let’s Say “&lt;B&gt;Order&lt;/B&gt;”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;7.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Now, you should see the BizTalk Schema Editor,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;Just a reminder: we’re in the process of creating a new schema that should describe -at the runtime- the shape of an XML document&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;8.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Consider the following XML, we need to create our schema to match this XML&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&amp;lt;Order&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;OrderID&amp;gt;123&amp;lt;/OrderID&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;OrderAmount&amp;gt;10.1&amp;lt;/OrderAmount&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;Products&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;Product ProductID=”456”&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;ProductName&amp;gt;Xyz&amp;lt;/ProductName&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/Product&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/Products&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;I&gt;&lt;FONT face=Calibri&gt;&amp;lt;/Order&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;By examining this XML, we should have the following elements to create the schema:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;One root element, named &lt;B&gt;Order, &lt;/B&gt;under&lt;B&gt; &lt;/B&gt;this root we’ll have:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;o&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Element named &lt;B&gt;OrderID&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;o&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Element named &lt;B&gt;OrderAmount&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;o&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Record named &lt;B&gt;Products&lt;/B&gt;, and under this,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;§&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Record named &lt;B&gt;product&lt;/B&gt;, under this&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Attribute named &lt;B&gt;ProductID&lt;/B&gt;,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Element named &lt;B&gt;ProductName&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;9.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Going back to our XSD editor, we will do the following to form the new schema&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;a.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Rename the &lt;B&gt;Root&lt;/B&gt; element to be &lt;B&gt;Order&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;b.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Right-click &lt;B&gt;Order&lt;/B&gt; node, and say Insert Schema Node – Child Field Element,&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Calibri&gt;&lt;IMG src="http://sbwaeq.bay.livefilestore.com/y1pSYpTLojdqS8qHPqHUMT6xpFNJkZK6X9hX4p9RbhUtWD7iBDMK9C_m-hsuMW8Q3oVUPLzq2DOFP8"&gt;&lt;/IMG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;c.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Rename the new field element to be &lt;B&gt;OrderID&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;d.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Repeat the same step for &lt;B&gt;OrderAmount&lt;/B&gt; (Child Field Element), &lt;B&gt;Products&lt;/B&gt; (Child Record), &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;e.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Now, r-click the &lt;B&gt;Products&lt;/B&gt; node, and add a new Child Record, rename it to &lt;B&gt;Product&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;f.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;On Product, add a new Child Field Attribute named &lt;B&gt;ProductID&lt;/B&gt;, and a new Child Field Element named &lt;B&gt;ProductName&lt;/B&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;10.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;While clicking any of these nodes, like &lt;B&gt;OrderAmount&lt;/B&gt; for example, notice the properties window in Visual Studio and how it changes from element to another.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;FONT face=Calibri&gt;&lt;IMG src="http://sbwaeq.bay.livefilestore.com/y1pSYpTLojdqS_BN3sju6N8n3AQXE837SLPQlxXtXqClxtfY8h-H3oB9l8n6p7UvoSQBSr47o5vjD4"&gt;&lt;/IMG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;11.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Now you can generate an instance of this XSD&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph&gt;&lt;FONT face=Calibri&gt;&lt;IMG src="http://sbwaeq.bay.livefilestore.com/y1pSYpTLojdqS_PhqjO5E0NkvfhYlMf-iHWuO1LWi-8_VI7w0Y6hI9r4coj9EQtD_Dw_WT5fTFomRU"&gt;&lt;/IMG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Check the VS output window to see the new instance. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;As you can see in the context menu above, you can also validate the schema, or even validate the instance against this schema.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;B&gt;Quick Tip:&lt;/B&gt; if you have already an XML file that you want to create a schema for, you can “Add Generated Items” found under Add when right clicking the project (or any folder)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;IMG src="http://sbwaeq.bay.livefilestore.com/y1pSYpTLojdqS-JduxlZBQVoPwZe-JJck2_7jT0ZHplICKWiFSBJAlW1RhZX6Trp2PB8JIuRKUb5Kk"&gt;&lt;/IMG&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;If you are new to BizTalk development, I urge you to exercise and discover more inside BizTalk schema editor. It has a lot of features that cannot be covered in a single blog post!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;See you next time with “Developing Maps using BizTalk”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1346" width="1" height="1"&gt;</content><author><name>Mika</name><uri>http://barmagy.com/members/Mika.aspx</uri></author></entry><entry><title>BizTalk - The way I see it! – Part 3: BizTalk artifacts</title><link rel="alternate" type="text/html" href="http://barmagy.com/blogs/mika/archive/2008/05/01/1341.aspx" /><id>http://barmagy.com/blogs/mika/archive/2008/05/01/1341.aspx</id><published>2008-04-30T23:24:00Z</published><updated>2008-04-30T23:24:00Z</updated><content type="html">&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;In the previous posts, I talked about &lt;/FONT&gt;&lt;A href="/blogs/mika/archive/2008/04/11/1240.aspx"&gt;&lt;FONT color=#800080 size=4 face=Calibri&gt;BizTalk Server Architecture&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4 face=Calibri&gt; after a &lt;/FONT&gt;&lt;A href="/blogs/mika/archive/2008/04/09/1224.aspx"&gt;&lt;FONT color=#800080 size=4 face=Calibri&gt;brief introduction&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4 face=Calibri&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;Today, I’ll talk about BizTalk artifacts covering the following points, &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Schemas&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Maps&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Orchestration&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Adapter&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT color=#000000&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;·&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Pipeline&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;Schemas (or XSD)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;A schema is the standard way to describe XML document structure. BizTalk cannot deal with Xml documents (messages) without their XSD (unless you’re using these messages in a non-xml format)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;To cut a long story short, XSD to xml is like a Class to its instance&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;Maps&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4&gt;&lt;FONT face=Calibri&gt;Since BizTalk is used to integrate more than one system (definitely&lt;/FONT&gt;&lt;SPAN&gt;&lt;SPAN&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;), and given that different systems uses different &lt;I&gt;schemas&lt;/I&gt;, so there gotta be something to “map” these different schemas to each other.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;So, Maps are used to &lt;I&gt;transform &lt;/I&gt;one schema to another. If you guys are familiar with &lt;/FONT&gt;&lt;A href="http://w3schools.com/xsl/default.asp"&gt;&lt;FONT color=#800080 size=4 face=Calibri&gt;XSLT&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4 face=Calibri&gt;, you should know exactly what I’m talking about. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;Orchestration&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;&lt;U&gt;Short definition&lt;/U&gt;: executable business process, you can consider it as a workflow (for now)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;&lt;U&gt;Longer definition&lt;/U&gt;: we need 2 posts (at least) to cover &lt;I&gt;this&lt;/I&gt;; however this is already in my plan for the upcoming posts, God willing.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;Adapter&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;When integrating with a system (say SQL Server), BizTalk should know &lt;I&gt;how&lt;/I&gt; to send requests and receive responses to this system (such as select statements, executing stored procedures, etc...). That’s why we need adapters, to convert XML (BizTalk format) to some System format and the way back.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=4&gt;Pipeline&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;As we have seen in &lt;/FONT&gt;&lt;A href="/blogs/mika/archive/2008/04/11/1240.aspx"&gt;&lt;FONT color=#800080 size=4 face=Calibri&gt;previous post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4 face=Calibri&gt;, In case BizTalk receives a message, the message is processed by the adapter; it goes thru a pipeline which does the following:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Decode: Decrypts or decodes the message data&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Disassemble: Disassembles an interchange into smaller messages and parses message contents&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;3.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Validate: Validates the message data, generally against a schema&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast&gt;&lt;FONT size=4&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;4.&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Resolve Party: Identifies the BizTalk Server party associated with some security token in the message or message context&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;However, all of these steps are not mandatory; some of them will function according to the configured pipeline.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;For example, XML receive pipeline (BizTalk out of the box), only does the validation step (step 3).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=4 face=Calibri&gt;See you next post with “Developing Schemas Using BizTalk”&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph&gt;&lt;o:p&gt;&lt;FONT size=4 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1341" width="1" height="1"&gt;</content><author><name>Mika</name><uri>http://barmagy.com/members/Mika.aspx</uri></author></entry><entry><title>BizTalk - The way I see it! – Part 2: Concepts - Cont</title><link rel="alternate" type="text/html" href="http://barmagy.com/blogs/mika/archive/2008/04/11/1240.aspx" /><id>http://barmagy.com/blogs/mika/archive/2008/04/11/1240.aspx</id><published>2008-04-11T11:01:00Z</published><updated>2008-04-11T11:01:00Z</updated><content type="html">&lt;br&gt;&lt;br&gt;

&lt;p class="MsoNormal"&gt;In my &lt;a href="/blogs/mika/archive/2008/04/09/1224.aspx"&gt;previous post&lt;/a&gt;,
we talked about some basic BizTalk concepts. In this post, we’ll talk about
more of these concepts.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Before drilling into details about the BizTalk Server
Architecture, let’s talk bit about a design pattern called Pub/Sub.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;What is Pub/Sub??&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;Publish/Subscribe &lt;/b&gt;(aka &lt;a href="http://en.wikipedia.org/wiki/Observer_pattern"&gt;Observer&lt;/a&gt;) is a design
pattern that implies the following logic:&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;Consider a scenario where you tell your
brother &lt;u&gt;“bro, when&lt;/u&gt;&lt;span&gt;&lt;/span&gt;&lt;u&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt; &lt;/span&gt;my friend ABC calls me, please tell him I’m waiting for
him at the&lt;span&gt;&amp;nbsp; &lt;/span&gt;XYZ place”&lt;/u&gt; &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;When you said such sentence, you just
created a subscription!! COOL&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;Next day, your friend ABC calls at home, … By
doing this, he just published a specific event.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;If you previously worked with SQL Notification Services, you
should be familiar with this concept. When a particular data is altered on the
database, Notification Services sends a mail message for all subscribers.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;font size="5"&gt;&lt;b&gt;BizTalk Server Architecture:&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;img src="http://byfiles.storage.live.com/y1phDExTX77AvDnnN8yO_3oud8j5RrLC6gFV1fAVjmOYZCSDSGRtMlRcyUqnvLBrgl4V9GHTLafg5U"&gt;&lt;br&gt;&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;
 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 
 
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;As shown above, BizTalk is composed from the following
components:&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;Cross-cutting component:&lt;/b&gt;
like Process Management Administration, Deployment, BI, Reporting, Monitoring,
etc …&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;Orchestrations:&lt;/b&gt; are
a BizTalk “workflow” that hosts some business process, we’ll take about it in
more details on next posts&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;Other Apps:&lt;/b&gt; It can
be any application that consumes BizTalk artifacts, it can be even your .Net
Console application that consumes a business process&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;Pipeline: &lt;/b&gt;a pipeline
is simple a pipeline that BizTalk messages should go through, it can be of
different types, it will take a bit of our focus in next posts&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;Adapters: &lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or Transport Handlers, Converts message
contents from one format to another, more to come on this&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;MessageBox: &lt;/b&gt;this is
the most interesting part in the architecture; it’s a SQL database that keeps
our subscriptions configuration. Guided by a framework, it helps BizTalk
determines how to process &lt;u&gt;all&lt;/u&gt; messages. In our previous example of Pub/Sub,
your brother brain acted as a MessageBox.&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font size="5"&gt;BizTalk Server Message:&lt;/font&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;BizTalk Message is a
typical &lt;u&gt;XML Document&lt;/u&gt;. Important thing you should know about BizTalk
Message, that is “&lt;u&gt;BizTalk message is immutable&lt;/u&gt;”, i.e.: after the message
is constructed, it can’t be changed.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;This message can contain
some context properties that helps BizTalk routes this message to its correct
destination. &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;BizTalk also can route
messages according to its contents; known as Content-Based Routing (CBR)&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;b&gt;Example: &lt;/b&gt;you have a message that
contains a customer order, you can configure BizTalk to route this kind of
messages to two different destinations according to the order quantity.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;u&gt;When can we consider the
message constructed?&lt;/u&gt; When it’s placed in MessageBox.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;font size="5"&gt;Message Lifecycle inside BizTalk:&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span&gt;&lt;img src="http://byfiles.storage.live.com/y1phDExTX77AvBlVZUpMu2bfFY2pCmMxIFXFC8Lw5you2oa-nD8Liq4B4T94DFLIikbCfp2ZVIVgCo"&gt;
&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Ok, let’s take it step by step:&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;A message is received in
BizTalk at something called &lt;b&gt;Receive Port&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;A &lt;u&gt;receive port&lt;/u&gt; contains one or more
receive locations, Also Port can contain XSLT (Map) that &lt;i&gt;transforms&lt;/i&gt;
messages from one format to another.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;A &lt;u&gt;receive location&lt;/u&gt; contains a
configuration of receive adapter and receive pipeline&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;A &lt;u&gt;receive adapter&lt;/u&gt;: at this point,
the configured adapter reads the Stream and constructs a message and places it
on the pipeline&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;The constructed message is
received on the pipeline, the receive pipeline contains 4 stages (we’ll take
about it more on next posts)&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" align="center"&gt;&lt;span&gt;
&lt;img src="http://byfiles.storage.live.com/y1phDExTX77AvBKfy-oD2o9ufZLeNNnHEV-YUnAI1UGXw01h_DZ6eWoy-OOCVoJi74l4dGZ4mapf1U"&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;The messaging engine takes
the output of the pipeline and places it on MessageBox.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;This engine will detect where to route this
message according to subscriptions stored in MessageBox.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;4.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;In this step, the messaging
engine detected that a specific orchestration (Business Process) is waiting for
this message type, so it simply activates an instance of this orchestration&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;5.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;After the message is
processed by the orchestration, it’s placed again on MessageBox&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;Again, Messaging engine detects where to
route this message according to the stored subscriptions&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;6.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;Messaging engine detected a
&lt;b&gt;Send Port &lt;/b&gt;waiting for this processed message, &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;A &lt;u&gt;Send Port&lt;/u&gt; contains a configuration
of send pipeline and send adapter&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;By sending the processed message to the
send port, it’s grabbed by the &lt;b&gt;Send Pipeline,&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;A &lt;u&gt;Send Pipeline&lt;/u&gt; contains 3 stages
(more on upcoming posts)&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;A &lt;u&gt;Send Adapter&lt;/u&gt; reads the message and
writes on a stream&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" align="center"&gt;&lt;span&gt;&lt;img src="http://byfiles.storage.live.com/y1phDExTX77AvCUslKK4nRaehHD9e59ctGdw_Q8B0y1wjNZ05UZXGaGq5z0NYwYrC82Y4v_HeL7Jb0"&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" align="center"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;See you next post, with “BizTalk artifacts”.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;Mike&lt;/p&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1240" width="1" height="1"&gt;</content><author><name>Mika</name><uri>http://barmagy.com/members/Mika.aspx</uri></author></entry><entry><title>BizTalk - The way I see it! – Part 1</title><link rel="alternate" type="text/html" href="http://barmagy.com/blogs/mika/archive/2008/04/09/1224.aspx" /><id>http://barmagy.com/blogs/mika/archive/2008/04/09/1224.aspx</id><published>2008-04-09T17:21:00Z</published><updated>2008-04-09T17:21:00Z</updated><content type="html">&lt;br&gt;&lt;br&gt;&amp;nbsp;Hello again,&lt;p class="MsoListParagraphCxSpFirst"&gt;
&lt;/p&gt;



&lt;p class="MsoListParagraphCxSpMiddle"&gt;It crossed my mind a couple of weeks ago to
share some BizTalk knowledge with you guys, reason being it takes a lot of
brains for any BizTalk developer to find information on the internet about how to develop
BizTalk applications in one place.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;You may wonder, why I shouldn’t
surf MSDN instead of reading this tedious blog !!&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The answer is simple, any developer
working with any development environment; he/she “may” ( aka: must :) &lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;) encounter issues
finding a specific piece of info related to this development environment/product. This
chain of posts is aimed to help BizTalk developers finding this particular
piece of info easily by reading a training-like blog posts.&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;b&gt;Points Covered:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;Thru the upcoming posts, I’ll try to cover
the following points:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;Must-know BizTalk concepts&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;BizTalk artifacts&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Schemas&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Maps&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Orchestration&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Pipeline&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Adapter&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Developing Schemas Using
BizTalk&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Developing Maps using
BizTalk&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Developing Orchestration
using BizTalk&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Developing Pipelines using
BizTalk&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;Deploying a BizTalk
application&lt;/li&gt;&lt;/ul&gt;























&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span class="MsoIntenseEmphasis"&gt;&lt;b&gt;Note:&lt;/b&gt; I may add more points,
or add details more than originally planned according to your comments, so
sharing is most welcome as usual.&lt;/span&gt;&lt;span class="MsoIntenseEmphasis"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;b&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;b&gt;Who should read?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;BizTalk developers&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;BizTalk developers wanna-be&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;Integration geeks&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;b&gt;Prerequisites: &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;Microsoft Visual Studio&amp;nbsp;2005
(or 2008) and the development of .NET solutions&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;Programming with the .NET
Framework&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href="http://www.w3schools.com/xml/default.asp"&gt;Extensible Markup Language
(XML)&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href="http://www.w3schools.com/xsl/default.asp"&gt;Extensible Style sheet Language
Transformations (XSLT)&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href="http://www.w3schools.com/schema/default.asp"&gt;XML Schema Definition
Language (XSD)&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href="http://www.w3schools.com/soap/default.asp"&gt;Web Service use and
development&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;So, &lt;b&gt;What’s BizTalk? And what’s
the need for it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Firstly, it’s not fair to say
“Microsoft BizTalk server”, but rather we should say “Microsoft BizTalk server
&amp;amp; technology”. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;Why?&lt;/span&gt;&lt;b&gt; &lt;/b&gt;Because simple it’s
not just another server that Microsoft released, it’s also a new technology,
i.e.: new Integration framework&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;The need:&lt;/b&gt; basically because
computer systems are not islands, they need to integrate. The need for an
integration framework emerged since these systems are different in O/S
platform, security mechanisms, and network architecture.&lt;/p&gt;

&lt;div&gt;
&lt;hr&gt;
&lt;p class="MsoQuote"&gt;&lt;b&gt;Microsoft BizTalk Framework: &lt;/b&gt;The
Microsoft&lt;sup&gt;® &lt;/sup&gt;BizTalk &lt;sup&gt;TM &lt;/sup&gt;Framework is a comprehensive
XML-based implementation framework developers can use to design and implement
solutions based on a Web Services Architecture. It helps establish a set of
guidelines for the publishing of schemas in XML and the use of XML messages to
easily integrate software programs to build rich, new Web-based solutions. &lt;/p&gt;

&lt;/div&gt;

&lt;p class="MsoQuote"&gt;&lt;b&gt;Microsoft BizTalk Server: &lt;/b&gt;BizTalk Server provides the
tools and infrastructure companies require to exchange business documents among
various platforms and operating systems, regardless of the application being
used to process the documents. Using BizTalk Server, companies can easily
exchange documents between applications within their own organization. BizTalk
Server also provides a standard gateway for sending and receiving documents via
the Internet. By taking advantage of BizTalk-compatible messages and compliant
schemas, BizTalk Server enables organizations to conduct business online
effectively and efficiently. &lt;/p&gt;

&lt;div&gt;

&lt;p class="MsoQuote"&gt;&lt;b&gt;Source: &lt;/b&gt;&lt;a href="http://www.microsoft.com/presspass/features/2000/01-03xmlglossary.mspx"&gt;&lt;b&gt;http://www.microsoft.com/presspass/features/2000/01-03xmlglossary.mspx&lt;/b&gt;&lt;/a&gt;&lt;b&gt;
&lt;hr&gt;&lt;/b&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;More &amp;amp; more in the upcoming posts, cya then&lt;br&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Mike&lt;/p&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=1224" width="1" height="1"&gt;</content><author><name>Mika</name><uri>http://barmagy.com/members/Mika.aspx</uri></author></entry><entry><title>Egoless Programming !!</title><link rel="alternate" type="text/html" href="http://barmagy.com/blogs/mika/archive/2007/04/29/350.aspx" /><id>http://barmagy.com/blogs/mika/archive/2007/04/29/350.aspx</id><published>2007-04-29T12:27:00Z</published><updated>2007-04-29T12:27:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN class=subhead1&gt;I was surfing the internet last week when I saw this interesting article, I couldn't help myself reading it altough I&amp;nbsp;had a lotta work. I thought I can share it&amp;nbsp;here with you guys.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=subhead1&gt;I just copied&amp;nbsp;its juice&amp;nbsp;down here, if you're interested to know more, click the link below.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=subhead1&gt;&lt;/SPAN&gt;&lt;SPAN class=subhead1&gt;&lt;A href="http://builder.com.com/5100-6404-1045782.html" target=_blank&gt;http://builder.com.com/5100-6404-1045782.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;&lt;SPAN class=subhead1&gt;Egoless Programming&amp;nbsp;10 Commandments&lt;/SPAN&gt;&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;FONT size=2&gt;What we need is a set of rules or guidelines to help developers keep themselves (their egos, actually) separate from their code. Hence our &lt;U&gt;Ten Commandments for Egoless Programming&lt;/U&gt;, which you can also download in handy "stone tablet" format:&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;B&gt;Understand and accept that you will make mistakes.&lt;/B&gt; The point is to find them early, before they make it into production. Fortunately, except for the few of us developing rocket guidance software at JPL, mistakes are rarely fatal in our industry, so we can, and should, learn, laugh, and move on. 
&lt;LI&gt;&lt;B&gt;You are not your code.&lt;/B&gt; Remember that the entire point of a review is to find problems, and problems will be found. Don't take it personally when one is uncovered. 
&lt;LI&gt;&lt;B&gt;No matter how much "karate" you know, someone else will always know more.&lt;/B&gt; Such an individual can teach you some new moves if you ask. Seek and accept input from others, &lt;I&gt;especially&lt;/I&gt; when you think it's not needed. 
&lt;LI&gt;&lt;B&gt;Don't rewrite code without consultation.&lt;/B&gt; There's a fine line between "fixing code" and "rewriting code." Know the difference, and pursue stylistic changes within the framework of a code review, not as a lone enforcer. 
&lt;LI&gt;&lt;B&gt;Treat people who know less than you with respect, deference, and patience.&lt;/B&gt; Nontechnical people who deal with developers on a regular basis almost universally hold the opinion that we are prima donnas at best and crybabies at worst. Don't reinforce this stereotype with anger and impatience. 
&lt;LI&gt;&lt;B&gt;The only constant in the world is change.&lt;/B&gt; Be open to it and accept it with a smile. Look at each change to your requirements, platform, or tool as a new challenge, not as some serious inconvenience to be fought. 
&lt;LI&gt;&lt;B&gt;The only true authority stems from knowledge, not from position.&lt;/B&gt; Knowledge engenders authority, and authority engenders respect—so if you want respect in an egoless environment, cultivate knowledge. 
&lt;LI&gt;&lt;B&gt;Fight for what you believe, but gracefully accept defeat.&lt;/B&gt; Understand that sometimes your ideas will be overruled. Even if you do turn out to be right, don't take revenge or say, "I told you so" more than a few times at most, and don't make your dearly departed idea a martyr or rallying cry. 
&lt;LI&gt;&lt;B&gt;Don't be "the guy in the room."&lt;/B&gt; Don't be the guy coding in the dark office emerging only to buy cola. The guy in the room is out of touch, out of sight, and out of control and has no place in an open, collaborative environment. 
&lt;LI&gt;&lt;B&gt;Critique code instead of people—be kind to the coder, not to the code.&lt;/B&gt;As much as possible, make all of your comments positive and oriented to improving the code. Relate comments to local standards, program specs, increased performance, etc.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;EM&gt;I'm interested to know your comments/inputs to this and whether it's applicable or not in the "Egyptian" environment:)&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://barmagy.com/aggbug.aspx?PostID=350" width="1" height="1"&gt;</content><author><name>Mika</name><uri>http://barmagy.com/members/Mika.aspx</uri></author></entry></feed>