<?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>Darren Jefford</title><link>http://blogs.msdn.com/b/darrenj/</link><description>Solution Architect, Microsoft Consulting Services, Microsoft UK</description><dc:language>en-GB</dc:language><generator>Telligent Community 5.6.583.19849 (Build: 5.6.583.19849)</generator><item><title>New Blog!</title><link>http://blogs.msdn.com/b/darrenj/archive/2011/12/30/new-blog.aspx</link><pubDate>Fri, 30 Dec 2011 20:26:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10252129</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=10252129</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2011/12/30/new-blog.aspx#comments</comments><description>&lt;p&gt;I've decided to ressurect my blog but over on a new web-site that enables me to have more control over the look and feel.&amp;nbsp; Please join me (if your still monitoring this blog) over at &lt;a href="http://www.darrenj.co.uk"&gt;http://www.darrenj.co.uk&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10252129" width="1" height="1"&gt;</description></item><item><title>Software in the cloud: Cloud Workflow</title><link>http://blogs.msdn.com/b/darrenj/archive/2008/10/02/software-in-the-cloud-cloud-workflow.aspx</link><pubDate>Thu, 02 Oct 2008 12:31:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8973295</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=8973295</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2008/10/02/software-in-the-cloud-cloud-workflow.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;As promised in my &lt;a target="_blank" href="http://blogs.msdn.com/darrenj/archive/2008/09/24/software-in-the-cloud-the-relay-service.aspx"&gt;last posting&lt;/a&gt; let's take a look at the new "Workflow in the cloud" functionality offered in the July drop of the &lt;a href="http://www.biztalk.net"&gt;BizTalk Services&lt;/a&gt;  &lt;p&gt;This cloud based workflow system leverages Windows Workflow and is hosted in our datacenter and extended as appropriate through "cloud-scale" runtime services and infrastructure.&amp;nbsp; The idea being that you can run your workflows on our infrastructure which will scale to your throughput needs - subject to appropriate payments.&amp;nbsp;&amp;nbsp; These workflows will be durable and resilient to any failures - all of this will be transparent to you, simply deploy your workflows and away you go.  &lt;p&gt;As it currently stands you only get one workflow type to use, a sequential workflow which is of course well suited to straight-forward predictable &lt;em&gt;machine&lt;/em&gt; workflows.&amp;nbsp; Within this workflow you get to use Activities but you can't however use the complete palette of WF activities that you get in the .NET framework.  &lt;p&gt;Your restricted to a number of new &lt;em&gt;cloud&lt;/em&gt; activities provided which are as follows: &lt;i&gt;CloudHttpSend&lt;/i&gt;, &lt;i&gt;CloudHttpReceive&lt;/i&gt;, &lt;i&gt;CloudIfElse&lt;/i&gt;, &lt;i&gt;CloudSequence&lt;/i&gt;, &lt;i&gt;CloudServiceBusSend&lt;/i&gt;, &lt;i&gt;CloudDelay&lt;/i&gt; and &lt;i&gt;CloudWhile&lt;/i&gt;.  &lt;p&gt;All of these do exactly what they say on the tin, the CloudHttpSend activity enables you to send an HTTP GET or POST to a remote URI, the CloudHttpReceive enables something to send data to a running workflow instance via an HTTP POST.&lt;/p&gt; &lt;p&gt;The &lt;em&gt;CloudServiceBusSend&lt;/em&gt; activity may be a new concept to you as it refers to invoking a Service exposed via the Internet Service Bus using the relay service which I covered in &lt;a target="_blank" href="http://blogs.msdn.com/darrenj/archive/2008/09/24/software-in-the-cloud-the-relay-service.aspx"&gt;this posting&lt;/a&gt;. This means you can have a WCF service hosted within your corporate network but still enable it to be invoked from parties outside of your corporate boundary provided they have the appropriate permissions.&amp;nbsp; In the case of a cloud based workflow, it can invoke services hosted within a corporate boundary from a Microsoft data-center without having to punch new holes in your firewall but still maintain security.&lt;/p&gt; &lt;p&gt;So, let's take a look at how you can create your own workflow, deploy and execute it using the BizTalk Services release that you can all use.&amp;nbsp; To start you'll need to create an account at &lt;a href="http://biztalk.net"&gt;http://biztalk.net&lt;/a&gt; and download/install the BizTalk Services SDK.&lt;/p&gt; &lt;p&gt;The first step is to create a new &lt;em&gt;Sequential Workflow&lt;/em&gt;, all cloud workflows must be Sequential Workflows and XOML only.&amp;nbsp; There is no way to have "code behind" files with these workflows, everything has to be expressed using a workflow, activities and as appropriate rules.&amp;nbsp; Once this has been created you should consider deleting the automatically created .cs file to avoid you accidently adding code which can't be used.&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_thumb.png" width="554" height="303"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Once you've done this you should see the new cloud based activities in your toolbox as shown below, if not you may need to right click the toolbox, choose "Choose Items.." and then ensure that the cloud prefixed workflow activities are selected.&amp;nbsp; These new activities are held within the &lt;em&gt;System.ServiceBus.Workflow&lt;/em&gt; assembly under the &lt;em&gt;%PROGRAMFILES%\Microsoft BizTalk Services SDK\Assemblies&lt;/em&gt; directory.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_thumb_1.png" width="218" height="241"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For the purposes of this simple &lt;em&gt;Hello World&lt;/em&gt; cloud workflow we'll just use one activity.&amp;nbsp; The &lt;em&gt;CloudHttpReceive&lt;/em&gt; activity will be used to demonstrate how we can communicate with a running workflow instance.&amp;nbsp; You shoud have a workflow as shown below&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_thumb_4.png" width="404" height="356"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The usual exclamation marks indicate that we have some configuration to do on this activity, for the &lt;em&gt;cloudHttpReceive&lt;/em&gt; the only configuration we need to supply is a &lt;em&gt;response&lt;/em&gt; that that will be returned as part of the remote HTTP post to our workflow, you can also configure the HTTP Status code to return as required.&amp;nbsp; For the purposes of this workflow and the code you'll see in a bit, set the name of this activity to &lt;em&gt;helloWorldHttpReceive &lt;/em&gt;and supply a response body of your choosing.&lt;/p&gt; &lt;p&gt;Now that our simple workflow is done let's deploy it to the Cloud Workflow infrastructure hosted by Microsoft, right now there isn't a Deploy addin to Visual Studio although there is an underlying Web Service.&amp;nbsp; For now we need to perform a simple copy/paste deployment model.&lt;/p&gt; &lt;p&gt;Firstly we need to get the XOML representation of the workflow, a quick way of doing this is to right Click the workflow in Solution Explorer, Chose "Open With.." and then choose "XMl Editor", you can now copy the XOML representation into the clipboard.&lt;/p&gt; &lt;p&gt;We now need to deploy the workflow via the BizTalk Services website, browse to &lt;a title="https://workflow.biztalk.net/" href="https://workflow.biztalk.net/"&gt;https://workflow.biztalk.net/&lt;/a&gt; and supply your BizTalk Services credentials to view the workflow management portal as shown below.&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_thumb_5.png" width="537" height="393"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Click "Manage Types" on the right hand side to manage the workflow types under your account, then click Add New to access the Workflow Deployment page which is shown below.&amp;nbsp; For the purposes of this demo we'll call our Workflow "Hello World" and you can now paste the XOML representation into the supplied box.&lt;/p&gt; &lt;p&gt;&lt;a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_thumb_6.png" width="543" height="451"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Click Save changes and your cloud workflow is now ready to go!&amp;nbsp; Note the "Rules" tab in the previous screenshot, this is where you can also provide any rules associated with your cloud workflow.&lt;/p&gt; &lt;p&gt;Now our workflow is created how can we go about kicking it off within the Microsoft datacenter?&amp;nbsp; It's pretty straight forward once you know how to do it and the BizTalk Services SDK has a sample to help you out.&amp;nbsp;&amp;nbsp; Those of you familiar with BizTalk Orchestrations you'd expect that we could now perform a simple HTTP POST at a special URI and have a workflow instance created automagically?&amp;nbsp; Not right now, I'm afraid - you have to manually crete an instance, then start it before you can submit an HTTP post, this as I understand it will be changed as the product teams progress.&lt;/p&gt; &lt;p&gt;The code to create, start and then HTTP POST to a workflow instance is shown below, it's all pretty straight forward and a lot of it is demonstrated in the SDK sample.&amp;nbsp; The key thing in the code is how to target your HTTP POST of a running workflow instance.&amp;nbsp; The URI is made up as follows:&lt;/p&gt; &lt;p&gt;http://workflow.biztalk.net/servicesHttp/&lt;strong&gt;YOURBIZTALKSERVICESUSERNAME&lt;/strong&gt;/workflows/&lt;strong&gt;YOURWORKFLOWNAME&lt;/strong&gt;/instances/&lt;strong&gt;YOURWORKFLOWINSTANCEID&lt;/strong&gt;/&lt;strong&gt;HTTPRECEIVEACTIVITYNAME&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;And an example for my scenario here is as follows:&lt;/p&gt; &lt;p&gt;&lt;a href="http://workflow.biztalk.net/servicesHttp/darrenj/workflows/HelloWorld/instances/83734f1c-d08f-4cc9-b396-b76ebdb60979/helloWorldHttpReceive"&gt;http://workflow.biztalk.net/servicesHttp/&lt;strong&gt;darrenj&lt;/strong&gt;/workflows/&lt;strong&gt;HelloWorld&lt;/strong&gt;/instances/&lt;strong&gt;83734f1c-d08f-4cc9-b396-b76ebdb60979&lt;/strong&gt;/&lt;strong&gt;helloWorldHttpReceive&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;You'll need to add assembly references to your project for &lt;font face="courier new"&gt;System.ServiceBus.dll&lt;/font&gt;, &lt;font face="Courier New"&gt;System.ServiceBus.Workflow.dll&lt;/font&gt; and &lt;font face="Courier New"&gt;System.ServiceModel.dll&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;]&lt;br&gt;&lt;span style="color: blue"&gt;public void &lt;/span&gt;TestMethod1()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// Create a new Workflow Instance in the cloud, we then get the InstanceID back&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;instanceId = CreateWorkflowInstanceInTheCloud();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// The Workflow Type&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;workflowTypeName = &lt;span style="color: #a31515"&gt;"HelloWorld"&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// The PlaceOrder Workflow starts with a cloudHttpReceive activity called "placeOrderHttpReceive"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // We must target this directly when posting our Order information to the cloud workflow&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;httpActivityName = &lt;span style="color: #a31515"&gt;"helloWorldHttpReceive"&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// Build up the URL to directly target our newly created Workflow Instance and to post XML directly to the&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // waiting cloudHttpReceive activity&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri &lt;/span&gt;serviceUri = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #2b91af"&gt;WorkflowClientConfig&lt;/span&gt;.HttpUri + &lt;span style="color: #a31515"&gt;"{1}/workflows/{2}/instances/{3}/{4}"&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;WorkflowClientConfig&lt;/span&gt;.WorkflowHostName, _bizTalkServicesUsername, workflowTypeName, instanceId, httpActivityName));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string &lt;/span&gt;httpPostBody = &lt;span style="color: #a31515"&gt;"&amp;lt;HelloWorldWorkflow&amp;gt;&amp;lt;Message&amp;gt;Hello World&amp;lt;/Message&amp;gt;&amp;lt;/HelloWorldWorkflow&amp;gt;"&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// Prepare to perform an HTTP POST to the waiting workflow&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HttpWebRequest &lt;/span&gt;request = (&lt;span style="color: #2b91af"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;WebRequest&lt;/span&gt;.Create(serviceUri);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.Method = &lt;span style="color: #a31515"&gt;"POST"&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.ContentType = &lt;span style="color: #a31515"&gt;"text/xml"&lt;/span&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.ContentLength = httpPostBody.Length;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// Add the special header which contains our STS token retrieved from the cloud&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;request.Headers.Add(&lt;span style="color: #a31515"&gt;"X-MS-Identity-Token"&lt;/span&gt;, GetTokenFromCloudSts());&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;using&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;StreamWriter &lt;/span&gt;writer = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StreamWriter&lt;/span&gt;(request.GetRequestStream()))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// Write the OrderInformation XML representation into the stream&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.Write(httpPostBody);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.Flush();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// Wait for a response from the Cloud Workflow, the cloudHttpReceive activity is configured to respond with a fixed&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Response if succesful;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HttpWebResponse &lt;/span&gt;response = (&lt;span style="color: #2b91af"&gt;HttpWebResponse&lt;/span&gt;)request.GetResponse();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;using&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;StreamReader &lt;/span&gt;reader = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StreamReader&lt;/span&gt;(response.GetResponseStream()))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string &lt;/span&gt;returnMessage = reader.ReadToEnd();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Trace&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Response message from the cloud is: " &lt;/span&gt;+ returnMessage);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="color: green"&gt;// For some reason all responses from the cloudHttpReceive activity are wrapped into a &amp;lt;string&amp;gt; element&lt;br&gt;&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;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.IsTrue(returnMessage.Contains(&lt;span style="color: #a31515"&gt;"Hello World Response"&lt;/span&gt;));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/font&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private string &lt;/span&gt;GetTokenFromCloudSts()
{
    &lt;span style="color: green"&gt;// Using a tokenised URL let's build up a valid URL given the supplied BizTalk Services credentials
    // This URL when invoked will return an authentication token we can then use to perform administrative operations on
    // Our Workflow Configuration (Create, Start, etc.)
    &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;tokenUrl = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(
            &lt;span style="color: #a31515"&gt;"https://{0}/issuetoken.aspx?u={1}&amp;amp;p={2}"&lt;/span&gt;,
            &lt;span style="color: #2b91af"&gt;WorkflowClientConfig&lt;/span&gt;.StsHostName,
            _bizTalkServicesUsername,
            _bizTalkServicesPassword);

    &lt;span style="color: green"&gt;// Create an HttpWebRequest
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HttpWebRequest &lt;/span&gt;tokenRequest = (&lt;span style="color: #2b91af"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;WebRequest&lt;/span&gt;.Create(tokenUrl);
    &lt;span style="color: #2b91af"&gt;Trace&lt;/span&gt;.WriteLine(tokenRequest.RequestUri);

    &lt;span style="color: green"&gt;// No Request to send, just invoke the URL and get the authentication token
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;HttpWebResponse &lt;/span&gt;tokenResponse = (&lt;span style="color: #2b91af"&gt;HttpWebResponse&lt;/span&gt;)tokenRequest.GetResponse();

    &lt;span style="color: green"&gt;// Get the token from the Response Stream
    &lt;/span&gt;&lt;span style="color: blue"&gt;byte&lt;/span&gt;[] tokenBody = &lt;span style="color: blue"&gt;new byte&lt;/span&gt;[500];
    &lt;span style="color: blue"&gt;int &lt;/span&gt;tokenBodyLength = tokenResponse.GetResponseStream().Read(tokenBody, 0, 500);

    &lt;span style="color: green"&gt;// Convert to a UTF8 representation which we can then use in subsequent requests
    &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;authenticationToken = &lt;span style="color: #2b91af"&gt;Encoding&lt;/span&gt;.UTF8.GetString(tokenBody, 0, tokenBodyLength);
    &lt;span style="color: #2b91af"&gt;Trace&lt;/span&gt;.WriteLine(&lt;span style="color: #2b91af"&gt;String&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"Authentication Token: {0}"&lt;/span&gt;, authenticationToken));

    &lt;span style="color: blue"&gt;return &lt;/span&gt;authenticationToken;
}&lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private string &lt;/span&gt;CreateWorkflowInstanceInTheCloud()
{
    &lt;span style="color: green"&gt;// New up an instance of the provided System.ServiceBus.Workflow.WorkflowClient which provides a wrapper
    // around the cloud workflow SOAP Web Servics        
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WorkflowClient &lt;/span&gt;workflowClient = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WorkflowClient&lt;/span&gt;();

    &lt;span style="color: green"&gt;// Provide BizTalk Services credentials
    &lt;/span&gt;workflowClient.CredentialType = &lt;span style="color: #2b91af"&gt;TransportClientCredentialType&lt;/span&gt;.UserNamePassword;
    workflowClient.Credentials.UserName.UserName = _bizTalkServicesUsername;
    workflowClient.Credentials.UserName.Password = _bizTalkServicesPassword;

    workflowClient.Open();

    &lt;span style="color: green"&gt;// Parameters can't be supplied in R12 of Cloud Services so we this empty
    // A shame as it would enable us to pass the OrderInformatoin directly
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt; parameters = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt;();

    &lt;span style="color: green"&gt;// Create a workflow within the BizTalk Services username namespace 
    // The Workflow Type name is "HelloWorld"
    // No parameters in R12
    // Retrieve an authentication token from the BizTalk Services Cloud STS
    &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;instanceId = workflowClient.CreateWorkflowInstance(_bizTalkServicesUsername, &lt;span style="color: #a31515"&gt;"HelloWorld"&lt;/span&gt;, parameters, GetTokenFromCloudSts());
    &lt;span style="color: #2b91af"&gt;Trace&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Workflow Instance Created:" &lt;/span&gt;+ instanceId);

    &lt;span style="color: green"&gt;// Once a workflow is created it must be explicitly started otherwise it won't active any activity shapes
    // In R12 there's no ability to create/start a workflow based on an external activity action such as an Http Send
    // The workflow instance was created within the BizTalk Services username namespace
    // The workflow Type name is "HelloWorld"
    // The instanceId was returned by the previous CreateWorkflowInstance call
    &lt;/span&gt;workflowClient.StartWorkflowInstance(_bizTalkServicesUsername, &lt;span style="color: #a31515"&gt;"HelloWorld"&lt;/span&gt;, instanceId);
    &lt;span style="color: #2b91af"&gt;Trace&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Workflow Instance Started:" &lt;/span&gt;+ instanceId);

    &lt;span style="color: green"&gt;// Our work is done, close the WorkflowClient
    &lt;/span&gt;workflowClient.Close();

    &lt;span style="color: green"&gt;// Return the InstanceId so we can identify the WorkflowInstance we've just created when we perform an HTTP post to it next
    &lt;/span&gt;&lt;span style="color: blue"&gt;return &lt;/span&gt;instanceId;
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;All pretty straight forward, and it's a bit more complex then it should be due to the requirement to create and start a workflow instance before being able to perform an HTTP post but this should come in time.&lt;/p&gt;
&lt;p&gt;If you navigate back to the &lt;a href="https://workflow.biztalk.net"&gt;https://workflow.biztalk.net&lt;/a&gt; site then you can review running workflow instances and check they've completed successfully.&lt;/p&gt;
&lt;p&gt;That's it for this post, this post has got rather large so I'll do another post on calling ServiceBus services via the cloudServiceBusSend activity and also detail some limitations in this release of Cloud Workflow (it's the first release for the team so don't expect everything to be there straight away!).&amp;nbsp; I'll also cover a handy little ISBTraceTool that I put together to aid with visualizing cloud workflow activity.&lt;/p&gt;
&lt;p&gt;More soon!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8973295" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/WF/">WF</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Cloud/">Cloud</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Services/">BizTalk Services</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Cloud+Services/">Cloud Services</category></item><item><title>Dublin!</title><link>http://blogs.msdn.com/b/darrenj/archive/2008/10/01/dublin.aspx</link><pubDate>Thu, 02 Oct 2008 00:43:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8972244</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=8972244</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2008/10/01/dublin.aspx#comments</comments><description>&lt;p&gt;&lt;a target="_blank" href="http://blogs.msdn.com/stevemar/archive/2008/10/01/the-road-to-pdc-net-framework-4-0-and-dublin.aspx"&gt;This&lt;/a&gt; announcement came sooner then I expected, I'd assumed PDC was going to be the first time Dublin was mentioned in public!&amp;nbsp;&amp;nbsp; The most detailed information before the PDC can be found &lt;a target="_blank" href="http://blogs.msdn.com/stevemar/archive/2008/10/01/the-road-to-pdc-net-framework-4-0-and-dublin.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;A number of internal people in the field (myself included) have been working with the product team for a number of years now to help shape some of these new technologies and ensure they will address real-world customer scenarios based on our customer experience.&amp;nbsp; It's great to be able to start discussing what's coming down the line, although the real detail won't be available until the PDC.&amp;nbsp; &lt;/p&gt; &lt;p&gt;So Dublin!&amp;nbsp; Windows Server is our application server today and we're now expanding it's capabilities to deploy and manage .NET based applications (using WCF and WF) - no more roll your own!&amp;nbsp; &lt;/p&gt; &lt;p&gt;If you appreciate the way BizTalk Server provides enterprise capabilities to host your Integration solutions today, you'll see a lot of similarities in how these hosting capabilities are being introduced in "Dublin" for WCF and WF.&amp;nbsp; For those who might have shied away from WF because of having to roll their own infrastructure, this is great news!&lt;/p&gt; &lt;p&gt;Note that in the press-releases that BizTalk is formally being referred to as an integration server, e.g:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Q: Will "Dublin" work with BizTalk Server's enterprise connectivity services?&lt;/em&gt; &lt;p&gt;&lt;em&gt;A: Yes. The integration server and application server workloads are distinct but complementary; customers want to be able to deploy them separately as needed to support their distinct requirements. For example, customers that don't need the rich LOB or B2B connectivity provided by an integration server, will deploy the Windows Server application server to host and manage middle-tier applications. Likewise, customers that need to connect heterogeneous systems across an enterprise, but don't need to develop and run of custom application logic, will deploy BizTalk Server. When customers need both capabilities, "Dublin" and BizTalk Server will work together nicely.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;BizTalk is by no means &lt;em&gt;"dead", &lt;/em&gt;in fact Microsoft &lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx"&gt;committed&lt;/a&gt; to future versions including BizTalk Server 2009 recently for the integration server workload, BizTalk = Integration, Dublin = Application.&lt;/p&gt; &lt;p&gt;So if you want to expose [WF] workflows via [WCF] services but ensure performance and scalability (up to enterprise scale), you can now do this without having to write the code required to host these apps on Windows Server.&amp;nbsp; Ensuring performance and scale of WCF services and WF is hard to do today, hence it's not done very often at least in my experience and sometimes causes a tendency to twist BizTalk into doing something it wasn't necessarily designed to do which causes problems of their own (coupling Web Sites/UI's directly to BizTalk for synchronous processing springs to mind).&lt;/p&gt; &lt;p&gt;We don't want customers in this situation to be forced into writing huge amounts of &lt;strong&gt;hard &lt;/strong&gt;&lt;em&gt;plumbing code&lt;/em&gt; to achieve this, we need a server product to do this for you, which is where Dublin comes in.&amp;nbsp; Note some of the server features announced which will be familiar to BizTalk developers (content based routing, compensation, etc.).&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;If however you need to use the extensive adapter support, B2B, EDI, RFID, BAM, BizTalk Mapper style features then you'll still be wanting to use BizTalk.&amp;nbsp; Both products will work together seamlessly through the WCF communication options so you can combine as appropriate.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Remember though that a number of BizTalk adapters have been re-written as WCF bindings and are available through the BizTalk&lt;a target="_blank" href="http://www.microsoft.com/biztalk/en/us/adapter-pack.aspx"&gt; Adapter Pack&lt;/a&gt; which offers some key LOB adapters.&amp;nbsp; A new SQL adapter is in the works along with new Oracle adapters which you can find information on &lt;a target="_blank" href="http://blogs.msdn.com/adapters/archive/2008/05/29/biztalk-adapter-pack-v2-tap-enrollment-open.aspx"&gt;here&lt;/a&gt;.&amp;nbsp;&amp;nbsp; As these new adapters are exposed as WCF bindings you can leverage them with WCF and Dublin.&lt;/p&gt; &lt;p&gt;Dublin will also be the first and best consumer of the Oslo modeling platform, they'll be more detail on this at the PDC but trust me - this is going to blow your minds!&lt;/p&gt; &lt;p&gt;WCF and WF get a big makeover as already announced, we get new workflow types in WF and an extension library of Activities out of the box.&amp;nbsp; If you want to call a SQL stored procedure, why write half a page of code when you can just configure a database activity?&amp;nbsp; Combine that with the 10x improvement in performance and things are looking good!&amp;nbsp; Imagine a world when a typical software solution can be implemented (modeled) exclusively through a workflow and out-of-the-box activities? ;-)&lt;/p&gt; &lt;p&gt;Notice also the subtle new feature in WF, "&lt;em&gt;persistence control".&amp;nbsp; &lt;/em&gt;Low Latency scenarios with BizTalk are achievable but has to be carefully designed, we don't currently have the ability in BizTalk to control when an Orchestration persists but imagine if we had this feature in WF - low-latency potentially becomes easier to achieve ;-)&lt;/p&gt; &lt;p&gt;That's enough for now, once more detail starts to emerge I'll post some more information and will also work internally on locking down some clear "where to use what" style scenarios for BizTalk and Dublin using some real-world customer scenarios.&lt;/p&gt; &lt;p&gt;Exciting times!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8972244" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/WF/">WF</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Oslo/">Oslo</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/WCF/">WCF</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Dublin/">Dublin</category></item><item><title>Professional BizTalk Server 2009?</title><link>http://blogs.msdn.com/b/darrenj/archive/2008/09/29/professional-biztalk-server-2009.aspx</link><pubDate>Mon, 29 Sep 2008 13:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8968693</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=8968693</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2008/09/29/professional-biztalk-server-2009.aspx#comments</comments><description>&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;I've been looking into the possibility of updating the highly successful Professional BizTalk Server 2006 book to take into account new features and capabilities in BizTalk Server 2006 R2 and the &lt;A href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx" mce_href="http://www.microsoft.com/biztalk/en/us/roadmap.aspx"&gt;&lt;SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt"&gt;recently announced&lt;/SPAN&gt;&lt;/A&gt; BizTalk Server 2009 product.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;A fair bit has changed to warrant new chapters and updating of various chapters but of course the main body of content is still accurate and will be brought forward into any new edition.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;The current book is of course still absolutely usable for both BizTalk Server 2006, R2 and even 2009 as the main engine, features and best practices are unchanged.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;I've listed some of my thoughts around what needs to be covered to expand the reach of the book given the new version but would love to hear of topics and sections that you would like to see added if you've already read the current edition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Please send me a mail with your thoughts via my blog site or add comments to this posting, I'd really appreciate your views on what we should consider.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;I haven't got formal commitment from Wiley yet as I'm still at the Table of Contents stage, here are my outline thoughts as it currently stands.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Technology Primer&amp;nbsp;- Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l11 level1 lfo11; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cover WCF basics&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l11 level1 lfo11; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cover the penalty of XmlDocument vs Serializable Classes vs XPath with real-examples of overhead&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;BizTalk Architecture - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l13 level1 lfo8; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Emphasise further how important testing is, don’t expect performance and how critical the performance of supporting systems is. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Detail techniques for isolating and testing performance of supporting systems&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l13 level1 lfo8; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cover any changes with BTS2009&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l13 level1 lfo8; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Potentially position BTS2009 vs Oslo at the architectural level&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Adapters - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Include drill-down on WCF Adapter topics&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Overview&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Different WCF-* adapters&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Walkthrough&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Demonstrate how a custom binding can be developed using the WCF Adapter SDK (null adapter?)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cover the new WCF Adapter bindings (SQL, MQS, etc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 54pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Business Activity Monitoring - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l7 level1 lfo10; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Provide implementation of BAM Latency Timer pipeline component&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l7 level1 lfo10; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Provide more real-world and common questions/issues guidance&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Business Rules Engine - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l10 level1 lfo12; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Position BRE vs the WF rules engine and futures&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;RFID&amp;nbsp;- New Chapter&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l0 level1 lfo7" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 11pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 10.0pt"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Drill-down chapter into the RFID features of BizTalk complete with real-world examples&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Testing - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Provide more real-world “case studies” of how it’s been done right and the benefits..&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;New BizUnit features (Excel)&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Update with any new VS2008 (and maybe future release features)&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Performance and Scalability - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;PAL for analysis of performance logs&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Discuss SAN technology improvements&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;‘n’ step plan for identifying where bottlenecks lie within a BizTalk rig&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Expand throttling “plain” English guide, step-by-step diagnosis guide&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Low Latency - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 39pt; mso-list: l8 level1 lfo5; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cover new options such as NetTcp and NetNamedPipe WCF bindings&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l6 level1 lfo3; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Include real-world perf-test results, step by step guide&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Administration - Update&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Virtualization (HyperV)&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Best Practice Analyser&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;MSBuild&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;SQL2008 differences&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;BizTalk Best Practices - Update&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l1 level1 lfo13; mso-add-space: auto" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Add further best practices, small and large – with evidence as to why&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: auto auto 0pt; mso-add-space: auto" class=MsoNormalCxSpFirst&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;Cloud Services (BizTalk Services, SSDS, etc.) - New Chapter&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Overview&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Connectivity&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Identity&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cloud Workflow&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;SSDS&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Cloud Commerce scenario code and walkthrough&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;First look at Oslo futures - New Chapter&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l12 level1 lfo14" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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 style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-bidi-font-size: 12.0pt"&gt;More soon ;-)&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8968693" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/book/">book</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Server+2009/">BizTalk Server 2009</category></item><item><title>Software in the cloud: The Relay Service</title><link>http://blogs.msdn.com/b/darrenj/archive/2008/09/24/software-in-the-cloud-the-relay-service.aspx</link><pubDate>Wed, 24 Sep 2008 16:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8963606</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=8963606</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2008/09/24/software-in-the-cloud-the-relay-service.aspx#comments</comments><description>&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I’m now back from a trip to Seattle a few weeks back where I attended a huge week-long Microsoft internal technical training event.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I presented three times during the week, two of the presentations were “Software in the cloud” sessions which received fantastic feedback.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The premise of these sessions was to paint a view of how software solutions may look in the future if they were to leverage cloud based services such as SQL Server Data Services (SSDS) and BizTalk Services (Cloud Workflow, Identity and Connectivity).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I presented a fictional but realistic architecture using &lt;I style="mso-bidi-font-style: normal"&gt;today’s&lt;/I&gt; technologies and discussed the challenges, I then presented a forward view on how you might approach the same problem using cloud based technologies and how this solves a number of challenges today and opens up completely new opportunities which for the most part aren’t possible today.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I’m going to present this scenario and the resulting solution in a series of blog posts, this being the first.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Before we get started I want to introduce the BizTalk Services Relay which by itself is incredibly powerful but often overlooked.&amp;nbsp; There is an SDK to download and play with via &lt;A href="http://www.biztalk.net/"&gt;http://www.biztalk.net&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;So, if I have a Service offering today, say Credit Scoring functionality, it’s hard to enable business partners to invoke this service, especially if your organisation doesn’t host things out on the internet regularly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;You’ve got any number of options generally involving any combination of leased lines, VPNs, proxy configuration, etc.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The key point here is that you must put in infrastructure and/or specific configuration for each business partner that wishes to leverage your service, and of course vice versa, each business partner will have to do the same to enable messages to pass out of their corporate boundary.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, imagine a technology that enabled you to avoid all of this infrastructure/configuration whilst still maintaining security and integrity of messages passing between the organisations?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;This is where the Relay comes into play; the first step is for&amp;nbsp;your WCF&amp;nbsp;service to register it’s endpoint with the cloud based relay service, a valid BizTalk Services account will be required to register an endpoint under the users namespace.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This step is shown below as step number 1.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The endpoint address will use a specific “service bus” prefix, e.g: sb://connect.biztalk.net/services/darrenj/OrderService/&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;IMG style="WIDTH: 622px; HEIGHT: 496px" src="http://blogs.msdn.com/photos/darrenj/images/8963589/original.aspx" width=960 height=720 mce_src="http://blogs.msdn.com/photos/darrenj/images/8963589/original.aspx"&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Once an endpoint has been registered with the relay service it must be &lt;I style="mso-bidi-font-style: normal"&gt;kept alive&lt;/I&gt; otherwise the socket could of course timeout.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is done through a series of “ping” messages automatically passed under the covers between the relay service and the endpoint.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Once an endpoint is registered a client can then invoke the service, within Visual Studio you can simply type in the &lt;I style="mso-bidi-font-style: normal"&gt;sb://&lt;/I&gt;&lt;B style="mso-bidi-font-weight: normal"&gt; &lt;/B&gt;prefixed address via the usual &lt;I style="mso-bidi-font-style: normal"&gt;Add Service Reference&lt;/I&gt; dialog and the proxy will be automatically created and configured – neat!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The proxy can then use the contract as usual, once invoked the message will be passed to the endpoint registered in the cloud (shown as number 3 in the diagram above) which will in-turn pass the message on to the service (shown as number 4 in the diagram above), the reverse then happens with the response (shown as number 4 in the diagram above).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;In essence this is a straight forward message relay pattern with all messages passing via the relay, enabling two parties to exchange messages where they otherwise wouldn’t have been able to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;This works fine, but it would be nicer (and probably quicker) if we could enable both parties to communicate directly but the firewalls won’t allow this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However the relay service knows quite a bit about the two parties.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;When the service registered itself with the relay, the relay can see which dynamic port number the hosting organisation’s firewall is using for this communication session.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When a client communicates with the relay, the relay can again see the dynamic port number being used.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ansi-language: EN-GB; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;By sharing the port numbers with each party the relay can effectively step out of the way and enable both parties to communicate with each other after this initial &lt;I style="mso-bidi-font-style: normal"&gt;port handshaking&lt;/I&gt;, this is depicted below and is explained in better detail in &lt;A href="http://www.heise-online.co.uk/security/How-Skype-Co-get-round-firewalls--/features/82481"&gt;this&lt;/A&gt; great article&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 692px; HEIGHT: 564px" src="http://blogs.msdn.com/photos/darrenj/images/8963590/original.aspx" width=960 height=720 mce_src="http://blogs.msdn.com/photos/darrenj/images/8963590/original.aspx"&gt;&lt;/P&gt;&lt;FONT face=Calibri&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;This process is called &lt;A target=_blank href="http://en.wikipedia.org/wiki/NAT_traversal" mce_href="http://en.wikipedia.org/wiki/NAT_traversal"&gt;NAT traversal&lt;/A&gt; and is used by many things today including MSN Messenger, Groove, Skype, etc.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Some firewalls may not allow NAT traversal at which point the relay will &lt;I style="mso-bidi-font-style: normal"&gt;fall back&lt;/I&gt; to the original relay pattern.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;As long as both parties can &lt;I style="mso-bidi-font-style: normal"&gt;see&lt;/I&gt; the internet and therefore the relay service then we’re in business!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;This is a big step forward from today where you have to provision and configure network infrastructure such as Proxies, Firewalls, Private Network Links, VPNs, etc. whenever you wish to expose invoke services between organisations.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;With this relay service you can break down your corporate barriers to communicate across organisations and through the relay you can also utilise non-durable publish/subscribe messaging effectively publishing business “events” which others can subscribe to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So how about security?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Firewalls are there for a reason and you typically aren’t allowed to punch holes through them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Access to any services exposed through the relay is restricted through the BizTalk Services provided implementation of a Security Token Service (STS) and messages can be secured as you require using encryption of the payload and digital signatures.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;So, it must be hard to host a service through the relay?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Well not really, it’s just a bit of WCF configuration on your service an example of which is shown below:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;system.serviceModel&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;bindings&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;relayBinding&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;binding&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;default&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;allowBrowsing&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;sendTimeout&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;01:00:00&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&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;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;connectionMode&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;RelayedDuplexSession&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;binding&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;relayBinding&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;bindings&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;!--&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; Service endpoint using the BizTalk Services relay &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;endpoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;address&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;""&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;binding&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;relayBinding&lt;/SPAN&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;contract&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;PaymentService.IPayment&lt;/SPAN&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;behaviorConfiguration&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;relayBehavior&lt;/SPAN&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;bindingConfiguration&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;default&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;behaviors&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;endpointBehaviors&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;behavior&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;relayBehavior&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;transportClientEndpointBehavior&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;credentialType&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;UserNamePassword&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;clientCredentials&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;userNamePassword&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;userName&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;"&lt;SPAN style="COLOR: blue"&gt;USERNAME&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;password&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;PASSWORD&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;clientCredentials&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;transportClientEndpointBehavior&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;behavior&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;endpointBehaviors&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;behaviors&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;system.serviceModel&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You don’t need to include the custom endpointBehavior in all cases, if you don’t then CardSpace will pop up to authenticate you and validate that you have permission to register a service at the specified endpoint – not ideal for non-interactive services &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Hopefully that’s given you a good flavour of what the relay service can do, it’s a fantastic piece of technology and opens up the opportunity to break down the enterprise SOA barriers whereby your services can only be consumed or exposed within your corporate boundaries.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;To my mind, this opens up some great new opportunities for solutions moving forward, as we’ll see in my next few blog posts &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8963606" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Services/">BizTalk Services</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Relay/">Relay</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Connectivity/">Connectivity</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/WCF/">WCF</category></item><item><title>Cloud Services</title><link>http://blogs.msdn.com/b/darrenj/archive/2008/07/16/cloud-services.aspx</link><pubDate>Thu, 17 Jul 2008 01:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8740582</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=8740582</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2008/07/16/cloud-services.aspx#comments</comments><description>&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;CSD have just announced Release 12 (R12) of Codename BizTalk Services, &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/clemensv/" mce_href="http://blogs.msdn.com/clemensv/"&gt;&lt;FONT size=3 face=Calibri&gt;Clemens&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; has a good low-down on what’s new &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/clemensv/archive/2008/07/15/announcing-the-microsoft-code-name-biztalk-services-r12-release.aspx" mce_href="http://blogs.msdn.com/clemensv/archive/2008/07/15/announcing-the-microsoft-code-name-biztalk-services-r12-release.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Remember BizTalk Services != BizTalk.&amp;nbsp; BizTalk isn’t used in the cloud or the client – it’s just a branding thing.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The Connectivity service (relay) is an amazing piece of technology breaking down corporate boundaries and enabling true communication between organisations and people despite all of the firewalls and proxies put in place.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s been available for a while but I’ll do a blog post on my take soon in case you haven’t seen it in action.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The big news in this release is the addition of cloud based Workflows, we are now hosting Windows Workflow in our datacenter which can run your own Sequential Workflows.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can’t use the full toolbox of usual WF activities though but a cut-down selection that the team have supplied.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;These workflows as &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/clemensv" mce_href="http://blogs.msdn.com/clemensv"&gt;&lt;FONT size=3 face=Calibri&gt;Clemens&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt; discusses on his blog are aimed towards the “service orchestration”, so a business process that you have can be modelled using a workflow and invoke any number of Internet Service Bus (ISB) services and also perform HTTP requests, workflows can also be communicated with using HTTP.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The current list of cloud activities are as follows&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudHttpSend&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudHttpReceive&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudIfElse&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudSequence&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudServiceBusSend&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudDelay&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&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;FONT size=3 face=Calibri&gt;CloudWhile&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Only XOML workflows are allowed (so no code behinds here!) and if you need to do any coding you must push this into a Service that your workflow can invoke using the CloudServiceBusSend or Http activities.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;You must copy/paste the XOML from Visual Studio into a HTTP form available when you sign into &lt;/FONT&gt;&lt;A href="http://www.biztalk.net/" mce_href="http://www.biztalk.net/"&gt;&lt;FONT size=3 face=Calibri&gt;www.biztalk.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;, clunky but effective for now!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Workflows can’t be activated through say an HTTP post but instead an instance has to be first created and then started before any activities will be executed, so if you had a workflow with a CloudHttpReceive activity at the top you would have to follow those previous steps before you can send an HTTP post to it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There is a handy &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Consolas"&gt;WorkflowClient&lt;/SPAN&gt;&lt;FONT face=Calibri&gt; class provided that means you can automate the creation and starting of a workflow instance, I’ve got a unit test that does this before communicating with the created workflow instance.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I’ll post a little sample shortly to get you going straight away but in the meantime check out the samples provided in the &lt;/FONT&gt;&lt;A href="http://biztalk.net/DownloadSDK.aspx" mce_href="http://biztalk.net/DownloadSDK.aspx"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;BizTalk Services SDK&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8740582" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Services/">BizTalk Services</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Relay/">Relay</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/ISB/">ISB</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Cloud+Services/">Cloud Services</category></item><item><title>Long time, no blog!</title><link>http://blogs.msdn.com/b/darrenj/archive/2008/07/16/long-time-no-blog.aspx</link><pubDate>Thu, 17 Jul 2008 00:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8740521</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=8740521</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2008/07/16/long-time-no-blog.aspx#comments</comments><description>&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Yes, It’s been quite a while since my last blog post!&amp;nbsp;&amp;nbsp;A lot has been happening internally including a job move for me to the Solution Architecture team in MCS as a Solution Architect from the fantastic &lt;A class="" href="http://www.microsoft.com/uk/adc" mce_href="http://www.microsoft.com/uk/adc"&gt;Application Development Consulting&lt;/A&gt; (ADC) team.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I still retain my strong technical focus you’ll be pleased to know and I don’t think I’ll be getting away from BizTalk anytime soon &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;I’ve been doing a lot of work in the “fluffy cloud” space in recent months and will be presenting a rather complex session at our internal technical event later this month.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;This work has included pulling together a fictional scenario which demonstrates stitching together SQL Server Data Services (SSDS), Cloud Services (Connectivity, Identify and Workflow) and good old BizTalk to address challenges with “today’s” technologies and enable new possibilities.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;It’s been an interesting experience, not everything can be done right now as both SSDS and the Cloud Services are still in the CTP phase and missing certain features but the future looks very interesting.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;More on this over the next few days and weeks plus after my presentation and demo is over I’ll post the code and more details on my fictional scenario so you can take a look and see what I've been tinkering with.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;My other pet project has been a BizUnit DSL tool to enable graphical visualization and editing of BizUnit tests, again more soon hopefully&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8740521" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/SSDS/">SSDS</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Cloud/">Cloud</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizUnit/">BizUnit</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Services/">BizTalk Services</category></item><item><title>64bit support for the BizTalk Orchestration Profiler and BizTalk Documenter</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/11/28/64bit-support-for-the-biztalk-orchestration-profiler-and-biztalk-documenter.aspx</link><pubDate>Wed, 28 Nov 2007 14:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6576871</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=6576871</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/11/28/64bit-support-for-the-biztalk-orchestration-profiler-and-biztalk-documenter.aspx#comments</comments><description>&lt;P&gt;A number of you have contacted me in recent months to report that the BizTalk Orchestration Profiler and BizTalk Documenter didn't run on 64bit machines, this seems to have been down to compiler settings which I've now resolved.&lt;/P&gt;
&lt;P&gt;I've uploaded a planned release for both&amp;nbsp;tools to codeplex - if you've got a 64bit machine I'd appreciate it if you could install and test the tool to see if&amp;nbsp;it works on your&amp;nbsp;servers?&amp;nbsp; Please let me know either way - I'll then&amp;nbsp;make the releases as the default released versions once I've got validation.&lt;/P&gt;
&lt;P&gt;You can find the releases at the following URLs:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.codeplex.com/BizTalkDocumenter/Release/ProjectReleases.aspx?ReleaseId=8689"&gt;http://www.codeplex.com/BizTalkDocumenter/Release/ProjectReleases.aspx?ReleaseId=8689&lt;/A&gt;&lt;/P&gt;&lt;U&gt;&lt;FONT color=#800080&gt;&lt;A href="http://www.codeplex.com/BiztalkOrcProfiler/Release/ProjectReleases.aspx?ReleaseId=8688"&gt;http://www.codeplex.com/BiztalkOrcProfiler/Release/ProjectReleases.aspx?ReleaseId=8688&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt; 
&lt;P&gt;I've done some tidying up across the entire codebase to make it easier to support and also reworked and re-released the Word output option for the BizTalk Documenter thus allowing Word documents to be generated as well as CHM files.&amp;nbsp; Let me know if the Word output doesn't work as expected for you when compared to CHM output.&lt;/P&gt;
&lt;P&gt;Please keep any feature suggestions coming...&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6576871" width="1" height="1"&gt;</description></item><item><title>How everyone should test their BizTalk based solutions: Presentation</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/11/01/how-everyone-should-test-their-biztalk-based-solutions-presentation.aspx</link><pubDate>Thu, 01 Nov 2007 21:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5817934</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=5817934</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/11/01/how-everyone-should-test-their-biztalk-based-solutions-presentation.aspx#comments</comments><description>&lt;P&gt;I've managed to find somewhere to store the presentation deck I delivered yesteday and you can now download it from &lt;A class="" href="http://www.darrenjblog.members.winisp.net/FT306DarrenJefford.zip" mce_href="http://www.darrenjblog.members.winisp.net/FT306DarrenJefford.zip"&gt;here&lt;/A&gt;.&amp;nbsp; I've also added the slides I had to cut from the presentation to enable it to fit within the SOA &amp;amp; BPM conference breakout length - these cover the throttling semantics at a high level and detail some common symptoms you might see during performance testing and what you should look at to resolve them.&lt;/P&gt;
&lt;P&gt;There's of course more detail in the &lt;A class="" href="http://www.amazon.com/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=pd_bbs_sr_1/105-7977162-6242020?ie=UTF8&amp;amp;s=books&amp;amp;qid=1193940547&amp;amp;sr=8-1" mce_href="http://www.amazon.com/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=pd_bbs_sr_1/105-7977162-6242020?ie=UTF8&amp;amp;s=books&amp;amp;qid=1193940547&amp;amp;sr=8-1"&gt;book&lt;/A&gt;!&amp;nbsp; Enjoy.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5817934" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item><item><title>Codename “Oslo”</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/11/01/codename-oslo.aspx</link><pubDate>Thu, 01 Nov 2007 02:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5806852</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=5806852</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/11/01/codename-oslo.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Microsoft has just made the first public announcement of “Oslo” at the SOA and BPM conference, at a high level “Oslo” is an overarching initiative across multiple products and Microsoft divisions, in fact the first release as announced today will be made up of BizTalk Server “6”, BizTalk Services “1”, Visual Studio “10”, System Center “5” and .NET Framework “4.0”.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Therefore Oslo != Just BizTalk.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Official press release information can be found &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/presspass/events/soa-bpm/materials.mspx" mce_href="http://www.microsoft.com/presspass/events/soa-bpm/materials.mspx"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; and here along with a good overview by &lt;/FONT&gt;&lt;A href="http://www.directionsonmicrosoft.com/samples/Olso1107.pdf" mce_href="http://www.directionsonmicrosoft.com/samples/Olso1107.pdf"&gt;&lt;FONT face=Calibri size=3&gt;Directions on Microsoft&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; which you can find &lt;/FONT&gt;&lt;A href="http://www.directionsonmicrosoft.com/samples/Olso1107.pdf" mce_href="http://www.directionsonmicrosoft.com/samples/Olso1107.pdf"&gt;&lt;FONT face=Calibri size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;, but here’s my take for what’s it worth! &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Oslo is driven out of Connected Systems Division (CSD) which is the almagamtion of&amp;nbsp;the BizTalk, WCF, WF,&amp;nbsp;ASMX, MSMQ, .NET&amp;nbsp;Remoting, etc. teams and has around 1000 people, Oslo as highlighted above is a huge program of work within CSD and across multiple divisions within Microsoft (AD, System Center, Developer Division, etc.).&amp;nbsp;&amp;nbsp; It's a huge investment.&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Two key themes for Oslo were annouced during the keynote, Models (Making models a mainstream part of development) and Services (Extending services from the client to the cloud).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Those of you familiar with BizTalk Orchestration and Windows Workflow or even “Whitehorse” style designers such as those created using the DSL Tools or the Class Designer in VS are well versed with how a modelling tool works effectively enabling you to view and modify an underlying “thing” with an abstracted graphical language.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There has been lots of modelling attempts across the years across the industry; two things stand out for me as to why.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Firstly the model is typically a representation at a point in time, you draw a nice pretty picture either for reference purposes or to then generate some physical representation like code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Sometimes you get round-tripping which enables the model to be up-to-date but this becomes increasingly hard in most scenarios to the point of not being possible so invariably the model becomes out of date with the actual reality and therefore its value is minimal.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Secondly you have lots of “models” within a typical project, perhaps you have a business process modelled using BizTalk Orchestration, the physical datacenter modelled using the VS Team Architect tools and operational management within System Center.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Nothing is shared between these models and therefore everyone has their own version of reality – often out of date and there’s no knowledge transfer between the various software development lifecycle roles.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In short, the modelling vision is a great thing but has a number of serious limitations today which limits its values to small isolated parts of your solution, imagine though having one model to describe your solution that could be used across your entire solution development lifecycle (Business Analyst, Developer, Tester, Operations, etc.).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This model of course needs to be rendered into different views for each of these stakeholders, a business analyst has a different “view” requirement to a developer for instance.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;All of this is fine but don’t we end up with a stale description of a solution?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Not in Oslo as the model is&lt;B style="mso-bidi-font-weight: normal"&gt; executed&lt;/B&gt;; therefore the model has to be up-to-date as its being used to execute the solution.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;These models then have to “live somewhere”, firstly to make them broadly discoverable by all the stakeholders involved in the development process and secondly to enable them to be executed by some form of host.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is where the Metadata repository comes in which leverages SQL Server.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The viewing/editing experience will be provided through a new tool offering an “office like experience”, this will be able to interrogate the repository and retrieve/persist models.&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;Precise technical detail of how all this hangs together isn’t available right now but more information will be available publically in due course.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;So Modelling is a big focus for Oslo, basically taking the modelling concept but making it mainstream and used across the entire development lifecycle and thus connecting up all roles.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The next big focus for Oslo is around services and messaging; BizTalk today provides an incredibly powerful and flexible messaging platform through Adapters, Pipelines and the MessageBox.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We have publish and subscribe, correlation, transformation all in the box.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Through the use of adapters we can easily integrate with a variety of technologies provided by different vendors running on different platforms but this typically speaking is all about integration/messaging within your corporate boundaries.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You can of course implement B2B scenarios where you can do cross business integration but any communication between B2B partners typically requires specific and dedicated communication links such as a leased line, VPN, SSL, etc.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;This is expensive and normally only implemented by the larger organisations.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Oslo is set to address this and more through the use of what Microsoft is calling a “Internet Service Bus”, imagine being able to connect two organisations together without requiring anything more than a internet connection, no need for leased lines, NAT traversal?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This in part is offered today through the &lt;/FONT&gt;&lt;A href="http://labs.biztalk.net/" mce_href="http://labs.biztalk.net/"&gt;&lt;FONT face=Calibri size=3&gt;BizTalk Labs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; preview of the &lt;/FONT&gt;&lt;A href="http://labs.biztalk.net/connectivity.aspx" mce_href="http://labs.biztalk.net/connectivity.aspx"&gt;&lt;FONT face=Calibri size=3&gt;BizTalk Connectivity Services&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, this offers the concept of a relay which can patch two applications together even if they’re behind their own respective firewalls and would normally have no way to directly communicate with each other.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The relay offers NAT traversal technologies and once it’s patched you together it can then completely step out of the communication path enabling you to communicate together.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now this might not see that useful on the surface but it opens up a whole new breed of solutions for the small-medium market but of course any size of user or customer.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In short the relay enables communicate between users and applications even though there is no direct communication link between the two – of course this NAT traversal solution has been down before in silos by software such as Groove and MSN Messenger.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The key here is that the Connectivity Services&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;are doing all the hard NAT stuff for you &lt;B style="mso-bidi-font-weight: normal"&gt;and&lt;/B&gt; the service is hosted by Microsoft in the cloud.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;A Security Token Service (STS) is also supplied through the BizTalk Labs preview which offers an identity provider to enable you to offload identity and authentication functionality.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Moving forward there is a commitment to provide workflow hosting.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;All of these services are cloud hosted meaning that a Microsoft datacenter somewhere provides the hardware, resilience, software, etc. to expose these services, you don’t need to provision datacenter space, hardware, etc. but instead rely on Microsoft of another third party.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How this will be charged for hasn’t been agreed at this time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;So combining models and these cloud based services is interesting as suddenly you can develop your solution using Oslo tools and then make a deployment-time decision to host within your datacenter or to host within the cloud.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;This is an interesting choice for organisations that currently maintain large datacenters and have to worry about monitoring, resilience and the like.&amp;nbsp; It also opens up completely new possibilites about how users/services can be contacted regardless of where they are, as long as they have a internet connection and can "see" the cloud they can communicate regardless of what network infrastructure is in the way.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;So, all of that aside – your probably thinking about BizTalk today?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Should you continue to use it, will any new investment in BizTalk Orchestrations, Rules Engine, etc. be redundant in a few years time?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There’s also a slightly scary statement in the Directions on Microsoft report that advises that you may wish to limit new development using BizTalk Server.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I don’t speak for the product team, but can say that enabling you to run BizTalk Server 2006 artefacts within the Oslo release will absolutely be supported – Microsoft can’t turn away from the significant investment that customers have made today and aren’t planning to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;So, in short carry on using Biz Talk.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Oslo is a way away yet and there’s an incredible amount you can do with our technology stack today (BizTalk Server 2006 R2, Office 2007 Sharepoint, WCF, WF....)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Calibri size=3&gt;That’s it for now, will provide some more thoughts and info as time goes on.&lt;/FONT&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5806852" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/Oslo/">Oslo</category></item><item><title>How everyone should test their BizTalk based solutions presentation links</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/11/01/how-everyone-should-test-their-biztalk-based-solutions-presentation-links.aspx</link><pubDate>Thu, 01 Nov 2007 02:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5806814</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=5806814</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/11/01/how-everyone-should-test-their-biztalk-based-solutions-presentation-links.aspx#comments</comments><description>&lt;P&gt;Thanks to everyone who came to my presentation today, I was humbled by the huge turnout!&amp;nbsp; The presentation deck will be broadly shared to attendees which contains hyperlinks to all the tools showcased but in the meantime the links are below if you want to get started right away.&amp;nbsp;&amp;nbsp;&amp;nbsp; I'll look to share the entire deck via the blog shortly if I'm allowed!&lt;/P&gt;
&lt;P&gt;A new release of LoadGen has very recently been made available which I didn't mention today, this adds WCF support for injecting load amonst other things.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;PerfMon Counter spreadsheet&lt;BR&gt;&lt;A href="http://media.wiley.com/product_ancillary/22/04700464/DOWNLOAD/Chapter9_Code.zip"&gt;http://media.wiley.com/product_ancillary/22/04700464/DOWNLOAD/Chapter9_Code.zip&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;Orchestration Profiler&lt;BR&gt;&lt;A href="http://www.codeplex.com/biztalkorcprofiler"&gt;http://www.codeplex.com/biztalkorcprofiler&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;BizTalk Documenter&lt;BR&gt;&lt;A href="http://www.codeplex.com/biztalkdocumenter"&gt;http://www.codeplex.com/biztalkdocumenter&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;LoadGen 2007 (now includes WCF, Sharepoint 2007 support amongst others)&lt;/P&gt;
&lt;P&gt;h&lt;A href="http://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3dc8af583f-7044-48db-b7b9-969072df1689%26DisplayLang%3den"&gt;ttp://www.microsoft.com/downloads/info.aspx?na=22&amp;amp;p=1&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=&amp;amp;u=%2fdownloads%2fdetails.aspx%3fFamilyID%3dc8af583f-7044-48db-b7b9-969072df1689%26DisplayLang%3den&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Old version of LoadGen 2004 (recommend you use the 2007 release moving forward)&lt;BR&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=59841"&gt;http://go.microsoft.com/fwlink/?LinkId=59841&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;BizUnit&lt;BR&gt;&lt;A href="http://www.codeplex.com/bizunit"&gt;http://www.codeplex.com/bizunit&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5806814" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category></item><item><title>Microsoft SOA &amp; BPM Conference</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/10/29/microsoft-soa-bpm-conference.aspx</link><pubDate>Mon, 29 Oct 2007 19:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5767846</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=5767846</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/10/29/microsoft-soa-bpm-conference.aspx#comments</comments><description>&lt;P&gt;I've just arrived in Seattle for the Microsoft SOA &amp;amp; BPM conference that kicks off on Tuesday 30th October in Seattle, I'm presenting a best-practice session on Wednesday afternoon titled "How everyone should test their BizTalk Server based solutions", it's a great deck with some compelling demos that went down very well at a internal technical conference earlier this year.&amp;nbsp;&amp;nbsp; If we can get BizTalk solutions tested properly - the world will be a much better place!&lt;/P&gt;
&lt;P&gt;More as the week goes on, should be some interesting presentations.......&amp;nbsp;In the meantime &lt;A class="" href="http://samgentile.com/blogs/" mce_href="http://samgentile.com/blogs/"&gt;Sam Gentile&lt;/A&gt; has a great &lt;A class="" href="http://samgentile.com/blogs/samgentile/archive/2007/10/28/microsoft-soa-and-bpm-conference-live-blog.aspx" mce_href="http://samgentile.com/blogs/samgentile/archive/2007/10/28/microsoft-soa-and-bpm-conference-live-blog.aspx"&gt;running commentary&lt;/A&gt; of the week.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5767846" width="1" height="1"&gt;</description></item><item><title>Orchestration Profiler for BizTalk Server 2006 and BizTalk Documenter</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/07/05/orchestration-profiler-for-biztalk-server-2006-and-biztalk-documenter.aspx</link><pubDate>Thu, 05 Jul 2007 14:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3703630</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=3703630</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/07/05/orchestration-profiler-for-biztalk-server-2006-and-biztalk-documenter.aspx#comments</comments><description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I've recently taken ownership of the source for the BizTalk Orchestration Profiler and BizTalk Documenter tools that Jason Birth originally developed, the documenter has worked fine with BizTalk Server 2006 but the Profiler was broken in a number of places.&amp;nbsp;&amp;nbsp; I have just finished a new build of the Profiler which now works with 2006 and fixed a few other niggles, both tools are now available and I'm open to feature suggestions for both tools moving forward.&lt;/P&gt;
&lt;P&gt;If you haven't seen or used the tools before then do take a look - they are invaluable in many circumstances and I for one use them one way or another on every BizTalk engagement, the Profiler is here: &lt;A href="http://www.codeplex.com/BizTalkOrcProfiler" mce_href="http://www.codeplex.com/BizTalkOrcProfiler"&gt;http://www.codeplex.com/BizTalkOrcProfiler&lt;/A&gt; and the Documenter is here: &lt;A href="http://www.codeplex.com/BizTalkDocumenter" mce_href="http://www.codeplex.com/BizTalkDocumenter"&gt;http://www.codeplex.com/BizTalkDocumenter&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Information on both tools is copy/pasted below from the respective CodePlex sites, enjoy!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;BizTalk Orchestration Profiler&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Creates CHM report files illustrating the level of coverage for specified BizTalk orchestrations. This tool can be run to gain a consolidated view of orchestration tracking data for a specified period of time to help developers get an idea of how their orchestrations are being processed and how much coverage they are getting in their testing. In addition to simple coverage information the data presented helps to identify latency and code path exceptions by highlighting long running and error prone orchestration shapes which is key to effective performance testing. &lt;BR&gt;&lt;BR&gt;The image below shows a sample of the coverage summary, at a glance you can see the percentage of overall coverage acheived upon an individual orchestration, if all of the shapes are &lt;I&gt;touched&lt;/I&gt; as part of your orchestration then you will acheive 100% coverage, common reasons for not covering all shapes with an orchestration are not running tests that stress the error paths of your solution. This coverage summary also provides you metrics around execution duration of your orchestration easily identifying orchestrations that take a long time to execute.&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=profilerCoverageSummary.jpg src="http://www.codeplex.com/BiztalkOrcProfiler/Project/FileDownload.aspx?DownloadId=15024" mce_src="http://www.codeplex.com/BiztalkOrcProfiler/Project/FileDownload.aspx?DownloadId=15024"&gt;&lt;BR&gt;&lt;BR&gt;The image below shows the orchestration coverage in detail, shapes highlighted in green have been executed as part of your last test pass and any shapes not executed will be highlighted in red. This enables you to easily understand what parts of your solution have been tested and which parts have not and adjust your testing as necessary.&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=profilerOrchestrationCoverage.jpg src="http://www.codeplex.com/BiztalkOrcProfiler/Project/FileDownload.aspx?DownloadId=15019" mce_src="http://www.codeplex.com/BiztalkOrcProfiler/Project/FileDownload.aspx?DownloadId=15019"&gt;&lt;BR&gt;&lt;BR&gt;As part of the profiler report you can see the "Top 10 Least Successsfull" shapes and the "Top 10 Longest Running" shapes, understanding where time is being spent inside your orchestration is key to effective performance testing and has been proven on a number of instances to pinpoint poor orchestration design and coding which when resolved has dramatically increased overall performance. The key is to understanding exactly where time is being spent and this tool offers a no-code view into your running system.&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=profilerShapeDuration.jpg src="http://www.codeplex.com/BiztalkOrcProfiler/Project/FileDownload.aspx?DownloadId=15018" mce_src="http://www.codeplex.com/BiztalkOrcProfiler/Project/FileDownload.aspx?DownloadId=15018"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;BizTalk Documenter&lt;/STRONG&gt;&lt;/P&gt;Creates compiled help files for a given BTS 2006 installation. This tool can be run on an ad-hoc basis using the UI or from the command line as a post build/deploy task to create a compiled help file describing a BTS 2006 installation. It will compile: BTS Host configuration, Send/Receive port configuration, Orchestration diagrams, Schema and Map content, Pipeline process flow, Adapter configuration, Rule engine vocabularies and policies, More… and publish them as compiled help files. Optionally you can embed custom HTML content and custom descriptions for all BTS artifacts to produce a more customized look and feel to the CHM output &lt;BR&gt;&lt;BR&gt;This tool can be run on an ad-hoc basis using the UI or from the command line as a post build/deploy task to create a compiled help file describing a BTS 2K4 installation. It will compile:&lt;BR&gt;&lt;BR&gt;• BTS Host configuration&lt;BR&gt;• Send/Receive port configuration&lt;BR&gt;• Orchestration diagrams complete with any custom code&lt;BR&gt;• Schema and Map content &lt;BR&gt;• Pipeline process flow&lt;BR&gt;• Adapter configuration&lt;BR&gt;• Rule engine vocabularies and policies&lt;BR&gt;• More…&lt;BR&gt;&lt;BR&gt;and publish them as compiled help files or Word 2003 XML. Optionally you can embed custom HTML content and custom descriptions for all BTS artifacts to produce a more customized look and feel to the CHM output.&lt;BR&gt;&lt;BR&gt;The screenshow below shows some of the information collected about an Orchestration, you can see what variables, maps, messages, ports, correlation sets, etc. that are used by a given Orchestration.&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=documenterOrchestrationInfo.jpg src="http://www.codeplex.com/BizTalkDocumenter/Project/FileDownload.aspx?DownloadId=15033" mce_src="http://www.codeplex.com/BizTalkDocumenter/Project/FileDownload.aspx?DownloadId=15033"&gt;&lt;BR&gt;&lt;BR&gt;The screenshot below shows further orchestration information which is collected, in this case we can see all of the inline code written by the developer for the orchestration, useful for code reviews and understanding a solution.&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=documenterCodeElements.jpg src="http://www.codeplex.com/BizTalkDocumenter/Project/FileDownload.aspx?DownloadId=15032" mce_src="http://www.codeplex.com/BizTalkDocumenter/Project/FileDownload.aspx?DownloadId=15032"&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3703630" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category></item><item><title>GenerateTypedBamApi</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/06/06/generatetypedbamapi.aspx</link><pubDate>Wed, 06 Jun 2007 03:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3106650</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=3106650</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/06/06/generatetypedbamapi.aspx#comments</comments><description>&lt;P&gt;Long overdue but I've finally got around to finishing up the latest release (1.1) of the GenerateTypedBamApi tool.&amp;nbsp; You can find the new version &lt;A class="" href="http://www.codeplex.com/GenerateTypedBamApi" mce_href="http://www.codeplex.com/GenerateTypedBamApi"&gt;here&lt;/A&gt;, if your not familar with the tool read on!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The GenerateTypedBamApi command line tool enables you to take a BAM Observation model represented as a Excel Spreadsheet and generate a set of strongly typed C# classes which you can then use to create and populate BAM Activities.&lt;BR&gt;&lt;BR&gt;The native BAM API is &lt;I&gt;loosely typed&lt;/I&gt; and therefore requires Activity Names and Activity Items to be supplied as string literals, this can be brittle especially as the observation model evolves over time and any typos, etc. will lead to runtime errors instead of compile time errors.&lt;BR&gt;&lt;BR&gt;A strongly typed class is created for each Activity with properties for each Activity Item along with helper methods to write Activity Items to an Activity, Add References, Custom References (e.g. Message Bodies) and Continuation.&lt;BR&gt;&lt;BR&gt;This tool uses a XSLT transform to turn the XML representing the BAM Observation Model into C# code. &lt;BR&gt;&lt;BR&gt;For further information on how to use BAM and why you might want to use a BAM API approach over the in-bult graphical Tracking Profile Editor please Chapter 6 of my BizTalk Book: Professional BizTalk Server 2006: &lt;A class=externalLink href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470046422.html"&gt;http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470046422.html&lt;SPAN class=externalLinkIcon&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Example&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;Consider the code whoen below which demonstates the creation of a BAM Activity (called Itinerary in this case), it populates a number of Activity Items, adds a reference to another Activity and finally adds a custom reference of a message body. &lt;BR&gt;&lt;BR&gt;As you can see from the code many string literals representing the Activity Name and Activity Items are required throughout the code, any mistakes will cause runtime errors which can be frustrating especially when you have to undeploy and redeploy your BizTalk solution. Also, if you have a medium to large scale project then you will end up with many Activities and Activity Items which can require many lines of code to be manually created each time.&lt;/P&gt;&lt;PRE&gt;    string ItineraryActivityID = System.Guid.NewGuid().ToString();
    DirectEventStream des = new DirectEventStream("Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport", 1);
    des.BeginActivity("Itinerary", ItineraryActivityID);
 
    des.UpdateActivity("Itinerary", ItineraryActivityID, "Received", System.DateTime.Now,
        "Customer Name","Darren Jefford","County","Wiltshire","Total Itinerary Price",1285);
                
    des.AddReference("Itinerary", ItineraryActivityID, "Activity", "Flight", flightActivityID);
    des.AddReference("Itinerary", ItineraryActivityID, "MsgBody", "MessageBody", System.DateTime.Now.ToString(), myXmlMessageBody);
 
    des.EndActivity("Itinerary",ItineraryActivityID);
&lt;/PRE&gt;
&lt;P&gt;In contrast consider the code shown below which uses the Interary C# class created by this tool, each Activity Item can be set using class properties which are strongly typed and therefore checked at compile time instead of runtime. Simplified wrappers are provided around operations such as adding references and the ActivityID is stored internally once you've constructed the Itinerary class which saves you having to pass it each and every time. In short this code is far simpler and easier to maintain especially as Activities evolve during your development lifecycle, also for medium to large projects this code generation approach can save you having to write hundreds to thousands of lines of code!&lt;BR&gt;&lt;/P&gt;&lt;PRE&gt;    // Create a new Itinerary activity class, passing a GUID as the ActivityID
    DirectESApi.Itinerary itin = new DirectESApi.Itinerary( System.Guid.NewGuid().ToString() );
 
    // Begin the activity
    itin.BeginItineraryActivity();
 
    // Set activity items
    itin.Received = System.DateTime.Now;
    itin.CustomerName = "Darren Jefford";
    itin.County = "Wiltshire";
    itin.TotalItineraryPrice = 1285.00M;
 
    // Commit these changes to the database;
    itin.CommitItineraryActivity();
 
    // Add a link between this Itinerary activity and another flight activity that already exists
    itin.AddReferenceToAnotherActivity(DirectESApi.Activities.Flight, flightActivityID);
 
    // Add a message body to this activity (or any other data you require)
    itin.AddCustomReference("MsgBody", "MessageBody", System.DateTime.Now.ToString(), myXmlMessageBody);            
 
    // End the Activity
    itin.EndItineraryActivity();
&lt;/PRE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3106650" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BAM/">BAM</category></item><item><title>TechEd 2007: Sessions and Book Signing</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/06/03/teched-2007-sessions-and-book-signing.aspx</link><pubDate>Sun, 03 Jun 2007 15:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3058828</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=3058828</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/06/03/teched-2007-sessions-and-book-signing.aspx#comments</comments><description>&lt;P&gt;&lt;IMG style="WIDTH: 120px; HEIGHT: 90px" height=90 src="http://techedbloggers.net/Images/Flair/teched07_120X90_v2w.jpg" width=120 mce_src="http://techedbloggers.net/Images/Flair/teched07_120X90_v2w.jpg"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I arrived in Orlando yesterday after a long old flight from London and should make the &lt;A class="" href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/05/20/party-with-palermo-tech-ed-2007-edition-official-announcement.aspx" mce_href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/05/20/party-with-palermo-tech-ed-2007-edition-official-announcement.aspx"&gt;Party with Palermo&lt;/A&gt; tonight which looks like it'll be fun but as I'm presenting tomorrow it'll be a quiet night!&lt;/P&gt;
&lt;P&gt;My two sessions are shown below, the second session being a very informal chalk/talk style session without any slides so if you want to know more about BizTalk Performance &amp;amp; Scalablity testing or have some questions, come along!&lt;/P&gt;
&lt;P&gt;A book signing has been organised at the TechEd bookstore following my session on Monday, come along between 1815 and 1845 and Ewan and I will be signing copies!&lt;/P&gt;
&lt;P&gt;My sessions this week are:&lt;/P&gt;
&lt;P&gt;&lt;STRONG minmax_bound="true"&gt;SOA306 - Building an Enterprise-Wide Instrumentation Solution Using the Microsoft BizTalk BAM Infrastructure&lt;BR&gt;Monday 4th June: 1645 to 1800&lt;BR&gt;&lt;/STRONG&gt;Track(s): SOA and Web Services&lt;BR minmax_bound="true"&gt;Level: 300&lt;BR minmax_bound="true"&gt;Speaker(s): Darren Jefford&lt;/P&gt;
&lt;P minmax_bound="true"&gt;Business Activity Monitoring (BAM) is a powerful feature of BizTalk Server and is often marketed as allowing "the business" to understand what is happening within your BizTalk solution. BAM does this really well, but it can in fact be used in a variety of other ways which can deliver huge value to customers and address a number of issues they have with BizTalk based solutions and non-BizTalk based solutions. &lt;/P&gt;
&lt;P minmax_bound="true"&gt;In this session, we cover some of the fundamentals of BAM and detail how you can utilize BAM to collect a variety of information and produce a "tracking portal" which you can use to support your application, perform manual repair of messages, and generally observe your solution. &lt;/P&gt;
&lt;P minmax_bound="true"&gt;We also show how BAM is not just for BizTalk solutions and how it can be used to produce an enterprise-wide instrumentation solution that is highly scalable and flexible; we touch on the new Windows Workflow Foundation and Windows Communication Foundation (WCF) BAM Interceptor technology that enables data to be collected from Workflows and WCF services enabling a true end-to-end instrumentation solution.&lt;/P&gt;
&lt;P minmax_bound="true"&gt;&lt;BR minmax_bound="true"&gt;&lt;STRONG minmax_bound="true"&gt;SOA13-TLC - Microsoft BizTalk Performance Testing&lt;BR&gt;Thursday 7th June: 1630 to 1745&lt;BR&gt;&lt;/STRONG&gt;Track(s): SOA and Web Services&lt;BR minmax_bound="true"&gt;Level: 400&lt;BR minmax_bound="true"&gt;Speaker(s): Darren Jefford&lt;BR minmax_bound="true"&gt;&lt;/P&gt;
&lt;P minmax_bound="true"&gt;Testing is a critical area for any solution and BizTalk is no exception. In this session, we start by covering the foundations that you need to put into place before beginning any performance testing, covering the most common environment problems that cause problems during testing and highlighting a number of tools to make testing easier including BizUnit and LoadGen. &lt;/P&gt;
&lt;P minmax_bound="true"&gt;Then, we cover how you should monitor your solution during testing; highlighting the key performance counters that should be monitored and explaining how throttling works. We finish by covering a number of common symptoms that you're likely to experience during testing; we explain why these occur, how to spot them, and more importantly how to resolve them.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3058828" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/TechEd/">TechEd</category></item><item><title>Professional BizTalk Server 2006: UK has stock!</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/05/23/professional-biztalk-server-2006-uk-has-stock.aspx</link><pubDate>Wed, 23 May 2007 15:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2815073</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2815073</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/05/23/professional-biztalk-server-2006-uk-has-stock.aspx#comments</comments><description>&lt;P&gt;After what seems like a huge delay the usual UK retailers such as &lt;A class="" href="http://www.amazon.co.uk/gp/product/0470046422?ie=UTF8&amp;amp;tag=darrenjefford-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=6738&amp;amp;creativeASIN=0470046422" mce_href="http://www.amazon.co.uk/gp/product/0470046422?ie=UTF8&amp;amp;tag=darrenjefford-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=6738&amp;amp;creativeASIN=0470046422"&gt;Amazon&lt;/A&gt; and &lt;A class="" href="http://www.compman.co.uk/scripts/browse.asp?ref=818641" mce_href="http://www.compman.co.uk/scripts/browse.asp?ref=818641"&gt;Computer Manuals&lt;/A&gt; now have stock of the book!&amp;nbsp;&amp;nbsp; From what I've heard pre-orders have already started to drop through letter-boxes.&lt;/P&gt;
&lt;P&gt;Enjoy, and please remember to put a review on Amazon if you get the chance!&amp;nbsp; &lt;/P&gt;
&lt;P&gt;For those of you going to TechEd in two weeks time, &lt;A class="" href="http://blogs.msdn.com/ewanf" mce_href="http://blogs.msdn.com/ewanf"&gt;Ewan&lt;/A&gt; and I will be taking part in a book signing on Monday the 4th June between &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;6:15pm to 6:45pm at the TechEd book store following my breakout session.&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2815073" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item><item><title>Professional BizTalk Server 2006: In Stock (In the US)</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/05/02/professional-biztalk-server-2006-in-stock-in-the-us.aspx</link><pubDate>Wed, 02 May 2007 12:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2371368</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2371368</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/05/02/professional-biztalk-server-2006-in-stock-in-the-us.aspx#comments</comments><description>&lt;P&gt;Another quick update, it seems that stores in the US now have stock and are shipping.&amp;nbsp; Both &lt;A class="" href="http://www.amazon.com/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=sr_1_1/103-3125379-7825444?ie=UTF8&amp;amp;s=books&amp;amp;qid=1178097145&amp;amp;sr=1-1" mce_href="http://www.amazon.com/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=sr_1_1/103-3125379-7825444?ie=UTF8&amp;amp;s=books&amp;amp;qid=1178097145&amp;amp;sr=1-1"&gt;Amazon.com&lt;/A&gt; and &lt;A class="" href="http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?z=y&amp;amp;EAN=9780470046425&amp;amp;itm=1" mce_href="http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?z=y&amp;amp;EAN=9780470046425&amp;amp;itm=1"&gt;BarnesAndNoble&lt;/A&gt; are reporting stock!&amp;nbsp;&amp;nbsp; The UK should follow very shortly, 7 days seemed to be the difference with the Team System book&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2371368" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item><item><title>BAM Best Practice: Starter for 10..</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/04/30/bam-best-practice-starter-for-10.aspx</link><pubDate>Mon, 30 Apr 2007 12:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2337162</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2337162</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/04/30/bam-best-practice-starter-for-10.aspx#comments</comments><description>&lt;P&gt;I knocked out a brain-dump of some BAM best practices this morning for a colleague, it seems&amp;nbsp;like a good thing to share more broadly.&amp;nbsp; It's a starter for 10 and I'll refine it over time I'm sure, the &lt;A class="" href="http://www.amazon.co.uk/gp/product/0470046422?ie=UTF8&amp;amp;tag=darrenjefford-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=6738&amp;amp;creativeASIN=0470046422" mce_href="http://www.amazon.co.uk/gp/product/0470046422?ie=UTF8&amp;amp;tag=darrenjefford-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=6738&amp;amp;creativeASIN=0470046422"&gt;book&lt;/A&gt; covers all of these things in far more detail as you'd expect :)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;Avoid continuation where you can as it incurs performance overhead, it’s not the end of the world if you were to use continuation but just remember the overhead.&amp;nbsp; The rule of thumb seems to be that up to 2 continuations is OK any more and you should create new activities and link them together using references.&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;You must &lt;STRONG&gt;always&lt;/STRONG&gt; use continuation if you are writing data to an activity over time and using an eventstream other than the DirectEventStream.&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;If you are using continuation you must always call EndActivity passing the original ActivityID once you have enabled continuation, otherwise it can lead to orphaned activities that don’t move from Active to Completed.&amp;nbsp; In short EndActivity must be called for every ActivityID used throughout the lifetime of an Activity.&lt;/P&gt;
&lt;P&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; es.BeginActivity(“MyActivity”, “ActivityID_1” );&lt;BR&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;BR&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; es.UpdateActivity(“MyActivity”,”ActivityID_1”,”Name”,”Darren”);&lt;BR&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; es.EnableContinuation(“MyActivity”,”ActivityID_1”,”ActivityID_2”);&lt;BR&gt;&lt;STRONG&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; es.EndActivity(“MyActivity”,”ActivityID_1”);&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&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;BR&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; es.UpdateActivity(“MyActivity”,”ActivityID_2”,”Age”,”99”);&lt;BR&gt;&lt;STRONG&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; es.EndActivity(“MyActivity”,”ActivityID_2”);&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;Run SQL queries against the SQL Views not the tables otherwise you may not retrieve all of the data due to table partioning occuring under the covers through the use of the Data Maintenance (DM) job&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;Schedule the DM_&amp;lt;ActivityName&amp;gt; SSIS job to ensure your Activity tables are swapped out for empty ones to maintain insertion speed&lt;BR&gt;&lt;BR&gt;•&amp;nbsp;Use OrchestrationEventStream/MessagingEventStream wherever possible as this will keep the Bam data transactionally consistent with the execution of the orchestration or message in that if the orchestration rolls back the BAM data will be as well.&amp;nbsp; You also benefit from being able to piggy back the orchestration persistence database roundtrip or interchange commit.&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;Ensure the tracking host is running if your using a EventStream other then DirectEventStream, the host responsible for tracking can be configured through the BizTalk Administration Console. This defaults to BizTalkServerApplication so ensure this host is started otherwise data will&amp;nbsp;not appear in the BAMPrimaryImport database.&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;If your using an EventStream other than DirectEventStream then BAM data is copied out of the BizTalkMessageBox using TDDS, you can see the data pending via the Tracking Data Size perfmon counter, although if you have global tracking enabled this will also include tracking data.&lt;/P&gt;
&lt;P&gt;•&amp;nbsp;BAM can store up to 1MB of data through the AddReference method on the eventstream, a great well-pefoming solution for message-bodies which enables the storage of message bodies alongside the data that describes how it was processed.&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2337162" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BAM/">BAM</category></item><item><title>Presenting at TechEd</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/04/26/presenting-at-teched.aspx</link><pubDate>Thu, 26 Apr 2007 16:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2286411</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2286411</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/04/26/presenting-at-teched.aspx#comments</comments><description>&lt;P&gt;&lt;IMG src="https://www.msteched.com/resources/content_files/page_banner.png" mce_src="https://www.msteched.com/resources/content_files/page_banner.png"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm pleased to announce that I'll be presenting two sessions at TechEd which is being held at Orlando between Monday 4th June and Friday 8th June!&amp;nbsp; The first is a breakout session which covers BAM and demonstrates some real-world examples of how we've put BAM to great use and how it has a place in almost every BizTalk solution, the second is a chalk-talk covering BizTalk performance testing.&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://blogs.msdn.com/ewanf" mce_href="http://blogs.msdn.com/ewanf"&gt;Ewan Fairweather&lt;/A&gt; (author of the Administration chapter in my book) will also be presenting a breakout session titled "SOA310 - Best Practices and Customer Evidence on Enterprise Ready BizTalk Implementations"&lt;/P&gt;
&lt;P&gt;The session abstracts are shown below for reference, and it looks like&amp;nbsp;a book signing will be organised during the week for those of you attending that want to get a signed copy!&amp;nbsp; See you there!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;SOA306 - Building an Enterprise-Wide Instrumentation Solution Using the Microsoft BizTalk BAM Infrastructure&lt;BR&gt;&lt;/STRONG&gt;Track(s): SOA and Web Services&lt;BR&gt;Level: 300&lt;BR&gt;Speaker(s): Darren Jefford&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Business Activity Monitoring (BAM) is a powerful feature of BizTalk Server and is often marketed as allowing "the business" to understand what is happening within your BizTalk solution. BAM does this really well, but it can in fact be used in a variety of other ways which can deliver huge value to customers and address a number of issues they have with BizTalk based solutions and non-BizTalk based solutions. &lt;/P&gt;
&lt;P&gt;In this session, we cover some of the fundamentals of BAM and detail how you can utilize BAM to collect a variety of information and produce a "tracking portal" which you can use to support your application, perform manual repair of messages, and generally observe your solution. &lt;/P&gt;
&lt;P&gt;We also show how BAM is not just for BizTalk solutions and how it can be used to produce an enterprise-wide instrumentation solution that is highly scalable and flexible; we touch on the new Windows Workflow Foundation and Windows Communication Foundation (WCF) BAM Interceptor technology that enables data to be collected from Workflows and WCF services enabling a true end-to-end instrumentation solution.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;SOA13-TLC - Microsoft BizTalk Performance Testing&lt;BR&gt;&lt;/STRONG&gt;Track(s): SOA and Web Services&lt;BR&gt;Level: 400&lt;BR&gt;Speaker(s): Darren Jefford&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Testing is a critical area for any solution and BizTalk is no exception. In this session, we start by covering the foundations that you need to put into place before beginning any performance testing, covering the most common environment problems that cause problems during testing and highlighting a number of tools to make testing easier including BizUnit and LoadGen. &lt;/P&gt;
&lt;P&gt;Then, we cover how you should monitor your solution during testing; highlighting the key performance counters that should be monitored and explaining how throttling works. We finish by covering a number of common symptoms that you're likely to experience during testing; we explain why these occur, how to spot them, and more importantly how to resolve them.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2286411" width="1" height="1"&gt;</description></item><item><title>Professional BizTalk Server 2006: Shipping!</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/04/24/professional-biztalk-server-2006-shipping.aspx</link><pubDate>Tue, 24 Apr 2007 16:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2260252</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2260252</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/04/24/professional-biztalk-server-2006-shipping.aspx#comments</comments><description>&lt;P&gt;I've just had an update from Wiley and the book arrived into their warehouse last Friday (20th April) and it started physically shipping to stores yesterday (Monday 23rd April) so if you've pre-ordered expect it to arrive real soon!&amp;nbsp; I hope you enjoy it!&lt;/P&gt;
&lt;P&gt;Woo Hoo!!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2260252" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item><item><title>Watch out: DebugView (OutputDebugString) &amp; Performance</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/04/03/watch-out-debugview-outputdebugstring-performance.aspx</link><pubDate>Tue, 03 Apr 2007 23:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2020996</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2020996</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/04/03/watch-out-debugview-outputdebugstring-performance.aspx#comments</comments><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;For developer level tracing the tracing classes held within the &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/system.diagnostics(vs.71).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.diagnostics(vs.71).aspx"&gt;System.Diagnostics&lt;/A&gt; namespace are often used along with the Windows Sysinternals &lt;A class="" href="http://www.microsoft.com/technet/sysinternals/default.mspx" mce_href="http://www.microsoft.com/technet/sysinternals/default.mspx"&gt;DebugView&lt;/A&gt; tool.&amp;nbsp; Tracing events are written to &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa363362.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa363362.aspx"&gt;OutputDebugString&lt;/A&gt; via the &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener(vs.71).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener(vs.71).aspx"&gt;DefaultTraceListener&lt;/A&gt; trace listener.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;This listener writes output to OutputDebugString (which DebugView can monitor), and a managed debugger (if one is attached).&amp;nbsp; In addition the DefaultTraceListener trace listener is responsible for popping up and dealing with the managed assert message box.&amp;nbsp; You can disable the "default"&amp;nbsp;DefaultTraceListener in your application’s config file as required.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;This approach to tracing works &lt;STRONG&gt;extremely&lt;/STRONG&gt; well and is something I use myself a lot, but you should be aware of the associated performance overhead.&amp;nbsp;DebugView effectively acts as a debugger and hooks the &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/ms885195.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms885195.aspx"&gt;OUTPUT_DEBUG_STRING_EVENT&lt;/A&gt; event, as a result your application (a BizTalk process perhaps) will experience a performance impact as the application threads will be suspended whilst the debug information is output, effectively serializing your application.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Therefore if you have many Orchestrations in-flight (or multiple threads if your not using BizTalk) they will all be side-affected if DebugView is started and performance will therefore be affected.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;It's worth noting that if the DebugView tool is not started (and therefore there are no subscribers to the information) the performance impact is negligible and shouldn't in my experience be something to worry about, therefore do not be afraid to output information that you feel will be useful.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;Either way you should ensure that your tracing code is implemented such that it can be disabled to reduce the performance overhead, typically you will need the ability to enable it at run-time. When carrying out performance testing you will most likely want to disable tracing, although gaining an understanding of the overhead is also valuable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;In my view the performance hit associated with software tracing is outweighed by the ability to diagnose run-time issues in a non-intrusive manner.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Most Microsoft products, including BizTalk Server,&amp;nbsp;rely heavily on software tracing which the product group leverage to diagnose customer issues off-line.&amp;nbsp; Just be aware that running DebugView during performance testing or on a live server is very likely to significantly impact performance!&amp;nbsp; I'm not saying not to use it, Please Do!&amp;nbsp; It makes everyone's life easier but just be aware of the performance impact when your running those tests and in live.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;Roll on the mighty &lt;A class="" href="http://blogs.msdn.com/bclteam/archive/2007/03/09/a-new-tracelistener-in-orcas-eventschematracelistener-inbar-gazit.aspx" mce_href="http://blogs.msdn.com/bclteam/archive/2007/03/09/a-new-tracelistener-in-orcas-eventschematracelistener-inbar-gazit.aspx"&gt;ETW TraceListener&lt;/A&gt; planned for Visual Studio “Orcas”, kernel model ultra-fast tracing from managed code!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;A class="" href="http://msdn.microsoft.com/msdnmag/issues/07/04/ETW/default.aspx" mce_href="http://msdn.microsoft.com/msdnmag/issues/07/04/ETW/default.aspx"&gt;ETW&lt;/A&gt; has been available for a while but has been pretty hard to leverage from managed code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s worth nothing that BizTalk itself uses ETW heavily to provide extremely rich internal “developer level” tracing which we can use to diagnose problems at customer sites.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=ececececmsonormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"&gt;Thanks to &lt;A class="" href="http://www.jonfancey.com/default.aspx" mce_href="http://www.jonfancey.com/default.aspx"&gt;Jon Fancey&lt;/A&gt; for highlighting this during the review stage of the book, he experienced a solution being seriously impacted when DebugView was left running on a live server, and to Matt Ellis (BCL) for adding some detail around the DefaultTraceListener.&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2020996" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category></item><item><title>BAM: PivotTables not working on the BAM Portal</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/04/03/bam-pivottables-not-working-on-the-bam-portal.aspx</link><pubDate>Tue, 03 Apr 2007 23:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2020788</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=2020788</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/04/03/bam-pivottables-not-working-on-the-bam-portal.aspx#comments</comments><description>&lt;P&gt;I’ve used the same base VPC for my various BizTalk Server 2006 images over the last few years, this has worked fine apart from a few annoying bugs that of course plagued every single instance of a VPC using it, of course I never really spent the time to iron them out so suffer from them every now and again :-(&lt;/P&gt;
&lt;P&gt;All are most certainly down to me not having exactly the right bits installed or not having the configuration quite right.&amp;nbsp; One annoying problem was the Pivot Table view on the BAM Portal refusing to work by coming up with the following unhelpful error: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;“The query could not be processed: Cannot connect to the server 'DARRENJBTS06'. The server is either not started or too busy.”&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Over the years I’ve tried just about everything to fix it: Configuration, Security, Service Packs,etc. but have never managed to solve it until now - after some digging internally it seems that my base VPC was missing Version 9.0 of the Analysis Services OLE DB Provider, installing &lt;A class="" href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_ASOLEDB9.msi" mce_href="http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/SQLServer2005_ASOLEDB9.msi"&gt;this&lt;/A&gt; resolved the issue straight away, the update is listed on &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=d09c1d60-a13c-4479-9b91-9e8b9d835cdc&amp;amp;displaylang=en#filelist" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=d09c1d60-a13c-4479-9b91-9e8b9d835cdc&amp;amp;displaylang=en#filelist"&gt;this&lt;/A&gt; page along with some other updates.&lt;/P&gt;
&lt;P&gt;Hope it helps!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2020788" width="1" height="1"&gt;</description></item><item><title>Professional BizTalk Server 2006: Release Date</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/03/29/professional-biztalk-server-2006-release-date.aspx</link><pubDate>Thu, 29 Mar 2007 16:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1988365</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=1988365</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/03/29/professional-biztalk-server-2006-release-date.aspx#comments</comments><description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I'm reliably informed by Wiley that the book should be in-stock at their warehouse on the &lt;STRONG&gt;23rd April 2007&lt;/STRONG&gt; and should then ship to distributors/stores in the US followed by international outlets subject to delivery times.&amp;nbsp; Enjoy!&lt;/P&gt;
&lt;P&gt;Woo Hoo!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1988365" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item><item><title>Professional BizTalk Server 2006: Chapter List</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/03/26/professional-biztalk-server-2006-chapter-list.aspx</link><pubDate>Mon, 26 Mar 2007 15:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1952067</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=1952067</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/03/26/professional-biztalk-server-2006-chapter-list.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Following on from&amp;nbsp;my previous post, included below is the final chapter list and a &lt;STRONG&gt;brief&lt;/STRONG&gt; overview of the content covered in each chapter.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Chapter 1: Technical Primer—This chapter primes the reader on some key technologies that each developer should have a basic understanding of to aid with development and debugging. This chapter covers XML schemas, namespaces, XPath, and serializable classes.&lt;BR&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 2: BizTalk Architecture—This chapter is the only chapter that really deals with explaining the basic BizTalk principles. It positions the value that BizTalk brings to solutions and compares this to writing a custom solution without BizTalk. It then runs through all the key architectural pieces of BizTalk and explains what they do and how they work.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 3: Adapters—This chapter covers key adapter concepts—such as ports, tracking, hosting, and context properties—and then drills into each adapter supplied with BizTalk to explain what the adapter does, which context properties it promotes, and, where appropriate and relevant, a walkthrough to show how to use the adapter.&amp;nbsp; The chapter also details the new R2 adapters at a high-level and in time for publication we'll add downloadable content to demonstrate how to write an adapter using the new WCF Adapter framework shipped with BizTalk Server 2006 R2 (not available at the time of writing).&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 4: Pipelines—This chapter covers the core principles of pipelines and details how they work. The chapter then highlights how pipeline components should be developed and provides a worked example.&lt;BR&gt;This chapter also covers the Messaging Engine architecture and how it works, understanding this is key to being able to exploit the architecture to the fullest.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 5: Orchestrations—This chapter introduces BizTalk orchestrations and the environment within which they execute. We discuss key areas such as persistence points and logical ports before covering how orchestrations can be developed and which features are available.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 6: Business Activity Monitoring—This chapter introduces the Business Activity Monitoring (BAM) technology and details how BAM can be used to instrument your BizTalk solution and your entire enterprise. The chapter then covers how a fictional scenario can be instrumented and how you can make use of the information collected by BAM.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 7: Rules Engine—This chapter discusses the key principles that underpin the Rules Engine, and then covers all the concepts to enable effective use of the Rules Engine within your solution.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 8: Testing—This chapter starts by describing the types of testing you must apply to your BizTalk solution, including unit testing, functional testing, integration testing, and performance testing. The chapter goes on to discuss how BizUnit can be used to automate testing, how you can perform code coverage of your BizTalk solution, how LoadGen can be used to generate load, and how you can profile your solution using the Visual Studio profiler.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 9: Performance and Scalability—This chapter covers all the things you must have in place before beginning any performance testing. Forgetting these often leads to bad performance results.&amp;nbsp; The chapter then explains how to monitor BizTalk, SQL, and IIS, explaining all the relevant performance counters and what they actually mean. We also provide a complete reference on what BizTalk throttling is and how it works, including an explanation of all the various throttling states.&amp;nbsp; The final section of the chapter discusses a number of common symptoms. These are problems that customers run into regularly and include high CPU usage and sudden processing drop off. The chapter explains the common reasons and things to check to identify the underlying problem.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 10: Low Latency—This chapter covers what low latency means to BizTalk solutions and how you can measure it. We then drill into a variety of techniques that you can employ to reduce latency for your solution.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 11: Administration—This chapter describes everything required to administer BizTalk effectively. It's a great resource for administrators as well as developers. The chapter covers the key administration tools and tasks that you need to undertake, and highlights areas that are often overlooked, such as SSO maintenance, suspended instances, subscriptions, etc.&amp;nbsp; The chapter also covers in great detail how the SQL Server used by BizTalk needs to be looked after, including backup, log shipping and how you can monitor the performance of the SQL Server. The chapter also covers MOM and how it can be used in conjunction with the BizTalk Management Pack to greatly simplify management.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 12: End-to-End Scenarios—This chapter highlights all the End-to-End Scenarios that were shipped as part of BizTalk 2006. These are often overlooked but provide full working solutions of real-world customer scenarios that have been fully tested and demonstrate best practice. Each scenario is supplied with complete source code and provides implementations that you can use within your own solution. We cover each scenario and highlight key deliverables in each scenario such as the code required to use the SSO store for configuration data and an adapter to enable messages to be sent for manual repair.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 13: BizTalk Best Practices—This chapter discusses a number of best practices and techniques that have been used in a number of projects, including handling large messages, storing configuration data, subscribing to failure messages, and instrumenting your solution.&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Chapter 14: Windows Workflow and BizTalk—This chapter positions the key concepts of Windows Workflow and discusses how it compares with BizTalk Server. We then demonstrate how the BAM Interceptor for Windows Workflow works and position how BizTalk, WF, and SharePoint can be used together to enable compelling solutions.&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1952067" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item><item><title>Professional BizTalk Server 2006: Off to the printers</title><link>http://blogs.msdn.com/b/darrenj/archive/2007/03/26/professional-biztalk-server-2006-goes-to-the-printers.aspx</link><pubDate>Mon, 26 Mar 2007 15:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1951950</guid><dc:creator>Darren Jefford</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/darrenj/rsscomments.aspx?WeblogPostID=1951950</wfw:commentRss><comments>http://blogs.msdn.com/b/darrenj/archive/2007/03/26/professional-biztalk-server-2006-goes-to-the-printers.aspx#comments</comments><description>&lt;P&gt;A year on, ~224,000 words and over 600 pages later, and &lt;A class="" href="http://www.amazon.co.uk/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=pd_bbs_sr_1/026-4976562-9192424?ie=UTF8&amp;amp;s=books&amp;amp;qid=1174663613&amp;amp;sr=8-1" mce_href="http://www.amazon.co.uk/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=pd_bbs_sr_1/026-4976562-9192424?ie=UTF8&amp;amp;s=books&amp;amp;qid=1174663613&amp;amp;sr=8-1"&gt;Professional BizTalk Server 2006&lt;/A&gt; has finally gone to the printers!&amp;nbsp; This book has been a mammoth undertaking for all involved, but having just reviewed the entire book end-to-end I’m extremely proud of what we’ve achieved.&lt;/P&gt;
&lt;P&gt;The final cover is shown below with all of the authors photos!&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://farm1.static.flickr.com/175/432797656_d5d89eab8f.jpg?v=0" mce_src="http://farm1.static.flickr.com/175/432797656_d5d89eab8f.jpg?v=0"&gt;&lt;/P&gt;
&lt;P&gt;I'm also pleased to announce that Patric McElroy who is a Product Unit Manager (PUM) for the BizTalk Server Team, kindly wrote a great foreword for the book and we included the following fantastic quote on the cover:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;“This book is an indispensable resource for solution architects and developers who want to dig deeper into BizTalk. It is valuable material that has been written by insiders with deep experience in architecting and delivering solutions for our most demanding enterprise customers.”&lt;BR&gt;&lt;STRONG&gt;—Patric McElroy, Product Unit Manager, BizTalk Server, Microsoft Corporation&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;A big thanks to &lt;A class="" href="http://www.sabratech.co.uk/blogs/yossidahan/" mce_href="http://www.sabratech.co.uk/blogs/yossidahan/"&gt;Yossi Dahan&lt;/A&gt; and &lt;A class="" href="http://www.jonfancey.com/default.aspx" mce_href="http://www.jonfancey.com/default.aspx"&gt;Jon Fancey&lt;/A&gt; who both reviewed the entire&amp;nbsp;book and provided some great comments and suggestions, we also included a very kind comment from Yossi on the back cover:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;“This book provides a fantastic insight into the inner workings of BizTalk, making it an invaluable resource for all those things you would otherwise never know. As you learn the ‘tricks of the trade’ from these experienced engineers, you quickly realize why everyone who has anything to do with BizTalk simply MUST read this book.”&lt;BR&gt;&lt;/EM&gt;&lt;EM&gt;&lt;STRONG&gt;—Yossi Dahan, Managing Consultant, Sabra Ltd.&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The final back cover text is shown below:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;This book provides insight into how industry experts have successfully architected, developed, and maintained Microsoft BizTalk Server in mission-critical environments. Authored by highly-regarded consultants with a wealth of knowledge on designing, building, and operating enterprise applications using BizTalk, this comprehensive guide gives you the techniques and best practices you’ll need to develop effective projects.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Darren Jefford is a Principal Consultant with the Microsoft UK Application Development Consulting (ADC) team who has extensive real-world experience with BizTalk Server and the broader Microsoft platform. Kevin B. Smith formerly worked as a Technical Lead Software Design Engineer for the BizTalk Server Product Team and helped ship three versions of BizTalk Server. Ewan Fairweather works as a Premier Field Engineer for Microsoft, providing onsite support to enterprise customers, including maintaining and optimizing their BizTalk Server solutions. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Achitects, developers, testers, and administrators will achieve instant success when they apply the deep technical information covered in this book. They will better appreciate the internal workings of BizTalk Server and will understand detailed solutions for challenges often experienced with BizTalk-based systems.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;My initial plans were to co-author the book with Kevin Smith but he (sensibly) was reticent due to the sheer amount of work required.&amp;nbsp; I therefore started the book as sole author but as the writing got underway I began to realise my limitations, BizTalk is a huge product and it’s impossible to know everything about everything, especially in enough depth for a book.&amp;nbsp;&amp;nbsp; I finally persuaded (nagged to death) Kevin to author 3 chapters on topics that he knew extremely well, especially as he was part of the BizTalk product team and responsible for the design and implementation of the messaging engine.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;As the writing continued the Administration chapter loomed into view and being a developer at heart – Administration is a very weak point!&amp;nbsp;&amp;nbsp; I managed to talk an (admittedly tipsy) &lt;A class="" href="http://blogs.msdn.com/ewanf/" mce_href="http://blogs.msdn.com/ewanf/"&gt;Ewan Fairweather&lt;/A&gt; into writing the chapter at the Microsoft UK summer party, he pulled out all the stops against tight deadlines to write some amazing content on Administration which given his background (supporting customers real-world BizTalk deployments) will be of great value to customers and I must admit to learning an embarrassing amount whilst reviewing his chapter.&lt;/P&gt;
&lt;P&gt;So, your all probably wondering – why on earth did I decide to invest so much personal time writing a book on BizTalk?&amp;nbsp;&amp;nbsp; As ever it’s a long story, but the following fragment from the book introduction explains it nicely:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;The compelling drive for me to create this book resulted from two main factors. First, after working with these customers I had a clear view of what worked, what didn’t, and the things to highlight early on to avoid problems later in the development life cycle of a BizTalk solution.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The next compelling drive was that such real-world, best-practice advice was tied up inside a small number of people’s heads. This clearly doesn’t scale to help the broader base of BizTalk customers, and it’s often frustrating (to both sides) to be called on site to see the same issues crop up again and again.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;These problems, in my experience, are not the fault of the product or the customer per se but instead represent the learning curve required for enterprise software development. It’s a hard problem space, and tiny mistakes or oversights have big consequences. This book is positioned to help address this. It’s a fusion of how the product works under the covers and cutting-edge best practices designed to enable you to make best use of the product within your solution.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The decision to write a book was a tortuous one. I loved the idea of writing a book, but I was given a number of reality checks by colleagues with regard to the effort required — something that (with a young family) I wasn’t sure I could commit to, and I decided to shelve the project.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;The final straw, however, came in late in 2005. While onsite with a customer, I was asked the following question: “Why does it take Darren Jefford or Kevin Smith to come in to help us understand these problems and highlight the types of things we should be aware of? This type of information isn’t in the documentation….”&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The book is now off being printed and should be available in early May I’m reliably informed, based on my experience with the Team System book it will be available in the US first, followed by the UK a few weeks later so you should expect delivery by the end of May.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Ewan and I will be presenting at TechEd US (Orlando) so look out for us there if your attending, I believe Wiley will probably be setting a book signing opportunity up if your interested, once the session titles are formalised I'll post them here.&lt;/P&gt;
&lt;P&gt;Phew!&amp;nbsp; Now back to reality and &lt;STRONG&gt;spare&lt;/STRONG&gt; time!&amp;nbsp; I hope you enjoy the book and the blog should hopefully get back to normal and I can post some of the interesting WCF bits and pieces I've been up to.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1951950" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk/">BizTalk</category><category domain="http://blogs.msdn.com/b/darrenj/archive/tags/BizTalk+Book/">BizTalk Book</category></item></channel></rss>