<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Darren Jefford</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/darrenj/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/darrenj/feed.xml</link>
    <description>Solution Architect, Microsoft Consulting Services, Microsoft UK</description>
    <lastBuildDate>Tue, 16 Apr 2019 04:58:02 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>New Blog!</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/new-blog</link>
      <pubDate>Fri, 30 Dec 2011 12:26:11 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2011/12/30/new-blog/</guid>
      <description><![CDATA[I've decided to ressurect my blog but over on a new web-site that enables me to have more control...]]></description>
      <content:encoded><![CDATA[<p>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.&nbsp; Please join me (if your still monitoring this blog) over at <a href="https://www.darrenj.co.uk">https://www.darrenj.co.uk</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Software in the cloud: Cloud Workflow</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/software-in-the-cloud-cloud-workflow</link>
      <pubDate>Thu, 02 Oct 2008 05:31:30 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2008/10/02/software-in-the-cloud-cloud-workflow/</guid>
      <description><![CDATA[As promised in my last posting let's take a look at the new "Workflow in the cloud" functionality...]]></description>
      <content:encoded><![CDATA[<p></p> <p>As promised in my <a target="_blank" href="https://blogs.msdn.com/darrenj/archive/2008/09/24/software-in-the-cloud-the-relay-service.aspx">last posting</a> let's take a look at the new "Workflow in the cloud" functionality offered in the July drop of the <a href="https://www.biztalk.net">BizTalk Services</a>  <p>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.&nbsp; The idea being that you can run your workflows on our infrastructure which will scale to your throughput needs - subject to appropriate payments.&nbsp;&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.  <p>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 <em>machine</em> workflows.&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.  <p>Your restricted to a number of new <em>cloud</em> activities provided which are as follows: <i>CloudHttpSend</i>, <i>CloudHttpReceive</i>, <i>CloudIfElse</i>, <i>CloudSequence</i>, <i>CloudServiceBusSend</i>, <i>CloudDelay</i> and <i>CloudWhile</i>.  <p>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.</p> <p>The <em>CloudServiceBusSend</em> 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 <a target="_blank" href="https://blogs.msdn.com/darrenj/archive/2008/09/24/software-in-the-cloud-the-relay-service.aspx">this posting</a>. 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.&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.</p> <p>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.&nbsp; To start you'll need to create an account at <a href="https://biztalk.net">https://biztalk.net</a> and download/install the BizTalk Services SDK.</p> <p>The first step is to create a new <em>Sequential Workflow</em>, all cloud workflows must be Sequential Workflows and XOML only.&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.&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.</p> <p><a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_2.png"><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"></a> </p> <p>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.&nbsp; These new activities are held within the <em>System.ServiceBus.Workflow</em> assembly under the <em>%PROGRAMFILES%\Microsoft BizTalk Services SDK\Assemblies</em> directory.</p> <p></p> <p>&nbsp;<a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_4.png"><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"></a></p> <p>&nbsp;</p> <p>For the purposes of this simple <em>Hello World</em> cloud workflow we'll just use one activity.&nbsp; The <em>CloudHttpReceive</em> activity will be used to demonstrate how we can communicate with a running workflow instance.&nbsp; You shoud have a workflow as shown below</p> <p><a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_10.png"><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"></a> </p> <p>The usual exclamation marks indicate that we have some configuration to do on this activity, for the <em>cloudHttpReceive</em> the only configuration we need to supply is a <em>response</em> 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.&nbsp; For the purposes of this workflow and the code you'll see in a bit, set the name of this activity to <em>helloWorldHttpReceive </em>and supply a response body of your choosing.</p> <p>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.&nbsp; For now we need to perform a simple copy/paste deployment model.</p> <p>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.</p> <p>We now need to deploy the workflow via the BizTalk Services website, browse to <a title="https://workflow.biztalk.net/" href="https://workflow.biztalk.net/">https://workflow.biztalk.net/</a> and supply your BizTalk Services credentials to view the workflow management portal as shown below.</p> <p><a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_12.png"><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"></a> </p> <p>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.&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.</p> <p><a href="https://blogs.msdn.com/blogfiles/darrenj/WindowsLiveWriter/SoftwareinthecloudCloudWorkflow_10DC9/image_14.png"><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"></a> </p> <p>Click Save changes and your cloud workflow is now ready to go!&nbsp; Note the "Rules" tab in the previous screenshot, this is where you can also provide any rules associated with your cloud workflow.</p> <p>Now our workflow is created how can we go about kicking it off within the Microsoft datacenter?&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.&nbsp;&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?&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.</p> <p>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.&nbsp; The key thing in the code is how to target your HTTP POST of a running workflow instance.&nbsp; The URI is made up as follows:</p> <p>https://workflow.biztalk.net/servicesHttp/<strong>YOURBIZTALKSERVICESUSERNAME</strong>/workflows/<strong>YOURWORKFLOWNAME</strong>/instances/<strong>YOURWORKFLOWINSTANCEID</strong>/<strong>HTTPRECEIVEACTIVITYNAME</strong></p> <p>And an example for my scenario here is as follows:</p> <p><a href="https://workflow.biztalk.net/servicesHttp/darrenj/workflows/HelloWorld/instances/83734f1c-d08f-4cc9-b396-b76ebdb60979/helloWorldHttpReceive">https://workflow.biztalk.net/servicesHttp/<strong>darrenj</strong>/workflows/<strong>HelloWorld</strong>/instances/<strong>83734f1c-d08f-4cc9-b396-b76ebdb60979</strong>/<strong>helloWorldHttpReceive</a></strong></p> <p>You'll need to add assembly references to your project for <font face="courier new">System.ServiceBus.dll</font>, <font face="Courier New">System.ServiceBus.Workflow.dll</font> and <font face="Courier New">System.ServiceModel.dll</font></p> <p><font face="Courier New">[<span style="color: #2b91af">TestMethod</span>]<br><span style="color: blue">public void </span>TestMethod1()<br>{<br>&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// Create a new Workflow Instance in the cloud, we then get the InstanceID back<br>&nbsp;&nbsp; </span><span style="color: blue">string </span>instanceId = CreateWorkflowInstanceInTheCloud();<br><br>&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// The Workflow Type<br>&nbsp;&nbsp; </span><span style="color: blue">string </span>workflowTypeName = <span style="color: #a31515">"HelloWorld"</span>;<br><br>&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// The PlaceOrder Workflow starts with a cloudHttpReceive activity called "placeOrderHttpReceive"<br>&nbsp;&nbsp;&nbsp; // We must target this directly when posting our Order information to the cloud workflow<br>&nbsp;&nbsp; </span><span style="color: blue">string </span>httpActivityName = <span style="color: #a31515">"helloWorldHttpReceive"</span>;<br><br>&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// Build up the URL to directly target our newly created Workflow Instance and to post XML directly to the<br>&nbsp;&nbsp;&nbsp; // waiting cloudHttpReceive activity<br><br>&nbsp;&nbsp; </span><span style="color: #2b91af">Uri </span>serviceUri = <span style="color: blue">new </span><span style="color: #2b91af">Uri</span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue">string</span>.Format(<span style="color: #2b91af">WorkflowClientConfig</span>.HttpUri + <span style="color: #a31515">"{1}/workflows/{2}/instances/{3}/{4}"</span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">WorkflowClientConfig</span>.WorkflowHostName, _bizTalkServicesUsername, workflowTypeName, instanceId, httpActivityName));<br><br>&nbsp;&nbsp;&nbsp; <span style="color: blue">string </span>httpPostBody = <span style="color: #a31515">"&lt;HelloWorldWorkflow&gt;&lt;Message&gt;Hello World&lt;/Message&gt;&lt;/HelloWorldWorkflow&gt;"</span>;<br><br>&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// Prepare to perform an HTTP POST to the waiting workflow<br>&nbsp;&nbsp; </span><span style="color: #2b91af">HttpWebRequest </span>request = (<span style="color: #2b91af">HttpWebRequest</span>)<span style="color: #2b91af">WebRequest</span>.Create(serviceUri);<br>&nbsp;&nbsp;&nbsp; request.Method = <span style="color: #a31515">"POST"</span>;<br>&nbsp;&nbsp;&nbsp; request.ContentType = <span style="color: #a31515">"text/xml"</span>;<br>&nbsp;&nbsp;&nbsp; request.ContentLength = httpPostBody.Length;<br>&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// Add the special header which contains our STS token retrieved from the cloud<br>&nbsp;&nbsp; </span>request.Headers.Add(<span style="color: #a31515">"X-MS-Identity-Token"</span>, GetTokenFromCloudSts());<br><br>&nbsp;&nbsp;&nbsp; <span style="color: blue">using</span>(<span style="color: #2b91af">StreamWriter </span>writer = <span style="color: blue">new </span><span style="color: #2b91af">StreamWriter</span>(request.GetRequestStream()))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// Write the OrderInformation XML representation into the stream<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>writer.Write(httpPostBody);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; writer.Flush();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// Wait for a response from the Cloud Workflow, the cloudHttpReceive activity is configured to respond with a fixed<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Response if succesful;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">HttpWebResponse </span>response = (<span style="color: #2b91af">HttpWebResponse</span>)request.GetResponse();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue">using</span>(<span style="color: #2b91af">StreamReader </span>reader = <span style="color: blue">new </span><span style="color: #2b91af">StreamReader</span>(response.GetResponseStream()))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue">string </span>returnMessage = reader.ReadToEnd();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #2b91af">Trace</span>.WriteLine(<span style="color: #a31515">"Response message from the cloud is: " </span>+ returnMessage);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier New"><span style="color: green">// For some reason all responses from the cloudHttpReceive activity are wrapped into a &lt;string&gt; element<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">Assert</span>.IsTrue(returnMessage.Contains(<span style="color: #a31515">"Hello World Response"</span>));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}</font></p><pre class="code"><span style="color: blue">private string </span>GetTokenFromCloudSts()
{
    <span style="color: green">// 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.)
    </span><span style="color: blue">string </span>tokenUrl = <span style="color: blue">string</span>.Format(
            <span style="color: #a31515">"https://{0}/issuetoken.aspx?u={1}&amp;p={2}"</span>,
            <span style="color: #2b91af">WorkflowClientConfig</span>.StsHostName,
            _bizTalkServicesUsername,
            _bizTalkServicesPassword);

    <span style="color: green">// Create an HttpWebRequest
    </span><span style="color: #2b91af">HttpWebRequest </span>tokenRequest = (<span style="color: #2b91af">HttpWebRequest</span>)<span style="color: #2b91af">WebRequest</span>.Create(tokenUrl);
    <span style="color: #2b91af">Trace</span>.WriteLine(tokenRequest.RequestUri);

    <span style="color: green">// No Request to send, just invoke the URL and get the authentication token
    </span><span style="color: #2b91af">HttpWebResponse </span>tokenResponse = (<span style="color: #2b91af">HttpWebResponse</span>)tokenRequest.GetResponse();

    <span style="color: green">// Get the token from the Response Stream
    </span><span style="color: blue">byte</span>[] tokenBody = <span style="color: blue">new byte</span>[500];
    <span style="color: blue">int </span>tokenBodyLength = tokenResponse.GetResponseStream().Read(tokenBody, 0, 500);

    <span style="color: green">// Convert to a UTF8 representation which we can then use in subsequent requests
    </span><span style="color: blue">string </span>authenticationToken = <span style="color: #2b91af">Encoding</span>.UTF8.GetString(tokenBody, 0, tokenBodyLength);
    <span style="color: #2b91af">Trace</span>.WriteLine(<span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">"Authentication Token: {0}"</span>, authenticationToken));

    <span style="color: blue">return </span>authenticationToken;
}</pre><pre class="code"><span style="color: blue">private string </span>CreateWorkflowInstanceInTheCloud()
{
    <span style="color: green">// New up an instance of the provided System.ServiceBus.Workflow.WorkflowClient which provides a wrapper
    // around the cloud workflow SOAP Web Servics        
    </span><span style="color: #2b91af">WorkflowClient </span>workflowClient = <span style="color: blue">new </span><span style="color: #2b91af">WorkflowClient</span>();

    <span style="color: green">// Provide BizTalk Services credentials
    </span>workflowClient.CredentialType = <span style="color: #2b91af">TransportClientCredentialType</span>.UserNamePassword;
    workflowClient.Credentials.UserName.UserName = _bizTalkServicesUsername;
    workflowClient.Credentials.UserName.Password = _bizTalkServicesPassword;

    workflowClient.Open();

    <span style="color: green">// 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
    </span><span style="color: #2b91af">Dictionary</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">object</span>&gt; parameters = <span style="color: blue">new </span><span style="color: #2b91af">Dictionary</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">object</span>&gt;();

    <span style="color: green">// 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
    </span><span style="color: blue">string </span>instanceId = workflowClient.CreateWorkflowInstance(_bizTalkServicesUsername, <span style="color: #a31515">"HelloWorld"</span>, parameters, GetTokenFromCloudSts());
    <span style="color: #2b91af">Trace</span>.WriteLine(<span style="color: #a31515">"Workflow Instance Created:" </span>+ instanceId);

    <span style="color: green">// 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
    </span>workflowClient.StartWorkflowInstance(_bizTalkServicesUsername, <span style="color: #a31515">"HelloWorld"</span>, instanceId);
    <span style="color: #2b91af">Trace</span>.WriteLine(<span style="color: #a31515">"Workflow Instance Started:" </span>+ instanceId);

    <span style="color: green">// Our work is done, close the WorkflowClient
    </span>workflowClient.Close();

    <span style="color: green">// Return the InstanceId so we can identify the WorkflowInstance we've just created when we perform an HTTP post to it next
    </span><span style="color: blue">return </span>instanceId;
}</pre><a href="https://11011.net/software/vspaste"></a>
<p>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.</p>
<p>If you navigate back to the <a href="https://workflow.biztalk.net">https://workflow.biztalk.net</a> site then you can review running workflow instances and check they've completed successfully.</p>
<p>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!).&nbsp; I'll also cover a handy little ISBTraceTool that I put together to aid with visualizing cloud workflow activity.</p>
<p>More soon!</p>
<p>&nbsp;</p>
<blockquote>
<p>
<p><font size="2" face="Courier New"></font></p></blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Dublin!</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/dublin</link>
      <pubDate>Wed, 01 Oct 2008 17:43:01 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2008/10/01/dublin/</guid>
      <description><![CDATA[This announcement came sooner then I expected, I'd assumed PDC was going to be the first time Dublin...]]></description>
      <content:encoded><![CDATA[<p><a target="_blank" href="https://blogs.msdn.com/stevemar/archive/2008/10/01/the-road-to-pdc-net-framework-4-0-and-dublin.aspx">This</a> announcement came sooner then I expected, I'd assumed PDC was going to be the first time Dublin was mentioned in public!&nbsp;&nbsp; The most detailed information before the PDC can be found <a target="_blank" href="https://blogs.msdn.com/stevemar/archive/2008/10/01/the-road-to-pdc-net-framework-4-0-and-dublin.aspx">here</a>.</p> <p>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.&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.&nbsp; </p> <p>So Dublin!&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!&nbsp; </p> <p>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.&nbsp; For those who might have shied away from WF because of having to roll their own infrastructure, this is great news!</p> <p>Note that in the press-releases that BizTalk is formally being referred to as an integration server, e.g:</p> <blockquote> <p><em>Q: Will "Dublin" work with BizTalk Server's enterprise connectivity services?</em> <p><em>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.</em></p></blockquote> <p>BizTalk is by no means <em>"dead", </em>in fact Microsoft <a target="_blank" href="https://www.microsoft.com/biztalk/en/us/roadmap.aspx">committed</a> to future versions including BizTalk Server 2009 recently for the integration server workload, BizTalk = Integration, Dublin = Application.</p> <p>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.&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).</p> <p>We don't want customers in this situation to be forced into writing huge amounts of <strong>hard </strong><em>plumbing code</em> to achieve this, we need a server product to do this for you, which is where Dublin comes in.&nbsp; Note some of the server features announced which will be familiar to BizTalk developers (content based routing, compensation, etc.).&nbsp;&nbsp; </p> <p>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.&nbsp; Both products will work together seamlessly through the WCF communication options so you can combine as appropriate.&nbsp; </p> <p>Remember though that a number of BizTalk adapters have been re-written as WCF bindings and are available through the BizTalk<a target="_blank" href="https://www.microsoft.com/biztalk/en/us/adapter-pack.aspx"> Adapter Pack</a> which offers some key LOB adapters.&nbsp; A new SQL adapter is in the works along with new Oracle adapters which you can find information on <a target="_blank" href="https://blogs.msdn.com/adapters/archive/2008/05/29/biztalk-adapter-pack-v2-tap-enrollment-open.aspx">here</a>.&nbsp;&nbsp; As these new adapters are exposed as WCF bindings you can leverage them with WCF and Dublin.</p> <p>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!</p> <p>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.&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?&nbsp; Combine that with the 10x improvement in performance and things are looking good!&nbsp; Imagine a world when a typical software solution can be implemented (modeled) exclusively through a workflow and out-of-the-box activities? ;-)</p> <p>Notice also the subtle new feature in WF, "<em>persistence control".&nbsp; </em>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 ;-)</p> <p>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.</p> <p>Exciting times!</p>]]></content:encoded>
    </item>
    <item>
      <title>Professional BizTalk Server 2009?</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/professional-biztalk-server-2009</link>
      <pubDate>Mon, 29 Sep 2008 06:34:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2008/09/29/professional-biztalk-server-2009/</guid>
      <description><![CDATA[I've been looking into the possibility of updating the highly successful Professional BizTalk Server...]]></description>
      <content:encoded><![CDATA[<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">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 <A href="https://www.microsoft.com/biztalk/en/us/roadmap.aspx" mce_href="https://www.microsoft.com/biztalk/en/us/roadmap.aspx"><SPAN style="COLOR: blue; mso-bidi-font-size: 11.0pt">recently announced</SPAN></A> BizTalk Server 2009 product.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">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.<o:p></o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">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.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">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.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">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.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Technology Primer&nbsp;- Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l11 level1 lfo11; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cover WCF basics<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l11 level1 lfo11; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cover the penalty of XmlDocument vs Serializable Classes vs XPath with real-examples of overhead<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">BizTalk Architecture - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l13 level1 lfo8; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Emphasise further how important testing is, don’t expect performance and how critical the performance of supporting systems is. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Detail techniques for isolating and testing performance of supporting systems<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l13 level1 lfo8; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cover any changes with BTS2009<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l13 level1 lfo8; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Potentially position BTS2009 vs Oslo at the architectural level<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Adapters - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Include drill-down on WCF Adapter topics<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Overview<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Different WCF-* adapters<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Walkthrough<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Demonstrate how a custom binding can be developed using the WCF Adapter SDK (null adapter?)<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l5 level1 lfo9; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cover the new WCF Adapter bindings (SQL, MQS, etc)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 54pt; mso-add-space: auto" class=MsoNormalCxSpFirst><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Business Activity Monitoring - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l7 level1 lfo10; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Provide implementation of BAM Latency Timer pipeline component<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l7 level1 lfo10; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Provide more real-world and common questions/issues guidance<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Business Rules Engine - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l10 level1 lfo12; mso-add-space: auto" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Position BRE vs the WF rules engine and futures<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">RFID&nbsp;- New Chapter</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l0 level1 lfo7" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 11pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 10.0pt"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Drill-down chapter into the RFID features of BizTalk complete with real-world examples<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Testing - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Provide more real-world “case studies” of how it’s been done right and the benefits..<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">New BizUnit features (Excel)<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l3 level1 lfo6; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Update with any new VS2008 (and maybe future release features)<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Performance and Scalability - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">PAL for analysis of performance logs<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Discuss SAN technology improvements<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">‘n’ step plan for identifying where bottlenecks lie within a BizTalk rig<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l2 level1 lfo4; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Expand throttling “plain” English guide, step-by-step diagnosis guide<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Low Latency - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 39pt; mso-list: l8 level1 lfo5; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cover new options such as NetTcp and NetNamedPipe WCF bindings<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l6 level1 lfo3; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Include real-world perf-test results, step by step guide<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Administration - Update</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Virtualization (HyperV)<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Best Practice Analyser<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">MSBuild<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="TEXT-INDENT: -21pt; MARGIN: auto auto auto 42pt; mso-list: l9 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">SQL2008 differences<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt 72pt; mso-add-space: auto" class=MsoNormalCxSpFirst><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p>&nbsp;</o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">BizTalk Best Practices - Update<o:p></o:p></SPAN></B></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l1 level1 lfo13; mso-add-space: auto" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Add further best practices, small and large – with evidence as to why<B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P style="MARGIN: auto auto 0pt; mso-add-space: auto" class=MsoNormalCxSpFirst><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">Cloud Services (BizTalk Services, SSDS, etc.) - New Chapter</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Overview<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Connectivity<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Identity<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cloud Workflow<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">SSDS<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto auto auto 36pt; mso-list: l4 level1 lfo1; mso-add-space: auto" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt">Cloud Commerce scenario code and walkthrough<BR style="mso-special-character: line-break"><BR style="mso-special-character: line-break"><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB">First look at Oslo futures - New Chapter</SPAN></B><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; COLOR: red; FONT-SIZE: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-GB"><o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: auto 0cm auto 36pt; mso-list: l12 level1 lfo14" class=MsoListParagraph><SPAN style="FONT-FAMILY: Symbol; FONT-SIZE: 10pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><SPAN style="mso-list: Ignore">·<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-bidi-font-size: 12.0pt">More soon ;-)</SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>Software in the cloud: The Relay Service</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/software-in-the-cloud-the-relay-service</link>
      <pubDate>Wed, 24 Sep 2008 09:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2008/09/24/software-in-the-cloud-the-relay-service/</guid>
      <description><![CDATA[I’m now back from a trip to Seattle a few weeks back where I attended a huge week-long Microsoft...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I presented three times during the week, two of the presentations were “Software in the cloud” sessions which received fantastic feedback.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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).</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>I presented a fictional but realistic architecture using <I style="mso-bidi-font-style: normal">today’s</I> 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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>I’m going to present this scenario and the resulting solution in a series of blog posts, this being the first.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>Before we get started I want to introduce the BizTalk Services Relay which by itself is incredibly powerful but often overlooked.&nbsp; There is an SDK to download and play with via <A href="https://www.biztalk.net/">https://www.biztalk.net</A></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>You’ve got any number of options generally involving any combination of leased lines, VPNs, proxy configuration, etc.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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?</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>This is where the Relay comes into play; the first step is for&nbsp;your WCF&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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This step is shown below as step number 1.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>The endpoint address will use a specific “service bus” prefix, e.g: sb://connect.biztalk.net/services/darrenj/OrderService/</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><IMG style="WIDTH: 622px; HEIGHT: 496px" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/08/96/35/89/relayFigure.jpg" original-url="https://blogs.msdn.com/photos/darrenj/images/8963589/original.aspx" width=960 height=720 mce_src="https://blogs.msdn.com/photos/darrenj/images/8963589/original.aspx"></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>Once an endpoint has been registered with the relay service it must be <I style="mso-bidi-font-style: normal">kept alive</I> otherwise the socket could of course timeout.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is done through a series of “ping” messages automatically passed under the covers between the relay service and the endpoint.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>Once an endpoint is registered a client can then invoke the service, within Visual Studio you can simply type in the <I style="mso-bidi-font-style: normal">sb://</I><B style="mso-bidi-font-weight: normal"> </B>prefixed address via the usual <I style="mso-bidi-font-style: normal">Add Service Reference</I> dialog and the proxy will be automatically created and configured – neat!</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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).</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>However the relay service knows quite a bit about the two parties.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>When a client communicates with the relay, the relay can again see the dynamic port number being used.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><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">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 <I style="mso-bidi-font-style: normal">port handshaking</I>, this is depicted below and is explained in better detail in <A href="https://www.heise-online.co.uk/security/How-Skype-Co-get-round-firewalls--/features/82481">this</A> great article</SPAN></P>
<P><IMG style="WIDTH: 692px; HEIGHT: 564px" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/08/96/35/90/relayFigureDirect.jpg" original-url="https://blogs.msdn.com/photos/darrenj/images/8963590/original.aspx" width=960 height=720 mce_src="https://blogs.msdn.com/photos/darrenj/images/8963590/original.aspx"></P><FONT face=Calibri>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3>This process is called <A target=_blank href="https://en.wikipedia.org/wiki/NAT_traversal" mce_href="https://en.wikipedia.org/wiki/NAT_traversal">NAT traversal</A> and is used by many things today including MSN Messenger, Groove, Skype, etc.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Some firewalls may not allow NAT traversal at which point the relay will <I style="mso-bidi-font-style: normal">fall back</I> to the original relay pattern.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>As long as both parties can <I style="mso-bidi-font-style: normal">see</I> the internet and therefore the relay service then we’re in business!</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3>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.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>So how about security?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Firewalls are there for a reason and you typically aren’t allowed to punch holes through them.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>So, it must be hard to host a service through the relay?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Well not really, it’s just a bit of WCF configuration on your service an example of which is shown below:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">system.serviceModel</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">bindings</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">relayBinding</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">binding</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"> </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">name</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">default</SPAN>"<SPAN style="COLOR: blue"> </SPAN><SPAN style="COLOR: red">allowBrowsing</SPAN><SPAN style="COLOR: blue">=</SPAN>"<SPAN style="COLOR: blue">true</SPAN>"<SPAN style="COLOR: blue"> </SPAN><SPAN style="COLOR: red">sendTimeout</SPAN><SPAN style="COLOR: blue">=</SPAN>"<SPAN style="COLOR: blue">01:00:00</SPAN>"<SPAN style="COLOR: blue"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">connectionMode</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">RelayedDuplexSession</SPAN>"<SPAN style="COLOR: blue">&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">binding</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">relayBinding</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">bindings</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;!--</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 10pt; mso-no-proof: yes"> Service endpoint using the BizTalk Services relay </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">--&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">endpoint<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">address</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">""<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">binding</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">relayBinding</SPAN>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">contract</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">PaymentService.IPayment</SPAN>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">behaviorConfiguration</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">relayBehavior</SPAN>"<o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">bindingConfiguration</SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">default</SPAN>"<SPAN style="COLOR: blue">/&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">behaviors</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">endpointBehaviors</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">behavior</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"> </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">name</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">relayBehavior</SPAN>"<SPAN style="COLOR: blue">&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">transportClientEndpointBehavior</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"> </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">credentialType</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">UserNamePassword</SPAN>"<SPAN style="COLOR: blue">&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">clientCredentials</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">userNamePassword</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"> </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt; mso-no-proof: yes">userName</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">=</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes">"<SPAN style="COLOR: blue">USERNAME</SPAN>"<SPAN style="COLOR: blue"> </SPAN><SPAN style="COLOR: red">password</SPAN><SPAN style="COLOR: blue">=</SPAN>"<SPAN style="COLOR: blue">PASSWORD</SPAN>"<SPAN style="COLOR: blue">/&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">clientCredentials</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">transportClientEndpointBehavior</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">behavior</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">endpointBehaviors</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">behaviors</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;<BR style="mso-special-character: line-break"><BR style="mso-special-character: line-break"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&lt;/</SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt; mso-no-proof: yes">system.serviceModel</SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes">&gt;</SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>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 </FONT><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"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>To my mind, this opens up some great new opportunities for solutions moving forward, as we’ll see in my next few blog posts </FONT><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"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Cloud Services</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/cloud-services</link>
      <pubDate>Wed, 16 Jul 2008 18:03:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2008/07/16/cloud-services/</guid>
      <description><![CDATA[CSD have just announced Release 12 (R12) of Codename BizTalk Services, Clemens has a good low-down...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>CSD have just announced Release 12 (R12) of Codename BizTalk Services, </FONT><A href="https://blogs.msdn.com/clemensv/" mce_href="https://blogs.msdn.com/clemensv/"><FONT size=3 face=Calibri>Clemens</FONT></A><FONT size=3 face=Calibri> has a good low-down on what’s new </FONT><A href="https://blogs.msdn.com/clemensv/archive/2008/07/15/announcing-the-microsoft-code-name-biztalk-services-r12-release.aspx" mce_href="https://blogs.msdn.com/clemensv/archive/2008/07/15/announcing-the-microsoft-code-name-biztalk-services-r12-release.aspx"><FONT size=3 face=Calibri>here</FONT></A><FONT size=3 face=Calibri>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Remember BizTalk Services != BizTalk.&nbsp; BizTalk isn’t used in the cloud or the client – it’s just a branding thing.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>You can’t use the full toolbox of usual WF activities though but a cut-down selection that the team have supplied.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>These workflows as </FONT><A href="https://blogs.msdn.com/clemensv" mce_href="https://blogs.msdn.com/clemensv"><FONT size=3 face=Calibri>Clemens</FONT></A><FONT size=3 face=Calibri> 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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>The current list of cloud activities are as follows</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudHttpSend</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudHttpReceive</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudIfElse</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudSequence</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudServiceBusSend</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudDelay</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore"><FONT size=3>·</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>CloudWhile</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>You must copy/paste the XOML from Visual Studio into a HTTP form available when you sign into </FONT><A href="https://www.biztalk.net/" mce_href="https://www.biztalk.net/"><FONT size=3 face=Calibri>www.biztalk.net</FONT></A><FONT size=3 face=Calibri>, clunky but effective for now!</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>There is a handy </FONT><SPAN style="FONT-FAMILY: Consolas">WorkflowClient</SPAN><FONT face=Calibri> 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.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>I’ll post a little sample shortly to get you going straight away but in the meantime check out the samples provided in the </FONT><A href="https://biztalk.net/DownloadSDK.aspx" mce_href="https://biztalk.net/DownloadSDK.aspx"><FONT color=#0000ff size=3 face=Calibri>BizTalk Services SDK</FONT></A><FONT size=3 face=Calibri>.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Long time, no blog!</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/long-time-no-blog</link>
      <pubDate>Wed, 16 Jul 2008 17:50:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2008/07/16/long-time-no-blog/</guid>
      <description><![CDATA[Yes, It’s been quite a while since my last blog post!&nbsp;&nbsp;A lot has been happening internally...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>Yes, It’s been quite a while since my last blog post!&nbsp;&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 <A class="" href="https://www.microsoft.com/uk/adc" mce_href="https://www.microsoft.com/uk/adc">Application Development Consulting</A> (ADC) team.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>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 </FONT><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"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>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.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3 face=Calibri>My other pet project has been a BizUnit DSL tool to enable graphical visualization and editing of BizUnit tests, again more soon hopefully</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>64bit support for the BizTalk Orchestration Profiler and BizTalk Documenter</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/64bit-support-for-the-biztalk-orchestration-profiler-and-biztalk-documenter</link>
      <pubDate>Wed, 28 Nov 2007 06:36:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2007/11/28/64bit-support-for-the-biztalk-orchestration-profiler-and-biztalk-documenter/</guid>
      <description><![CDATA[A number of you have contacted me in recent months to report that the BizTalk Orchestration Profiler...]]></description>
      <content:encoded><![CDATA[<P>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.</P>
<P>I've uploaded a planned release for both&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&nbsp;it works on your&nbsp;servers?&nbsp; Please let me know either way - I'll then&nbsp;make the releases as the default released versions once I've got validation.</P>
<P>You can find the releases at the following URLs:</P>
<P><A href="https://www.codeplex.com/BizTalkDocumenter/Release/ProjectReleases.aspx?ReleaseId=8689">https://www.codeplex.com/BizTalkDocumenter/Release/ProjectReleases.aspx?ReleaseId=8689</A></P><U><FONT color=#800080><A href="https://www.codeplex.com/BiztalkOrcProfiler/Release/ProjectReleases.aspx?ReleaseId=8688">https://www.codeplex.com/BiztalkOrcProfiler/Release/ProjectReleases.aspx?ReleaseId=8688</A></FONT></U> 
<P>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.&nbsp; Let me know if the Word output doesn't work as expected for you when compared to CHM output.</P>
<P>Please keep any feature suggestions coming...</P>]]></content:encoded>
    </item>
    <item>
      <title>How everyone should test their BizTalk based solutions: Presentation</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/how-everyone-should-test-their-biztalk-based-solutions-presentation</link>
      <pubDate>Thu, 01 Nov 2007 14:06:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2007/11/01/how-everyone-should-test-their-biztalk-based-solutions-presentation/</guid>
      <description><![CDATA[I've managed to find somewhere to store the presentation deck I delivered yesteday and you can now...]]></description>
      <content:encoded><![CDATA[<P>I've managed to find somewhere to store the presentation deck I delivered yesteday and you can now download it from <A class="" href="https://www.darrenjblog.members.winisp.net/FT306DarrenJefford.zip" mce_href="https://www.darrenjblog.members.winisp.net/FT306DarrenJefford.zip">here</A>.&nbsp; I've also added the slides I had to cut from the presentation to enable it to fit within the SOA &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.</P>
<P>There's of course more detail in the <A class="" href="https://www.amazon.com/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=pd_bbs_sr_1/105-7977162-6242020?ie=UTF8&amp;s=books&amp;qid=1193940547&amp;sr=8-1" mce_href="https://www.amazon.com/Professional-BizTalk-Server-Darren-Jefford/dp/0470046422/ref=pd_bbs_sr_1/105-7977162-6242020?ie=UTF8&amp;s=books&amp;qid=1193940547&amp;sr=8-1">book</A>!&nbsp; Enjoy.</P>]]></content:encoded>
    </item>
    <item>
      <title>Codename “Oslo”</title>
      <link>https://docs.microsoft.com/archive/blogs/darrenj/codename-oslo</link>
      <pubDate>Wed, 31 Oct 2007 19:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Darren Jefford]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/darrenj/2007/10/31/codename-oslo/</guid>
      <description><![CDATA[Microsoft has just made the first public announcement of “Oslo” at the SOA and BPM conference, at a...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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”.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>Therefore Oslo != Just BizTalk.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>Official press release information can be found </FONT><A href="https://www.microsoft.com/presspass/events/soa-bpm/materials.mspx" mce_href="https://www.microsoft.com/presspass/events/soa-bpm/materials.mspx"><FONT face=Calibri size=3>here</FONT></A><FONT face=Calibri size=3> and here along with a good overview by </FONT><A href="https://www.directionsonmicrosoft.com/samples/Olso1107.pdf" mce_href="https://www.directionsonmicrosoft.com/samples/Olso1107.pdf"><FONT face=Calibri size=3>Directions on Microsoft</FONT></A><FONT face=Calibri size=3> which you can find </FONT><A href="https://www.directionsonmicrosoft.com/samples/Olso1107.pdf" mce_href="https://www.directionsonmicrosoft.com/samples/Olso1107.pdf"><FONT face=Calibri size=3>here</FONT></A><FONT size=3><FONT face=Calibri>, but here’s my take for what’s it worth! </FONT><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"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><FONT face=Calibri>Oslo is driven out of Connected Systems Division (CSD) which is the almagamtion of&nbsp;the BizTalk, WCF, WF,&nbsp;ASMX, MSMQ, .NET&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.).&nbsp;&nbsp; It's a huge investment.&nbsp; </FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><FONT face=Calibri>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).</FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><FONT face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><FONT face=Calibri>There has been lots of modelling attempts across the years across the industry; two things stand out for me as to why.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.).</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>All of this is fine but don’t we end up with a stale description of a solution?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Not in Oslo as the model is<B style="mso-bidi-font-weight: normal"> executed</B>; therefore the model has to be up-to-date as its being used to execute the solution.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is where the Metadata repository comes in which leverages SQL Server.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.&nbsp; </FONT><FONT face=Calibri size=3>Precise technical detail of how all this hangs together isn’t available right now but more information will be available publically in due course.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>We have publish and subscribe, correlation, transformation all in the box.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><FONT face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>This is expensive and normally only implemented by the larger organisations.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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?</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>This in part is offered today through the </FONT><A href="https://labs.biztalk.net/" mce_href="https://labs.biztalk.net/"><FONT face=Calibri size=3>BizTalk Labs</FONT></A><FONT face=Calibri size=3> preview of the </FONT><A href="https://labs.biztalk.net/connectivity.aspx" mce_href="https://labs.biztalk.net/connectivity.aspx"><FONT face=Calibri size=3>BizTalk Connectivity Services</FONT></A><FONT face=Calibri size=3>, 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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><FONT face=Calibri>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></FONT></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>The key here is that the Connectivity Services<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>are doing all the hard NAT stuff for you <B style="mso-bidi-font-weight: normal">and</B> the service is hosted by Microsoft in the cloud.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Moving forward there is a commitment to provide workflow hosting.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>How this will be charged for hasn’t been agreed at this time.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.<SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>This is an interesting choice for organisations that currently maintain large datacenters and have to worry about monitoring, resilience and the like.&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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>So, all of that aside – your probably thinking about BizTalk today?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Should you continue to use it, will any new investment in BizTalk Orchestrations, Rules Engine, etc. be redundant in a few years time?<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>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.</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>So, in short carry on using Biz Talk.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>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....)</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT face=Calibri size=3>That’s it for now, will provide some more thoughts and info as time goes on.</FONT></P>]]></content:encoded>
    </item>
  </channel>
</rss>