<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>gridGISTICS Blog</title>
    <description>extreme performance, extreme simplicity </description>
    <link>http://blog.gridgistics.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.Net Syndication Generator 1.0.0.0 (http://dotnetblogengine.net/)</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://blog.gridgistics.net/opml.axd</blogChannel:blogRoll>
    <dc:creator>gridgistics</dc:creator>
    <dc:title>gridGISTICS Blog</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/grid-computing" type="application/rss+xml" /><item>
      <title>Four IIS7 Modules you should be &amp;quot;Aware&amp;quot; of</title>
      <description>&lt;p&gt;IIS7 introduces a great number of features which are greatly appreciated.&amp;#160; (Yes I know Apache already had them - but I'm not going there).&amp;#160; My favorite thing about IIS7 is the module based architecture.&amp;#160; Its extensibility is allowing the IIS team and the community to drum up some really cool modules.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;AwareReverseProxyModule&lt;/h2&gt;  &lt;p&gt; This has enabled gridGISTICS to develop a &amp;quot;Reverse proxy&amp;quot; module which takes the incoming IIS request and hands it off DIRECTLY to an Aware service.&amp;#160; Better yet - it intelligently find the appropriate service with all the load balancing and ninjaness you'd expect from Aware.&amp;#160; You can even choose what services to expose to the web directly from the Aware Enterprise Manager.&amp;#160; How could this get even better?&amp;#160; You already have it if you are using the latest version of Aware - you just need to install the module.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;URL Rewrite Module&lt;/h2&gt;  &lt;p&gt;Almost Mod Rewrite (mod_rewrite) for IIS.&amp;#160; Enables flexibility of URLs and beats the snot out of the HTTP redirection module that ships with IIS7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/460/using-url-rewrite-module/" target="_blank"&gt;linky linky&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Application Request Routing Module&lt;/h2&gt;  &lt;p&gt;(I totally stole this paragraph from the link below)&lt;/p&gt;  &lt;p&gt;Microsoft Application Request Routing for IIS7 is a proxy based routing module that forwards HTTP requests to content servers based on HTTP headers and server variables, and load balance algorithms.&amp;#160; Application Request Routing can be used to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Increase application availability and scalability. &lt;/li&gt;    &lt;li&gt;Better utilize content server resources. &lt;/li&gt;    &lt;li&gt;Facilitate application deployment including pilot management and A/B testing. &lt;/li&gt;    &lt;li&gt;Lower management costs and create opportunities for shared hosters.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/489/using-the-application-request-routing-module/" target="_blank"&gt;linky linky&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;PowerShell Provider&lt;/p&gt;  &lt;p&gt;I'd like to pretend that I am all savvy with PowerShell - but I just haven't personally tapped its power yet.&amp;#160; However - my team members that are ninjas with it - tell me its the only way to go.&amp;#160; The IIS team thinks so too and here is their module for managing IIS via powershell.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/447/managing-iis-with-the-iis-70-powershell-provider/" target="_blank"&gt;linky linky&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:848f8519-24fe-41a6-9b1f-bb7692dc4d7f" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/iis7" rel="tag"&gt;iis7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/modules" rel="tag"&gt;modules&lt;/a&gt;,&lt;a href="http://technorati.com/tags/gridgistics" rel="tag"&gt;gridgistics&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/-aNQ1WG_cl4/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/08/Four-IIS7-Modules-you-should-be-quot3bAwarequot3b-of.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=85d38dbc-393f-4a03-9ec5-a2758bb40a14</guid>
      <pubDate>Thu, 14 Aug 2008 12:32:22 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=85d38dbc-393f-4a03-9ec5-a2758bb40a14</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=85d38dbc-393f-4a03-9ec5-a2758bb40a14</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/08/Four-IIS7-Modules-you-should-be-quot3bAwarequot3b-of.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=85d38dbc-393f-4a03-9ec5-a2758bb40a14</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=85d38dbc-393f-4a03-9ec5-a2758bb40a14</feedburner:origLink></item>
    <item>
      <title>LINQPad - Go Get It!</title>
      <description>&lt;p&gt;Really wanted to shed some light on a tool we recently discovered.&amp;#160; Its free, its well written and so far I have yet to break it.&amp;#160; ( a skill I normally possess)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.linqpad.net/" target="_blank"&gt;LINQPad&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here is why you should stop reading this and download it already. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Its Free&lt;/li&gt;    &lt;li&gt;Query DB's using LINQ without SQL Management Studio on the box.&lt;/li&gt;    &lt;li&gt;Doesn't require Visual Studio&lt;/li&gt;    &lt;li&gt;2 MB Executable (no install required) &lt;/li&gt;    &lt;li&gt;Can be used as a C#/VB.NET scratch pad.&lt;/li&gt;    &lt;li&gt;Can be used as a mean calculator.&lt;/li&gt;    &lt;li&gt;Quick test harness for a C#/VB snippets&lt;/li&gt;    &lt;li&gt;It contains tons of free examples and even demo data to hone your LINQ skilz&lt;/li&gt;    &lt;li&gt;O and yeah its Free&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Found it really useful to do ad-hoc queries on Aware audits.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/LINQPadGoGetIt_13C8A/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="284" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/LINQPadGoGetIt_13C8A/image_thumb.png" width="429" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7b96359a-49a3-4f84-9952-54b535fde7a5" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/tool" rel="tag"&gt;tool&lt;/a&gt;,&lt;a href="http://technorati.com/tags/linq" rel="tag"&gt;linq&lt;/a&gt;,&lt;a href="http://technorati.com/tags/linqpad" rel="tag"&gt;linqpad&lt;/a&gt;&lt;/div&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Kudos to Robert who told me about this thing ;)&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/pE8KG9qZ3Tg/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/06/LINQPad---Go-Get-It!.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=f8be253f-f484-4d41-b253-37c501038023</guid>
      <pubDate>Fri, 13 Jun 2008 01:44:23 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=f8be253f-f484-4d41-b253-37c501038023</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=f8be253f-f484-4d41-b253-37c501038023</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/06/LINQPad---Go-Get-It!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=f8be253f-f484-4d41-b253-37c501038023</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=f8be253f-f484-4d41-b253-37c501038023</feedburner:origLink></item>
    <item>
      <title>Microsoft Web Deployment Tool - Beta 1 Go Live</title>
      <description>&lt;p&gt;&lt;a href="http://blogs.iis.net/msdeploy/archive/2008/05/13/web-deployment-tool-beta-1-go-live-just-released.aspx" target="_blank"&gt;Web Deployment Tool&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It slices, it dices, it synchs and snapshots - the IIS team has released a tool which eases the pain of site migration.&lt;/p&gt;  &lt;h3&gt;Benefits:&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Simplify web farm deployments &lt;/li&gt;    &lt;li&gt;Migrate sites or entire servers &lt;/li&gt;    &lt;li&gt;Snapshot sites or entire servers for backups or versioning &lt;/li&gt;    &lt;li&gt;Determine the differences between two sites or servers &lt;/li&gt;    &lt;li&gt;Determine what components your site depends on&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Features:&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Synchronization of IIS 6.0/IIS 7.0:      &lt;br /&gt;&lt;/strong&gt;The sync operation provides administrators with a way to quickly synchronize a site or server and deploy changes to existing sites and servers. A synchronization allows you to synchronize one source with one destination. For example, you can synchronize two directory paths or two web servers. The sync can be performed with local or remote objects. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Snapshot of IIS 6.0/IIS 7.0:&lt;/strong&gt;    &lt;br /&gt;The snapshot, or archive, functionality allows administrators or developers to quickly take an archive of their web site or server for rollback, restore or backup purposes. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Migration from IIS 6.0:      &lt;br /&gt;&lt;/strong&gt;The migrate operation provides administrators with a way to migrate sites or entire servers from IIS 6.0 to IIS 7.0, including their settings and content. A migration is essentially a way of synchronizing, filtered by migration rules. For example, when migrating from IIS 6.0 to IIS 7.0, MS Deploy will check the value of some properties and see if it is the IIS 6.0 default. If it is the default, such as the log files directory, it will instead use the value set on the IIS 7.0 server. This enables a server admin to maintain new settings on IIS 7.0 while moving sites or applications from IIS 6.0. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Analysis of IIS 6.0 Installed Features:      &lt;br /&gt;&lt;/strong&gt;The analyze operation allows administrators to check what components are installed on the source server. In this way, they can determine if features are present that they will need in IIS 7.0 or that require more advanced setup than simply copying files. For example, ASP.NET requires more than a file copy and will need to be installed on the destination server. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Troubleshooting and Validation Features:      &lt;br /&gt;&lt;/strong&gt;For validating an operation, the -whatif flag allows administrators to see what actions would happen when they perform an operation. This is especially useful for performing sync or migration, when they want to validate what changes will be made before performing them. For troubleshooting, the -verboseLevel flag allows administrators to get rich detail about what operations are being performed, and upon failure, the ability to diagnose the problem. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NEW FEATURES in this version!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PowerShell Support:     &lt;br /&gt;&lt;/strong&gt;PowerShell cmdlets are included, allowing you to use the Microsoft Web Deployment Tool conveniently with PowerShell. For more information about how the PowerShell cmdlets work, see the Help file as well as the Microsoft Web Deployment Tool walkthroughs.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Enhanced Dependency Checking:     &lt;br /&gt;&lt;/strong&gt;The dependencies that are checked for a web site or server can now be viewed on IIS 7.0 as well as IIS 6.0. They can be turned off on a granular level, such as disabling the drive space dependency check while still running the other dependency checks, or disabling the check for a single ISAPI script map. Additionally, when you view dependencies, you will be able to see the &amp;#8220;trigger&amp;#8221; for the dependency (what location(s) in configuration caused the Microsoft Web Deployment Tool to say that the module/component is a potential dependency).&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/fsJBbUy8D00/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/06/Microsoft-Web-Deployment-Tool---Beta-1-Go-Live.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=067d9640-9b71-470e-a7ee-d75e0f4791e2</guid>
      <pubDate>Tue, 10 Jun 2008 10:50:08 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=067d9640-9b71-470e-a7ee-d75e0f4791e2</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=067d9640-9b71-470e-a7ee-d75e0f4791e2</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/06/Microsoft-Web-Deployment-Tool---Beta-1-Go-Live.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=067d9640-9b71-470e-a7ee-d75e0f4791e2</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=067d9640-9b71-470e-a7ee-d75e0f4791e2</feedburner:origLink></item>
    <item>
      <title>Aware Server VS.NET Productivity Chart</title>
      <description>&lt;p class="MsoSubtitle"&gt;
I recently did a quite lengthy post on 67% increase in productivity.&amp;nbsp; 
&lt;/p&gt;
&lt;p class="MsoSubtitle"&gt;
&lt;a href="http://blog.gridgistics.net/post/2008/05/Aware-Server-6725-More-Productive-than-VSNET.aspx" title="http://blog.gridgistics.net/post/2008/05/Aware-Server-6725-More-Productive-than-VSNET.aspx"&gt;http://blog.gridgistics.net/post/2008/05/Aware-Server-6725-More-Productive-than-VSNET.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p class="MsoSubtitle"&gt;
I just wanted to post a quick summary based on that post.
&lt;/p&gt;
&lt;table border="1" cellspacing="0" cellpadding="0" class="MsoTableLightGridAccent1" style="border-collapse: collapse; border: medium none"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 2.25pt solid"&gt;&lt;strong&gt;&lt;span&gt;Aware Server &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 2.25pt solid"&gt;&lt;strong&gt;&lt;span&gt;VS.NET 2008 &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 2.25pt solid"&gt;&lt;strong&gt;&lt;span&gt;Result &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Built in F5 debugging of services and workflows.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Create your service, then configure your environment, and then create and code your testharness.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpFirst"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server 54% faster to develop WCF services.
			&lt;/p&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpMiddle"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server &amp;ndash; now prior WCF knowledge required.
			&lt;/p&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpLast"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server treats workflow development (WF) the same as service (WCF) development.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			One click deployment &amp;ndash; Any environment.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Deploy to your machine running IIS.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpFirst"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server is &amp;ldquo;One Click&amp;rdquo; deployment of services.
			&lt;/p&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpLast"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server allows you to quickly test your services locally, and then deploy them to be shared with all developers.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Versioning services and running them side by side.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			No built in versioning capabilities
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server will let you easily version and run those versions.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Provisioned endpoints.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Developer must create the endpoints.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware abstracts protocol from the developer and puts it into the hands of operations.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Automatic service call load balancing
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You need to setup and configure your own load balancing solution.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware automatically scales your services by load balancing your service calls across all machines running your services.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Provisioning Conditions.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You need to setup your service on every machine you want it to run on.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Setting up Aware Services to run on one server, or 1,000 servers.&lt;span&gt;&amp;nbsp; &lt;/span&gt;One policy will take care of all deployment and configuration for ALL of your servers.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Re-deployment will automatically run your new code.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Re-deployment is only local on your own machine.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;If an Aware Server policy is setup to run your service on 5 machines, when you redeploy that service Aware Server will automatically re-deploy the new code to all 5 machines.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Provisioning time schedules.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You would have to code/manage a schedule yourself.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server automatically will run services when you want them to run, where you want them to run.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Zero configuration.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You need to know the URL of the machine of the services you wish to call
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server was designed from the ground up with Services Virtualization in mind to eliminate service location configuration.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			IIS is not required, Although you can use IIS as well.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			IIS is required to host your services.
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server offers you the flexibility of using whatever you hosting model you want.
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b2c6540e-4c88-44f8-a274-2c65b6414463" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Aware%20Server"&gt;Aware Server&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/gridGISTICS"&gt;gridGISTICS&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/VS.NET%20Productivity"&gt;VS.NET Productivity&lt;/a&gt;
&lt;/div&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/cSm9STMpWIo/post.aspx</link>
      <author>Darrell Legault</author>
      <comments>http://blog.gridgistics.net/post/2008/05/Aware-Server-VSNET-Productivity-Chart.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=96e6aa2c-e776-4d5a-9633-bdac6af6e970</guid>
      <pubDate>Wed, 14 May 2008 12:45:00 -0400</pubDate>
      <category>Aware Server</category>
      <category>code reduction</category>
      <category>gridGISTICS</category>
      <dc:publisher>Darrell Legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=96e6aa2c-e776-4d5a-9633-bdac6af6e970</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=96e6aa2c-e776-4d5a-9633-bdac6af6e970</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/Aware-Server-VSNET-Productivity-Chart.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=96e6aa2c-e776-4d5a-9633-bdac6af6e970</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=96e6aa2c-e776-4d5a-9633-bdac6af6e970</feedburner:origLink></item>
    <item>
      <title>Aware Server ASP.NET Deployment - 5 Reasons Why You Need It.</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;ASP.NET is the most widely used application development environment within VS.NET.&amp;#160; As such, people waste much time designing and building ways to help them deploy their applications to their web farms (from staging, to QA, to production).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of Aware Server's powerful features is the ability to package and deploy and configure ASP.NET applications across many machines and may environments.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Details on how can be found here &lt;a title="Aware Server ASP.Net Web Deployment" href="http://blog.gridgistics.net/post/2008/05/Aware-Server-ASPNet-Web-Deployment.aspx"&gt;Aware Server ASP.Net Web Deployment&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The following are 5 simple reasons why Aware Server ASP.Net Deployment is 100 times easier and better than any other web deployment tool.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Command line vs UI point and click&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;Aware Server:&amp;#160; Intuitive GUI allows for point, click, run your web. &lt;/li&gt;        &lt;li&gt;MS Deploy: learning curve of what commands to do what, then write your script. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Setup of tools (remote service)&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;Aware Server: No tools, just publish, then deploy your ASP.NET application all of the machines at once. &lt;/li&gt;        &lt;li&gt;MS Deploy:&amp;#160; msi installation, remote service setup, scripting etc... &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Versioning&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;Aware Server:&amp;#160; Publish another version to your environment, then deploy it.&amp;#160; Want to rollback? Just use the Aware wizard and republish your previous version. &lt;/li&gt;        &lt;li&gt;MS Deploy: Another script, with hard coded configuration of source/remote machines.&amp;#160; And hope that the old code was saved somewhere safe. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Environments&lt;/strong&gt;       &lt;ol&gt;       &lt;li&gt;Aware Server: Just deploy your manifest to the environment, then publish.&amp;#160; Then just as you would do with services or business processes, use the Aware Promotion wizard to promote your ASP.NET application to another environment. &lt;/li&gt;        &lt;li&gt;MS Deploy:&amp;#160; determine what machines are apart of an environment, write a script that will use those machines, as the environment changes, re-write your script. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Multi Machine Publishing &lt;/strong&gt;      &lt;ol&gt;       &lt;li&gt;Aware Server:&amp;#160; Just select the IIS machines you want to target and publish, no coding or scripting. &lt;/li&gt;        &lt;li&gt;MS Deploy:&amp;#160; You need to know each machine and then develop script to deploy to those machines. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:561e80ee-07cd-4e92-93a9-7258fbff241f" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Aware%20Server" rel="tag"&gt;Aware Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/gridGISTICS" rel="tag"&gt;gridGISTICS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET%20Deployment" rel="tag"&gt;ASP.NET Deployment&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VS.NET%20productivity" rel="tag"&gt;VS.NET productivity&lt;/a&gt;&lt;/div&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:B3E14793-948F-49af-A347-D19C374A7C4F:de7c9dfc-383c-41e3-afaa-11ba448404ce" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt; &lt;script type="text/javascript"&gt;&lt;!--
digg_title = 'Aware Server ASP.NET Deployment - 5 Reasons Why You Need It';
digg_bodytext = '5 simple reasons why Aware Server ASP.Net Deployment is 100 times easier and better than any other web deployment tool.';
digg_topic = 'software';
//--&gt;&lt;/script&gt; &lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt; &lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/09YWaYaRcck/post.aspx</link>
      <author>darrell legault</author>
      <comments>http://blog.gridgistics.net/post/2008/05/Aware-Server-ASPNET-Deployment---5-Reasons-Why-You-Need-It.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=5f5818f2-04dc-4f9a-a78e-f21a92e720e9</guid>
      <pubDate>Wed, 14 May 2008 12:25:00 -0400</pubDate>
      <dc:publisher>darrell legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=5f5818f2-04dc-4f9a-a78e-f21a92e720e9</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=5f5818f2-04dc-4f9a-a78e-f21a92e720e9</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/Aware-Server-ASPNET-Deployment---5-Reasons-Why-You-Need-It.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=5f5818f2-04dc-4f9a-a78e-f21a92e720e9</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=5f5818f2-04dc-4f9a-a78e-f21a92e720e9</feedburner:origLink></item>
    <item>
      <title>Service Extensions</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Service extensions inside &lt;strong&gt;Aware Server v3 &lt;/strong&gt;can be used to build services that can have external algorithms or code attached to them by application administrators in a Lego type fashion.&amp;#160; The blog refers to the &lt;strong&gt;Extensions&lt;/strong&gt; sample that ships with the Aware SDK.&lt;/p&gt;  &lt;p&gt;Imagine the following service contract:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;[&lt;strong&gt;ServiceContract&lt;/strong&gt;(Namespace = &lt;span class="str"&gt;&amp;quot;urn:mynamespace&amp;quot;&lt;/span&gt;, Name = &lt;span class="str"&gt;&amp;quot;InsuranceClaimsService&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; IInsuranceClaimsService&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    [&lt;strong&gt;OperationContract&lt;/strong&gt;]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    Double ComputeTotalClaim(String claimNumber, String state, Double carValue);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Now lets define a service extension point for our service.&amp;#160; Imagine we want to be able to plug different tax calculators into different instances of our service without having to recompile or touch our insurance claims service implementation.&amp;#160; So lets define a TaxCalculator extension that our insurance engine will use to compute the tax associated to a car.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;/// This interface will be our extension point for allowing others to provide&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;/// TaxCalculatorExtension implementations&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;[&lt;strong&gt;DataContract&lt;/strong&gt;]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;[&lt;strong&gt;Serializable&lt;/strong&gt;]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;abstract&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; TaxCalculatorExtension : ServiceExtension&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;manifestReference&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; Boolean CanBeAssociatedTo(ManifestReference manifestReference)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="rem"&gt;// We can open the .aware file as xml in the ExtenableServices project to get the guid for that&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="rem"&gt;// service.  &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="rem"&gt;// We only want to be associated to that type of service.  This limits what the management console&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="rem"&gt;// shows to the user for associating extensions to your service.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; manifestReference.Id == &lt;span class="kwrd"&gt;new&lt;/span&gt; Guid(&lt;span class="str"&gt;&amp;quot;c7ff37eb-d286-475f-ad78-097e963a5d68&amp;quot;&lt;/span&gt;) &amp;amp;&amp;amp; manifestReference.Version == &lt;span class="str"&gt;&amp;quot;1.0.0.0&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;state&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;carValue&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; Double ComputeTax(String state, Double carValue)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; 0.0;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; Boolean AllowMultiple&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        get&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            &lt;span class="rem"&gt;// We only want one of these at most attached to our service&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;CanBeAssociatedTo &lt;/strong&gt;routine allows you to ensure that derived versions of this extension type are only applied to your service (guid and version make up a unique manifest inside &lt;strong&gt;Aware&lt;/strong&gt;).&amp;#160; The Aware Enterprise Manager will use this routine to limit the extensions that can be applied to a service.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;AllowMultiple&lt;/strong&gt; allows you state that multiple of this extension type may be applied or just one.&amp;#160; In our sample we want at most one tax calculator extension attached to our service.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;ComputeTax&lt;/strong&gt; routine and any other &lt;strong&gt;virtual&lt;/strong&gt; routines in this class define our extension points for tax calculators. 

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;For good measure let's provide a default implementation of our tax extension.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;internal&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DefaultTaxCalulator : &lt;strong&gt;TaxCalculatorExtension&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;state&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;carValue&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; Double ComputeTax(String state, Double carValue)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; carValue * .07;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;In our host file for our service we can override the &lt;strong&gt;AddHostExtensions&lt;/strong&gt; event and attach our default extension if one has not been added to us already.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; InsuranceClaimsServiceHost_AddHostExtensions(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, HostExtensionsEventArgs e)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="rem"&gt;// Check for an extension added from the outside otherwise add our default one&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Extensions.Find&amp;lt;TaxCalculatorExtension&amp;gt;() == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        e.Extensions.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DefaultTaxCalulator()); &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="rem"&gt;// Extensions are accessible in any operation using OperationContext.Current.Host.Extensions.Find&amp;lt;TaxCalculatorExtension&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Now take a look at the implementation of our &lt;strong&gt;IInsuranceClaimsService&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;Double IInsuranceClaimsService.ComputeTotalClaim(String claimNumber, String state, Double carValue)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="rem"&gt;// We know at least our DefaultTaxCalculator will be here&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    TaxCalculatorExtension taxCalculator = OperationContext.Current.Host.Extensions.Find&amp;lt;TaxCalculatorExtension&amp;gt;(); &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    &lt;span class="rem"&gt;// Use the tax calculator to finish the computation.  this could be our default one or &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    &lt;span class="rem"&gt;// one provided from the outside&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; taxCalculator.ComputeTax(state, carValue) + 15000;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Notice how use the Extensions.Find method which is native to WCF on the current &lt;strong&gt;OperationContext&lt;/strong&gt;.&amp;#160; We grab our extension and call its compute tax routine.&amp;#160; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Now lets implement an extension on the outside.&amp;#160; To do this we create a new Service Extension project (project template that ships with Aware). &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;After adding a reference to our shared library (contains both the service contracts and service extension definitions) we implement a greedy tax calculator which returns 50% tax every time. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;[DataContract]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;[Serializable]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; GreedyTaxCalculator : &lt;strong&gt;TaxCalculatorExtension&lt;/strong&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;    &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; GreedyTaxCalculator()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ToString()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; Description;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;state&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;carValue&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; Double ComputeTax(String state, Double carValue)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;strong&gt;carValue * .5&lt;/strong&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;    [Browsable(&lt;span class="kwrd"&gt;false&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; String Category&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        get&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Insurance Tax Calculators&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;    [Browsable(&lt;span class="kwrd"&gt;false&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; String Name&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;        get&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Greedy Tax Calculator&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;    } &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;    [Browsable(&lt;span class="kwrd"&gt;false&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; String Description&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;        get&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;            &lt;span class="rem"&gt;// This will show in the notes column in the management console&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Takes the car value and return 50% tax&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The overridden properties above are only used by the tools to provide verbose descriptions for this extension.&amp;#160; After this we are done and ready to test.&amp;#160; Publish both your service and your service extensions projects into Aware.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="106" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_thumb_8.png" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;As shown above they are both deployed into Aware.&amp;#160; Next we need to provision 2 instances of our Insurance Claims Service.&amp;#160; One that uses the default tax calculator and one that uses the greedy one.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;To do this go into the Aware Enterprise Manager and go to the &lt;strong&gt;Service Provisioning Policies&lt;/strong&gt; tab.&amp;#160; Click the 'Create New' button to create a new provisioning policy.&amp;#160; Enter 'Insurance Claims' for the name of the policy and switch to the &lt;strong&gt;Included Service Manifests&lt;/strong&gt; tab.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="368" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_thumb_4.png" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Add our service by clicking the 'Add Service Manifest' button and enter an additional attribute in the Additional Attributes section with a key of &lt;strong&gt;Tax&lt;/strong&gt; and a value of &lt;strong&gt;Default.&amp;#160; &lt;/strong&gt;Then add our same service again.&amp;#160; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="369" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_thumb_5.png" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;For the second instance of our service add an additional attribute with a key of &lt;strong&gt;Tax&lt;/strong&gt; and a value of &lt;strong&gt;Greedy&lt;/strong&gt;.&amp;#160; Before clicking save switch to the &lt;strong&gt;Extensions&lt;/strong&gt; tab in the lower section of the screen.&amp;#160; Click the &lt;strong&gt;Add Extension &lt;/strong&gt;and select the Greedy Tax Calculator from the popup and click Apply.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="368" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_thumb_3.png" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Save &lt;/strong&gt;and switch to the Service tab in the Enterprise Manager to see that we have 2 instances of our insurance service running and that each have an attribute attached to them with a key of &lt;strong&gt;Tax&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="387" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_thumb_6.png" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;We can then use this attribute to route requests to different instances of our service.&amp;#160; The client code is listed below.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;                &lt;strong&gt;ServiceAttributes&lt;/strong&gt; attributes = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;strong&gt;ServiceAttributes&lt;/strong&gt;();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                attributes[&lt;span class="str"&gt;&amp;quot;Tax&amp;quot;&lt;/span&gt;] = &lt;span class="str"&gt;&amp;quot;Default&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (InsuranceClaimsServiceClient client = &lt;span class="kwrd"&gt;new&lt;/span&gt; InsuranceClaimsServiceClient(attributes))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                    Double result = client.ComputeTotalClaim(&lt;span class="str"&gt;&amp;quot;122344x&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;GA&amp;quot;&lt;/span&gt;, 5600);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                    Console.WriteLine(&lt;span class="str"&gt;&amp;quot;Claim result = {0}&amp;quot;&lt;/span&gt;, result);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                &lt;strong&gt;ServiceAttributes&lt;/strong&gt; attributes2 = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;strong&gt;ServiceAttributes&lt;/strong&gt;();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                attributes2[&lt;span class="str"&gt;&amp;quot;Tax&amp;quot;&lt;/span&gt;] = &lt;span class="str"&gt;&amp;quot;Greedy&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (InsuranceClaimsServiceClient client = &lt;span class="kwrd"&gt;new&lt;/span&gt; InsuranceClaimsServiceClient(attributes2))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                    Double result = client.ComputeTotalClaim(&lt;span class="str"&gt;&amp;quot;122344x&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;GA&amp;quot;&lt;/span&gt;, 5600);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                    Console.WriteLine(&lt;span class="str"&gt;&amp;quot;Claim result = {0}&amp;quot;&lt;/span&gt;, result);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Above we call the insurance service twice.&amp;#160; The first call is directed to the default tax calculator instance and the second is directed to the greedy instance.&amp;#160; If you recall from our implementations above we add 15000 to whatever tax is computed.&amp;#160; So for the first one our default tax will be 15000 + .07 * 5600 = 15392 and for the greedy one it will be 15000 + .5 * 5600 = 17800.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_16.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="264" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ServiceExtensions_A70E/image_thumb_7.png" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;This really shows off how we can use the same binary bits (deployed service manifest) and change the behavior of the service through configuration and extensions.&amp;#160; Tax algorithms can now be implemented independent of the insurance claims service and can be assembled at provisioning time depending on customer need, etc.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/sshhZMs2UD4/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2008/05/Service-Extensions.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=63cc316b-c5cd-4b28-b162-00b95c26207e</guid>
      <pubDate>Wed, 14 May 2008 09:45:34 -0400</pubDate>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=63cc316b-c5cd-4b28-b162-00b95c26207e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=63cc316b-c5cd-4b28-b162-00b95c26207e</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/Service-Extensions.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=63cc316b-c5cd-4b28-b162-00b95c26207e</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=63cc316b-c5cd-4b28-b162-00b95c26207e</feedburner:origLink></item>
    <item>
      <title>External Windows Workflow Correlated Communication Part 2</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I am finally getting around to completing this two part series on what we have done for you as far as workflow communication goes inside Aware Server v3.0.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you remember from &lt;a href="http://blog.gridgistics.net/post/2007/11/External-Windows-Workflow-Correlated-Communication.aspx"&gt;Part 1&lt;/a&gt; I simply demonstrated what it takes using plain vanilla Windows Workflow to have a workflow instance wait on an correlated event.&amp;#160; To fire an event back into the right workflow instance you need the instance id to load it and fire the event.&amp;#160; This poses a problem when an event may not come in for quite some time.&amp;#160; Where do you store the instance id?&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can either store the instance id in one of your own application tables and look it up every time before firing events or you can use are somewhat simplified approach with Aware Server.&amp;#160; I say simplified because we took it as far as we could.&amp;#160; In our SDK there is an order processing sample so I will refer to that for the rest of this blog entry.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So what have we done for you to make this easier?&amp;#160; For starters we provide our own implementation of the &lt;strong&gt;WorkflowSubscriptionService&lt;/strong&gt; that ships with WF.&amp;#160; The WF runtime detects if an instance of this service is added to the runtime and calls you to tell you about every Activity in an instance that requires correlation.&amp;#160; This allows us to store this information in SQL Server so we can handle the lookups for you at a later time.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Next we assume that anything you are correlating on must be unique.&amp;#160; For example if your system generates an OrderId and you tell the WF runtime that this is the attribute you want to correlate on using&amp;#160; [&lt;b&gt;CorrelationParameter&lt;/b&gt;(&amp;quot;OrderId&amp;quot;)] attribute then we take a hash of your order id and store it for later lookups.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So again lets assume we have the following workflow service interface.&amp;#160; Except now notice we have added some new attributes.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&amp;#160;&lt;/pre&gt;
&lt;/div&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="rem"&gt;/// The [ExposedAutoCorrelationEvent] tells the client generation engine to&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;/// expose these events so the client can call the directly&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="rem"&gt;/// This service must be exposed to the Aware correlation engine via the&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;/// [ExposedWorkflowService(typeof(IOrderWorkflowService), &amp;quot;OrderEngine&amp;quot;)] attribute located&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="rem"&gt;/// in the OrderProcessingProcess.cs file attached to the OrderProcessingProcess.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    [ExternalDataExchange]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    [CorrelationParameter(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; IOrderWorkflowService&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        [CorrelationAlias(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;e.OrderId&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        [&lt;strong&gt;ExposedAutoCorrelationEvent&lt;/strong&gt;]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderCanceled;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        [CorrelationAlias(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;e.OrderId&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        [&lt;strong&gt;ExposedAutoCorrelationEvent&lt;/strong&gt;]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderShipped;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;        [CorrelationAlias(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;e.OrderId&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        [&lt;strong&gt;ExposedAutoCorrelationEvent&lt;/strong&gt;]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderProcessed;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        &lt;span class="rem"&gt;/// This event will be fired from the Host.cs file in the ProcessStarted event.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        &lt;span class="rem"&gt;/// This is necessary to initialize the Correlation engine for a particular workflow instance&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        &lt;span class="rem"&gt;/// inside WF.  Note this event is not exposed to the outside world as it will only be invoked&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        &lt;span class="rem"&gt;/// internally.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        [CorrelationAlias(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;e.OrderId&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;        [CorrelationInitializer]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        [&lt;strong&gt;ExposedAutoCorrelationEvent&lt;/strong&gt;(ExposedExternally=&lt;span class="kwrd"&gt;false&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderCreated;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Every event you want us to automatically expose to the outside world for you needs to be marked with the [&lt;strong&gt;ExposedAutoCorrelationEvent&lt;/strong&gt;] attribute.&amp;#160; The OrderCreated event (an internal event used to initialize the correlation) is marked as ExposedExternally=false.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Next we need to update our ExternalDataEventArgs class and add 2 attributes in the constructor.&amp;#160; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    [Serializable]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; OrderWorkflowServiceEventArgs : ExternalDataEventArgs&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; Guid orderId;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; Guid OrderId&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; orderId; }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            set { orderId = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="rem"&gt;/// The [AutoCorrelationInstanceId] tells the client generation engine which constructor parameter&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="rem"&gt;/// should be mapped to the instance id to get workflow instance.  &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="rem"&gt;/// The [AutoCorrelationParameter] tells the correlation engine which [CorrelationParameter] attribute to map&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        &lt;span class="rem"&gt;/// to on the IOrderWorkflowService.  You can have multiple correlation values.  The combination of them must be unique.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;instanceId&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;orderId&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; OrderWorkflowServiceEventArgs([&lt;strong&gt;AutoCorrelationInstanceId&lt;/strong&gt;] Guid instanceId, [&lt;strong&gt;AutoCorrelationParameter&lt;/strong&gt;(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;)] Guid orderId)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            : &lt;span class="kwrd"&gt;base&lt;/span&gt; (instanceId)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.orderId = orderId;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Notice the [&lt;strong&gt;AutoCorrelationInstanceId&lt;/strong&gt;] attribute.&amp;#160; This is used to tell the Aware runtime which parameter is the unique WF instance id Guid.&amp;#160; The other attribute [&lt;strong&gt;AutoCorrelationParameter&lt;/strong&gt;(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;)] must be applied to each [&lt;b&gt;CorrelationParameter&lt;/b&gt;(&amp;quot;XXX&amp;quot;)] you applied to your IOrderWorkflowService above.&amp;#160; In this case we only have one correlation parameter so [&lt;strong&gt;AutoCorrelationParameter&lt;/strong&gt;(&lt;span class="str"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;)] is applied to the &amp;quot;orderId&amp;quot; parameter in the constructor.&amp;#160; Again nothing new yet.&amp;#160; Our engine will use all these attributes to automatically generate a typed proxy&amp;#160; for any clients (ASP.NET, Winforms, etc.) that want to trigger events externally.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Lastly we need to implement our IOrderWorkflowService interface.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="rem"&gt;/// You must derive from CorrelationWorkflowService&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; OrderWorkflowService : &lt;strong&gt;CorrelationWorkflowService&lt;/strong&gt;&amp;lt;IOrderWorkflowService&amp;gt;, IOrderWorkflowService&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="rem"&gt;// All these events will be automatically wired up by Aware and fired when called.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="preproc"&gt;#region&lt;/span&gt; IOrderWorkflowService Members&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderCanceled;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderShipped;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderProcessed;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;event&lt;/span&gt; EventHandler&amp;lt;&lt;strong&gt;OrderWorkflowServiceEventArgs&lt;/strong&gt;&amp;gt; OrderCreated;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="preproc"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Notice we don't need to actually implement the events.&amp;#160; By deriving from our &lt;strong&gt;CorrelationWorkflowService &lt;/strong&gt;we will automatically implement those for you.&amp;#160; When you build you will get CS0067 warnings, but your can wrap those with a #pragma to remove those.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In your Host.cs file of your Aware Business Process project make sure you add your OrderWorkflowService to the runtime.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; Host_InitializeWorkflowRuntime(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, InitializeWorkflowRuntimeEventArgs e)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="rem"&gt;// It is important that you add your services to the ExternalDataExchangeService and not the &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="rem"&gt;// runtime directly.  The ExternalDataExchangeService handles interception of your events&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="rem"&gt;// your service and ensures they get scheduled properly inside the WorkflowRuntime&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            ExternalDataExchangeService dataExchangeService = e.WorkflowRuntime.GetService&amp;lt;ExternalDataExchangeService&amp;gt;();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            dataExchangeService.AddService(&lt;span class="kwrd"&gt;new&lt;/span&gt; OrderWorkflowService());&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="rem"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="kwrd"&gt;void&lt;/span&gt; Host_ProcessStarted(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, ProcessEventArgs e)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            &lt;span class="rem"&gt;// Grab the OrderDetails provided to the process&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            OrderDetails orderDetails = e.BusinessProcessContext.BusinessProcessRequest.Parameters[&lt;span class="str"&gt;&amp;quot;OrderDetails&amp;quot;&lt;/span&gt;] &lt;span class="kwrd"&gt;as&lt;/span&gt; OrderDetails;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            &lt;span class="rem"&gt;// This must be fired to initialize the correlation.  WF requires either a method &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;            &lt;span class="rem"&gt;// or and event on the [ExternalDataExchange] based service to initialize the correlation via the [CorrelationInitialization] attribute&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            &lt;span class="rem"&gt;//&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;            OrderWorkflowService orderService = GetWorkflowService&amp;lt;OrderWorkflowService&amp;gt;();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;            orderService.FireEvent(&lt;span class="str"&gt;&amp;quot;OrderCreated&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; OrderWorkflowServiceEventArgs(e.BusinessProcessContext.BusinessProcessId, orderDetails.OrderId));&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Next go to your workflow and view code.&amp;#160; At the top of your class add the following attribute.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    [&lt;strong&gt;ExposedWorkflowService&lt;/strong&gt;(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(IOrderWorkflowService), &lt;span class="str"&gt;&amp;quot;OrderEngine&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    [BusinessProcessScheduledInitializer(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(ScheduledInitializer))]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    [BusinessProcessHost(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(Host))]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;sealed&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; OrderProcessingProcess : StateMachineWorkflowActivity&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; OrderDetails orderDetails;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The [&lt;strong&gt;ExposedWorkflowService&lt;/strong&gt;(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(IOrderWorkflowService), &lt;span class="str"&gt;&amp;quot;OrderEngine&amp;quot;&lt;/span&gt;)] attribute tells our proxy engine to generate a typed class for you that exposes all the [&lt;strong&gt;ExposedAutoCorrelationEvent&lt;/strong&gt;] on the IOrderWorkflowService externally and call it &amp;quot;OrderEngine&amp;quot;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;If you add an Aware Reference from your client. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_B084/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="140" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_B084/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_B084/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="226" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_B084/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;You will end up with a generated client that looks like the following.&amp;#160; The guts of each fired routine is omitted for brevity. Notice the name of the typed class &amp;quot;OrderEngine&amp;quot; and the static routines on the OrderProcessingProcessClient.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; OrderEngine : Gridgistics.Aware.BusinessProcesses.Clients.GeneratedBusinessProcessExposedServiceClient&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; OrderEngine(Gridgistics.Aware.Workflow.CorrelationValues correlationValues, Gridgistics.Aware.Workflow.CorrelationHostReference correlationHostReference) : &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                &lt;span class="kwrd"&gt;base&lt;/span&gt;(correlationValues, correlationHostReference)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FireOrderCanceled()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        ...&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FireOrderShipped()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        ...&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FireOrderProcessed()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        ...&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;And&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; OrderProcessingProcessClient : Gridgistics.Aware.BusinessProcesses.Clients.GeneratedBusinessProcessClientBase&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; OrderEngine GetOrderEngine(System.Guid orderId)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; OrderProcessingProcessClient.GetOrderEngine(orderId, &lt;span class="kwrd"&gt;new&lt;/span&gt; Gridgistics.Aware.Services.ServiceAttributes());&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; OrderEngine GetOrderEngine(System.Guid orderId, Gridgistics.Aware.Services.ServiceAttributes searchAttributes)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        ...&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;To use this generated client you will use the following code.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (OrderEngine orderEngine = OrderProcessingProcessClient.GetOrderEngine(detail.OrderId))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                        orderEngine.FireOrderProcessed();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;                    }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
	width: 550px;
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;No matter what server your WF instance is running on and no matter which version it is the events will be routed back to the right instance using the right assembly versions, etc. by simply providing us with your correlated value (order id in this case).&amp;#160; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;So as you can see we have done our best to take some of the sting out of using correlated workflow services inside WF and easily exposing these events externally to any .NET client.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/Dj-SflXXUKw/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2008/05/External-Windows-Workflow-Correlated-Communication-Part-2.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=d5681736-1e4f-43e4-bf2d-a10816f46fae</guid>
      <pubDate>Tue, 13 May 2008 13:45:30 -0400</pubDate>
      <category>Aware Server</category>
      <category>code reduction</category>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=d5681736-1e4f-43e4-bf2d-a10816f46fae</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=d5681736-1e4f-43e4-bf2d-a10816f46fae</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/External-Windows-Workflow-Correlated-Communication-Part-2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=d5681736-1e4f-43e4-bf2d-a10816f46fae</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=d5681736-1e4f-43e4-bf2d-a10816f46fae</feedburner:origLink></item>
    <item>
      <title>Aware Server ASP.Net Web Deployment</title>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
With Aware Server, deploying ASP.NET web sites is as easy as 123.&amp;nbsp; Essentially you publish your web application into the Aware Environment, then use Aware to publish your ASP.NET web application out to the Farm (1 machine or 1000 machines).&amp;nbsp; In the first diagram you see the flow, from VS.NET, to Aware Server, to the farm.&amp;nbsp; I will walk you through exactly how it works, no coding, no scripting, no hassles. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/aware%20aspnet%20publish_2.jpg"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/aware%20aspnet%20publish_thumb.jpg" border="0" alt="aware aspnet publish" width="621" height="469" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Let us start by creating a new Aware Web Application Project (Note: existing ASP.NET applications can easily be converted to become &amp;quot;Aware&amp;quot; ASP.NET applications as well). 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_4.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_1.png" border="0" alt="image" width="484" height="344" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Open the App_Deployment Folder, and then double click the &amp;quot;WebApplicationDeployment_Debug.aware&amp;quot; file.&amp;nbsp; Just like services and business processes, the ASP.NET applications use the same process to build, package, deploy, and provision process.&amp;nbsp; Now build your web site, then click the &amp;quot;Publish Now&amp;quot; button. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_10.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_4.png" border="0" alt="image" width="565" height="335" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
For our sample here, we will deploy into our current local environment.&amp;nbsp; Click &amp;quot;Deploy&amp;quot;. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_12.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_5.png" border="0" alt="image" width="244" height="218" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
We can verify that it was deployed by looking in the Aware Enterprise Manager Deployment tab. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_16.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_7.png" border="0" alt="image" width="625" height="273" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now to publish our Web Application, we can go to the Management Extensions tab in the Aware Enterprise Manager and run the ASP.NET Application Provisioning extension (double click the icon). 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_18.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_8.png" border="0" alt="image" width="447" height="360" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The ASP.NET Application Provisioning extension runs, and displays all of the Web Applications that exit in the environment, and that have been published.&amp;nbsp; Ours has not been published yet, so go ahead and click on the &amp;quot;Publish Web Application&amp;quot; link on the left to start the wizard. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_20.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_9.png" border="0" alt="image" width="546" height="234" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Once the wizard starts you will see the Checklist page.&amp;nbsp; Read and then click next. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_22.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_10.png" border="0" alt="image" width="476" height="327" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now you will see a list of all the IIS servers you can publish too (with their versions).&amp;nbsp; Select from the list and then click next. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_24.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_11.png" border="0" alt="image" width="484" height="332" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Select the appropriate site, and give an appropriate virtual directory (optional).&amp;nbsp; Then select your security settings and click next. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_26.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_12.png" border="0" alt="image" width="498" height="342" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
At this point you can set any of the web sites application variables, or configuration strings.&amp;nbsp; Make your changes then click next. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_28.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_13.png" border="0" alt="image" width="507" height="348" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
You will see the last confirmation screen of where it will be published too, click &amp;quot;publish&amp;quot; to commence. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_40.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_19.png" border="0" alt="image" width="516" height="354" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Once the publishing has finished, you should see success messages.&amp;nbsp; Click close to complete the wizard. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_30.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_14.png" border="0" alt="image" width="518" height="355" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The ASP.NET Application Provisioning extension will update, and you will now see your application published to the servers you selected in your environment. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_32.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_15.png" border="0" alt="image" width="622" height="262" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now here is the real beauty of the Aware Server ASP.NET publishing.&amp;nbsp; Lets say you make a change to your web site.&amp;nbsp; Just republish from VS.NET (like you did above), and your changes are now ready to be published to all of the IIS machines. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_10.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_4.png" border="0" alt="image" width="565" height="335" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
To republish to all of the IIS machines, now just click the &amp;quot;republish web application&amp;quot; and you will quickly walk through the wizard to confirm you previous selections. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_34.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_16.png" border="0" alt="image" width="629" height="264" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now let&amp;#39;s one up that.&amp;nbsp; Let&amp;#39;s say you want to version your site.&amp;nbsp; Just make the changes in the &amp;quot;Version Information&amp;quot; in the VS.NET deployment settings tab, and then build and &amp;quot;publish now&amp;quot;. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_44.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_21.png" border="0" alt="image" width="479" height="178" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
When you return to the ASP.NET Application Provisioning tool, you will now see both of your versions out there.&amp;nbsp; Publish version 1.1 with the wizard, if things do not work out, then just publish version 1.0.&amp;nbsp; Its that easy. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_36.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_17.png" border="0" alt="image" width="633" height="266" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
To keep on tab on all things that occur, just refer to the &amp;quot;Publish History&amp;quot; tab and you will see when sites were deployed and to where. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_38.png"&gt;&lt;img style="border: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerASP.NetWebDeployment_D004/image_thumb_18.png" border="0" alt="image" width="635" height="304" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Aware Server ASP.NET Deployment - no code, no scripts, no hassles. 
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Aware%20Server"&gt;Aware Server&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/ASP.NET%20Deployment"&gt;ASP.NET Deployment&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/gridGISTICS"&gt;gridGISTICS&lt;/a&gt; 
&lt;/div&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/tNBzkpkW_eI/post.aspx</link>
      <author>Darrell Legault</author>
      <comments>http://blog.gridgistics.net/post/2008/05/Aware-Server-ASPNet-Web-Deployment.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=57e0ff46-2ce1-43a6-ab6b-8faaadfb7fea</guid>
      <pubDate>Tue, 13 May 2008 12:17:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <category>Aware Server</category>
      <dc:publisher>Darrell Legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=57e0ff46-2ce1-43a6-ab6b-8faaadfb7fea</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=57e0ff46-2ce1-43a6-ab6b-8faaadfb7fea</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/Aware-Server-ASPNet-Web-Deployment.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=57e0ff46-2ce1-43a6-ab6b-8faaadfb7fea</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=57e0ff46-2ce1-43a6-ab6b-8faaadfb7fea</feedburner:origLink></item>
    <item>
      <title>Aware Server: Be 67% More Productive with VS.NET</title>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I ran across an interesting blog about &amp;ldquo;Creating, Configuring, and Consuming a WCF Service in IIS&amp;rdquo;. 60 steps later and you had something to play with&amp;hellip;. &lt;a href="http://blogs.msdn.com/zainnab/archive/2008/04/30/creating-configuring-and-consuming-a-wcf-service-in-iis-7.aspx"&gt;http://blogs.msdn.com/zainnab/archive/2008/04/30/creating-configuring-and-consuming-a-wcf-service-in-iis-7.aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
As much as we love .NET development, we can hardly call this productive. What I am going to show you is how Aware Server can take your developers to the next level, and &lt;strong&gt;increase their productivity by 67%.&lt;/strong&gt; Not only do you get an huge boost in development productivity, you also save an enormous amount of time and gain tremendous number of features for Operations (deployment, provisioning, and monitoring of your services). 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
It&amp;rsquo;s a no brainier, be more productive, deploy and provision your services to any number of machines. Aware Server gives you everything, and picks up where VS.NET drops off. So let&amp;rsquo;s get started.&amp;nbsp; Also this entry is quite long because I included every screenshot as I did things.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;h3&gt;Create and Debug an Aware Service (4 steps &amp;ndash; 5&lt;sup&gt;th&lt;/sup&gt; step is if you do not trust me)&lt;/h3&gt;
&lt;p&gt;
1. Run VS.NET as Admin. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image002_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="282" height="258" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
2. Start a new project &amp;ndash; As you can see, we are going to use an &lt;strong&gt;Aware Template&lt;/strong&gt;. One of the many templates is the &amp;ldquo;&lt;strong&gt;Aware Distributed Service&lt;/strong&gt;&amp;rdquo;. This is what we will use today for our comparison. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image004_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image004_thumb.jpg" border="0" alt="clip_image004" width="500" height="356" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
3. Enter your Aware Service information. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image006_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image006_thumb.jpg" border="0" alt="clip_image006" width="353" height="256" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
4. Debug your new service. Hit F5 &amp;ndash; Now the &lt;strong&gt;Aware Service Invoker&lt;/strong&gt; starts up (no more test harness app&amp;#39;s needed) and allows you to test your service immediately. Go ahead and click the &amp;ldquo;SomeOperation&amp;rdquo; function on the left tree, then click the &amp;ldquo;Invoke&amp;rdquo; button. You will see the Results, Request, and Response messages. By default the Aware Distributed Service template creates the &amp;ldquo;SomeOperation&amp;rdquo; method for you so that is what you will test. Now all you need to do is code your own operations. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image008_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image008_thumb.jpg" border="0" alt="clip_image008" width="500" height="390" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
5. Just for kicks, I&amp;rsquo;ll add in a step to let you verify your service was up and running fine. Just open up the Aware Enterprise Manager and while you are debugging you will see that your service is running. By default on net.TCP. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image010_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image010_thumb.jpg" border="0" alt="clip_image010" width="600" height="178" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Deploy an Aware Service (3 steps &amp;ndash; 4&lt;sup&gt;th&lt;/sup&gt; step is if you do not trust me)&lt;/h3&gt;
&lt;p&gt;
1. Now since we do not need a testharness any more we actually eliminate about 11 steps. That said, we will walk through the overall process that leads you to create a client application. This will let you see how easy it is to consume and use Aware Services from ANYWHERE. 
&lt;/p&gt;
&lt;p&gt;
Before we call this service, we will deploy and provision the service. Aware Server is based on Environments. You deploy to environments, and then provision your services to run within those environments. Now you may say that this is actually more work than using the VS.NET &amp;ldquo;WCF Service&amp;rdquo; template which automatically deployed and provisioned it to your local IIS. What we are actually doing is eliminating about 20 of the other steps that happen later on to configure and use different endpoints, and in our case, we automagically do this for any machine that our service is provisioned for. 
&lt;/p&gt;
&lt;p&gt;
So let&amp;rsquo;s get started, and deploy this service. In the Solution Explorer, open the Deployments directory, and double click the ServiceDeployment_Debug.aware file. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image012_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image012_thumb.jpg" border="0" alt="clip_image012" width="233" height="244" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
2. This will open the Aware Deployment File Viewer for you which you should then see the following viewer (Deployment Settings). Now to deploy your service, click the &amp;ldquo;publish now&amp;rdquo; button. Notice that there is an &amp;ldquo;Auto Publish&amp;rdquo; option here if you wish to automatically publish this service on each build. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image014_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image014_thumb.jpg" border="0" alt="clip_image014" width="500" height="336" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
3. After you click the &amp;ldquo;Publish Now&amp;rdquo; button you will see the &amp;ldquo;Deploy to Environment&amp;rdquo;. By default your current environment is selected, but you may choose any environment that you have security access too. For or example just click deploy and your service will be deployed to your default environment. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image016_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image016_thumb.jpg" border="0" alt="clip_image016" width="364" height="325" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
4. Lets validate that it was deployed. Return to the Aware Enterprise Manager and then navigate to the &amp;ldquo;Deployment&amp;rdquo; tab at the very top. You will see all of the services deployed in your environment, one of which is the service you just deployed (Easy Aware Services). 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image018_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image018_thumb.jpg" border="0" alt="clip_image018" width="500" height="311" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Provision an Aware Service (3 steps &amp;ndash; 4&lt;sup&gt;th&lt;/sup&gt; for info, 5&lt;sup&gt;th&lt;/sup&gt; step is if you do not trust me)&lt;/h3&gt;
&lt;p&gt;
1. Now that we deployed our service, let&amp;rsquo;s provision it to run in our environment. Return to the Aware Enterprise Manager again, and now click on the &amp;ldquo;Service Provisioning Polices&amp;rdquo; tab at the top. You will see all of the policies in your environment. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image020_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image020_thumb.jpg" border="0" alt="clip_image020" width="500" height="181" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
2. Let&amp;rsquo;s go ahead and create one for our new service, so click the &amp;ldquo;Create New&amp;rdquo; in the tool bar. You will see the Service Provisioning Policy Editor pop up. Give your policy a name, application name, and description, and then click on the &amp;ldquo;Included Service Manifests&amp;rdquo; tab. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image022_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image022_thumb.jpg" border="0" alt="clip_image022" width="500" height="365" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
3. Once you are on the &amp;ldquo;Included Service Manifests&amp;rdquo; tab, click the &amp;ldquo;Add Service Manifest button and you will get a list of all services deployed in that environment. Select your &amp;ldquo;Easy Aware Service&amp;rdquo; and click &amp;ldquo;OK&amp;rdquo;. At this point you could click &amp;ldquo;Save&amp;rdquo; on the policy and be done (defaults will be used). 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image024_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image024_thumb.jpg" border="0" alt="clip_image024" width="500" height="376" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
4. At this point we could click the &amp;ldquo;Save&amp;rdquo; and our services would start running, but we will review some additional options you have for our policy. Now remember how we talked about the default protocol used is net.TCP, you can easily change that here, or just add as many wish to use (from TCP to REST). No code changes, no configuration night mare. Click Cancel here and we will continue with the default setup. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image026_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image026_thumb.jpg" border="0" alt="clip_image026" width="500" height="488" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Not let&amp;rsquo;s set the &amp;ldquo;Conditions / Exclusions&amp;rdquo; that will be used to determine what machines the service will run on. By default conditions are set to Any/Any. Click the &amp;ldquo;Add Condition&amp;rdquo; button and you will see you can specify any type of condition (from machine names, to only machines running with 2 processors, or machines that only have 4gig of Ram). For this example well just use the defaults. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image028_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image028_thumb.jpg" border="0" alt="clip_image028" width="500" height="376" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Another option that you have is to set time windows of when your service should run. This allows you the flexibility that if you have some services that are heavily used in the early mornings you can schedule them to run on more machines to handle the heavy peak loads, but then during the day stop those services so that they do not interfere with daily operations. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image030_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image030_thumb.jpg" border="0" alt="clip_image030" width="500" height="363" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Click &amp;ldquo;Save&amp;rdquo; and you should see your newly created policy enabled and running. Note that by mousing over the policy it will tell you the details. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image032_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image032_thumb.jpg" border="0" alt="clip_image032" width="500" height="218" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
5. We created the policy; now let&amp;rsquo;s verify that our policy is doing what we asked it to do. Return to the Aware Enterprise Manager and select the &amp;ldquo;Services&amp;rdquo; tab again. Just as we saw before during F5 development, we see our service running, but now it is running due to the policy being applied. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image034_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image034_thumb.jpg" border="0" alt="clip_image034" width="500" height="158" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Call an Aware Service (4 steps &amp;ndash; 5&lt;sup&gt;th&lt;/sup&gt; step is if you do not trust me)&lt;/h3&gt;
&lt;p&gt;
1. Now that we have developed, deployed, and provisioned our service to run. Let&amp;rsquo;s put together a little client application to call our service. Create a new project. Just like before you get the project selection window. This time we will use the &amp;ldquo;Aware Console Application&amp;rdquo;, give it a name of &amp;ldquo;MyFirstAwareClient&amp;rdquo; and then click OK. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image036_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image036_thumb.jpg" border="0" alt="clip_image036" width="500" height="320" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
2. Now proceed to add Aware Server References by right clicking on the project and &amp;ldquo;Manage Aware Server References&amp;hellip;&amp;rdquo; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image038_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image038_thumb.jpg" border="0" alt="clip_image038" width="241" height="386" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
3. You will see the &amp;ldquo;Aware Service and Business Process References&amp;rdquo; pop up screen. All you need to do is select your service, then click &amp;ldquo;Add&amp;rdquo;. Now click &amp;ldquo;Apply&amp;rdquo; and you are ready to call your service. No URL is needed. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image040_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image040_thumb.jpg" border="0" alt="clip_image040" width="443" height="412" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
4. Aware Server automatically adds all of the proper references (downloading shared contracts) and generates the client proxy to make your calls. What it boils down to is TWO lines of code; create the client, make the call. 
&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt;(EasyAwareServicesClient client = &lt;span class="kwrd"&gt;new&lt;/span&gt; EasyAwareServicesClient() 
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{ 
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    Console.WriteLine(&lt;span class="str"&gt;&amp;quot;What is 2 + 3? {0}&amp;quot;&lt;/span&gt;, client.AddNumbers(2,3)); 
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;} 
&lt;/pre&gt;
&lt;/div&gt;
&lt;pre&gt;
&amp;nbsp; 
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
5. Hit F5 and you should see. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image042_2.jpg"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServer67MoreProductivethanVS.NET_E1EC/clip_image042_thumb.jpg" border="0" alt="clip_image042" width="500" height="98" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Zero configuration, no URL&amp;rsquo;s to know. So how does Aware know where my service is? That is the magic and simplicity of Aware Server and its Service Virtualization capability based on the &lt;a href="http://en.wikipedia.org/wiki/Service_Location_Protocol"&gt;Service Location Protocol&lt;/a&gt;. Our goal was to make using services as easy and simple as possible. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Summary of Aware Server development vs. VS.NET 2008&lt;/h3&gt;
&lt;table border="1" cellspacing="0" cellpadding="0" class="MsoTableLightGridAccent1" style="border-collapse: collapse; border: medium none"&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 2.25pt solid"&gt;&lt;strong&gt;&lt;span&gt;Aware Server &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 2.25pt solid"&gt;&lt;strong&gt;&lt;span&gt;VS.NET 2008 &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 2.25pt solid"&gt;&lt;strong&gt;&lt;span&gt;Result &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Built in F5 debugging of services and workflow&amp;#39;s. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Create your service, then configure your environment, and then create and code your testharness. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpFirst"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server 54% faster to develop WCF services. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpMiddle"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server &amp;ndash; now prior WCF knowledge required. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpLast"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server treats workflow development (WF) the same as service (WCF) development. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			One click deployment &amp;ndash; Any environment. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Deploy to your machine running IIS. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpFirst"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server is &amp;ldquo;One Click&amp;rdquo; deployment of services. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraphCxSpLast"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server allows you to quickly test your services locally, and then deploy them to be shared with all developers. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Versioning services and running them side by side. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			No built in versioning capabilities 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server will let you easily version and run those versions. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Provisioned endpoints. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Developer must create the endpoints. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware abstracts protocol from the developer and puts it into the hands of operations. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Automatic service call load balancing 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You need to setup and configure your own load balancing solution. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware automatically scales your services by load balancing your service calls across all machines running your services. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Provisioning Conditions. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You need to setup your service on every machine you want it to run on. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Setting up Aware Services to run on one server, or 1,000 servers.&lt;span&gt;&amp;nbsp; &lt;/span&gt;One policy will take care of all deployment and configuration for ALL of your servers. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Re-deployment will automatically run your new code. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Re-deployment is only local on your own machine. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;If an Aware Server policy is setup to run your service on 5 machines, when you redeploy that service Aware Server will automatically re-deploy the new code to all 5 machines. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Provisioning time schedules. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You would have to code/manage a schedule yourself. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server automatically will run services when you want them to run, where you want them to run. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			Zero configuration. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			You need to know the URL of the machine of the services you wish to call 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; background: #d3dfee; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server was designed from the ground up with Services Virtualization in mind to eliminate service location configuration. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td width="211" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 2.2in; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			IIS is not required, Although you can use IIS as well. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="234" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 175.5pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; line-height: normal" class="MsoNormal"&gt;
			IIS is required to host your services. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
			&lt;td width="289" valign="top" style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 216.9pt; padding-top: 0in; border-bottom: #4f81bd 1pt solid"&gt;
			&lt;p style="margin-bottom: 0pt; text-indent: -0.25in; line-height: normal" class="MsoListParagraph"&gt;
			&lt;span style="font-family: symbol"&gt;&lt;span&gt;&amp;middot;&lt;span style="font-weight: normal; font-size: 7pt; line-height: normal; font-style: normal; font-variant: normal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Aware Server offers you the flexibility of using whatever you hosting model you want. 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To find out more please visit &lt;a href="http://www.gridgistics.net"&gt;www.gridgistics.net&lt;/a&gt; and go to the learn section. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Aware%20Server"&gt;Aware Server&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/VS.NET"&gt;VS.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/SOA"&gt;SOA&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Service%20Virtualization"&gt;Service Virtualization&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/.NET%20Development%20Productivity"&gt;.NET Development Productivity&lt;/a&gt; 
&lt;/div&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/-Z_OkJhM72c/post.aspx</link>
      <author>Darrell Legault</author>
      <comments>http://blog.gridgistics.net/post/2008/05/Aware-Server-6725-More-Productive-than-VSNET.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=6ff20b77-8c2e-4b91-a620-ab25859d0553</guid>
      <pubDate>Mon, 05 May 2008 16:19:00 -0400</pubDate>
      <category>Aware Server</category>
      <category>code reduction</category>
      <category>gridGISTICS</category>
      <dc:publisher>Darrell Legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=6ff20b77-8c2e-4b91-a620-ab25859d0553</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=6ff20b77-8c2e-4b91-a620-ab25859d0553</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/Aware-Server-6725-More-Productive-than-VSNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=6ff20b77-8c2e-4b91-a620-ab25859d0553</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=6ff20b77-8c2e-4b91-a620-ab25859d0553</feedburner:origLink></item>
    <item>
      <title>Designing and Deploying Services</title>
      <description>&lt;p&gt;
As a company we spend much of our time building marketing materials, messaging materials, demo&amp;#39;s, presentations etc.... Anyone who is apart of a small organization can appreciate the amount of time and effort that goes into every little aspect of building your story.&amp;nbsp; Much time is spent researching, reading, understanding the markets, future directions.&amp;nbsp; The rare time you stumble upon a piece of gold, but gold you can share. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;quot;&lt;strong&gt;We have long believed that 80% of operations issues originate in design and development...&lt;/strong&gt;&amp;quot;&amp;nbsp; Developers may not believe it, but here is 20 years of experience that explains why. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Below you will find the most comprehensive explanation of what it takes to design and deploy services.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://research.microsoft.com/~JamesRH/TalksAndPapers/JamesRH_Lisa.pdf" title="http://research.microsoft.com/~JamesRH/TalksAndPapers/JamesRH_Lisa.pdf"&gt;http://research.microsoft.com/~JamesRH/TalksAndPapers/JamesRH_Lisa.pdf&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Some key observations 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;designing for automation and provisioning&lt;/li&gt;
	&lt;li&gt;dependency management&lt;/li&gt;
	&lt;li&gt;release cycle and testing&lt;/li&gt;
	&lt;li&gt;hardware selection and standardization&lt;/li&gt;
	&lt;li&gt;operations and capacity planning&lt;/li&gt;
	&lt;li&gt;auditing&lt;/li&gt;
	&lt;li&gt;monitoring and alerting&lt;/li&gt;
	&lt;li&gt;graceful degradation and admission control&lt;/li&gt;
	&lt;li&gt;customer and press communications plan&lt;/li&gt;
	&lt;li&gt;customer self provisioning and self help&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Conclusion --&amp;gt; &amp;quot;&lt;strong&gt;Reducing operations costs and improving service reliability for a high scale Internet service starts with writing the service to be operations-friendly.&lt;/strong&gt;&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
That sentence probably best describes what we try to achieve with Aware Server.... what&amp;#39;s good for the developer, is good for operations. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Check it out at &lt;a href="http://www.gridgistics.net/main_learn.aspx" title="http://www.gridgistics.net/main_learn.aspx"&gt;http://www.gridgistics.net/main_learn.aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/gridGISTICS"&gt;gridGISTICS&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Aware%20Server"&gt;Aware Server&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/designing%20and%20deploying%20services"&gt;designing and deploying services&lt;/a&gt; 
&lt;/div&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/rhe-a1uwsxI/post.aspx</link>
      <author>Darrell Legault</author>
      <comments>http://blog.gridgistics.net/post/2008/05/Designing-and-Deploying-Services.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=fbecbba9-0d2c-4344-a511-8eac160427d4</guid>
      <pubDate>Fri, 02 May 2008 12:32:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <category>Aware Server</category>
      <dc:publisher>Darrell Legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=fbecbba9-0d2c-4344-a511-8eac160427d4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=fbecbba9-0d2c-4344-a511-8eac160427d4</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/05/Designing-and-Deploying-Services.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=fbecbba9-0d2c-4344-a511-8eac160427d4</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=fbecbba9-0d2c-4344-a511-8eac160427d4</feedburner:origLink></item>
    <item>
      <title>Microsoft and Intel Drop $20 Million on Parallel Computing</title>
      <description>&lt;p&gt;
Microsoft and Intel Launch Parallel Computing Research Centers to Accelerate Benefits to Consumers, Businesses&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
To give you the skinny.&amp;nbsp; Microsoft and Intel are partnering to develop edu programs and further research in an effort to make parallel computing easier and bring it to the mere mortal developer.&amp;nbsp; I definitely get warm and fuzzy&amp;#39;s from the affirmation that the problem exists, its real and the big guys see it too. 
&lt;/p&gt;
&lt;p&gt;
My favorite quote from the article is: 
&lt;/p&gt;
&lt;p&gt;
&amp;ldquo;We now face the exciting challenge of making parallelism so easy to use that parallel programming becomes synonymous with programming&amp;rdquo; &lt;br /&gt;
- Marc Snir (University of Illinois at Urbana-Champaign professor of Computer Science) 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/presspass/press/2008/mar08/03-18UPCRCPR.mspx" target="_blank"&gt;MS press release&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Of course this seems strangely family to the Google and IBM announcement back in October. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/22414.wss" target="_blank"&gt;IBM press release&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
My favorite quote from this one was: 
&lt;/p&gt;
&lt;p&gt;
&amp;quot;The goal of this initiative is to improve computer science students&amp;rsquo; knowledge of highly parallel computing practices to better address the emerging paradigm of large-scale distributed computing. IBM and Google are teaming up to provide hardware, software and services to augment university curricula and expand research horizons. &amp;quot; 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/pdug347PrYI/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/03/Microsoft-and-Intel-Launch-Parallel-Computing-Research-Centers-to-Accelerate-Benefits-to-Consumers2c-Businesses.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=77e6a887-8ee5-4289-960b-1bbc0bae1858</guid>
      <pubDate>Fri, 28 Mar 2008 17:29:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=77e6a887-8ee5-4289-960b-1bbc0bae1858</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=77e6a887-8ee5-4289-960b-1bbc0bae1858</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/03/Microsoft-and-Intel-Launch-Parallel-Computing-Research-Centers-to-Accelerate-Benefits-to-Consumers2c-Businesses.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=77e6a887-8ee5-4289-960b-1bbc0bae1858</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=77e6a887-8ee5-4289-960b-1bbc0bae1858</feedburner:origLink></item>
    <item>
      <title>Internet Explorer Trick for Mere Mortals</title>
      <description>&lt;p&gt;Ok.&amp;#160; So while the other guys are ripping out long entries on how the latest technologies can impact your enterprise, I come up with something rather inconsequential to your company's success.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;However - I still had a person pep rally in my cube when I discovered this scientific breakthrough that is bound to rawk our industry to the core.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;(hang on your armrests and BEHOLD the automatic launch of multiple default tabs in Internet Explorer)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/InternetExplorerTrickforMereMortals_7DA1/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="470" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/InternetExplorerTrickforMereMortals_7DA1/image_thumb.png" width="381" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Yeah ok... I know it actually SAYS what it does in the description - and its not the discovery of sustained cold fusion which will freely power our planet.&amp;#160; But I'm easily impressed, and wanted to share some love.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/q2pzvP5Y-BI/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/03/Internet-Explorer-Trick-for-Mere-Mortals.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=ef0568ff-40ca-4ffa-a756-24bfd5cf4c5d</guid>
      <pubDate>Fri, 28 Mar 2008 12:55:16 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=ef0568ff-40ca-4ffa-a756-24bfd5cf4c5d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=ef0568ff-40ca-4ffa-a756-24bfd5cf4c5d</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/03/Internet-Explorer-Trick-for-Mere-Mortals.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=ef0568ff-40ca-4ffa-a756-24bfd5cf4c5d</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=ef0568ff-40ca-4ffa-a756-24bfd5cf4c5d</feedburner:origLink></item>
    <item>
      <title>Life on the Bungie Farm: Fun Things to do with 180 Servers and 350 Processors</title>
      <description>&lt;p&gt;Yesterday Luis Villegas and Sean Shypula gave an exciting talk at the &lt;a href="http://www.gdconf.com/" target="_blank"&gt;Game Developer Conference&lt;/a&gt; (in Sanfran)&lt;/p&gt;  &lt;p&gt;I'll tell ya what...&amp;#160; I'm personally stoked to hear anything about &lt;a href="http://bungie.net" target="_blank"&gt;Bungie&lt;/a&gt; development in general.&amp;#160; First and foremost I'm a huge Bungie fan from a company and game perspective.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;lt;flashback&amp;gt;I had a copy of Marathon release day on my overclocked Powermac Quadra &amp;lt;/flashback&amp;gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Secondly they are moving a lot of their stuff to .NET/C# - which just makes me smile ;)&lt;/p&gt;  &lt;p&gt;Its awesome to see this company grow and prosper and continue to put out quality games at such an amazing scale.&amp;#160; I'd have to chalk it up to the smart people they have working there.&amp;#160; However - what really hit home with me is the similarities between such dissimilar industries.&lt;/p&gt;  &lt;p&gt;For example.. whether your grid solves daily Monte Carlo simulations for million dollar decisions in the energy sector - or whether your grid pre-compiles lighting in Halo 3 maps - the problems faced are the exact SAME. &lt;/p&gt;  &lt;p&gt;Some of the daily issues Sean and Luis face:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Application Abstraction&lt;/strong&gt; (vitalization) from&amp;#160; the grid - allowing machines to be utilizes like a commodity.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dynamic Provisioning&lt;/strong&gt; of services and environments. (lighting / rendering / payroll / mathematically determine whether Superman or Batman would win in a fist fight if Superman wasn't allowed to fly)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Distributed Workflows&lt;/strong&gt; and sub workflows&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Workflow auditing&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Debugging&lt;/strong&gt; Grid Environment.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Auditing&lt;/strong&gt; Jobs&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Simplified Deployment&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Admin tools&lt;/strong&gt; for configuration, deployment, provisioning&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Managing multiple environments&lt;/strong&gt; (development, testing, production, etc)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Real-time monitoring&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Performance tuning.&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Do these issues sound familiar?&amp;#160; Sure!&amp;#160; Only most of us are writing enterprise level services for work and play games for fun - rather than work to make the games.&lt;/p&gt;  &lt;p&gt;once more... every MS shop who faces these obstacles owes it to their team and their company - to checkout Aware Server and schedule a demo.&lt;/p&gt;  &lt;p&gt;I don't know about you... but I'd get a kick out of knowing Master Chief uses Aware Server to keep his perfectly rendered helmet nice and shiny ;)&lt;/p&gt;  &lt;p&gt;&amp;gt;rt&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0b621ea1-ab9a-4ca9-bd80-8e7c28798b76" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/news" rel="tag"&gt;news&lt;/a&gt;,&lt;a href="http://technorati.com/tags/workflow" rel="tag"&gt;workflow&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.net" rel="tag"&gt;.net&lt;/a&gt;,&lt;a href="http://technorati.com/tags/grid" rel="tag"&gt;grid&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/Om3P5hNCmRc/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Life-on-the-Bungie-Farm-Fun-Things-to-do-with-180-Servers-and-350-Processors.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=6ac2a145-be4d-4832-a273-bd48962c677c</guid>
      <pubDate>Fri, 22 Feb 2008 14:09:24 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=6ac2a145-be4d-4832-a273-bd48962c677c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=6ac2a145-be4d-4832-a273-bd48962c677c</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Life-on-the-Bungie-Farm-Fun-Things-to-do-with-180-Servers-and-350-Processors.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=6ac2a145-be4d-4832-a273-bd48962c677c</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=6ac2a145-be4d-4832-a273-bd48962c677c</feedburner:origLink></item>
    <item>
      <title>.NET Framework Library Source Code now available</title>
      <description>&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" target="_blank"&gt;Scott Gu&lt;/a&gt; (love his blog btw) &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" target="_blank"&gt;announced&lt;/a&gt; the official release of the .NET Framework source library.
&lt;/p&gt;
&lt;p&gt;
Though this is only about a month old - I had thought this would have picked up more buzz.&amp;nbsp; The consensus may be that either only uber geeks or hackers really want / care about the source.&amp;nbsp; We can already use &lt;a href="http://www.aisto.com/roeder/dotnet/" target="_blank"&gt;Reflector&lt;/a&gt; to peeky peeky.&amp;nbsp; Debugging the actual framework?&amp;nbsp; You mean you think you are smarter than the great and powerful MS.&amp;nbsp; Possibly, but not necessarily.&amp;nbsp; Regardless its a good learning tool and allows us to gain &lt;strong&gt;supported&lt;/strong&gt; insight into the framework itself.
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;m not saying you should be having a personal pep rally in your cube or get a Visual Studio tattoo on your forearm - I&amp;#39;m just saying it takes some serious &lt;a href="http://en.wikipedia.org/wiki/Cojones" target="_blank"&gt;cojones&lt;/a&gt; for them to release it and you have to get warm and fuzzies from any MS-love we get.
&lt;/p&gt;
&lt;p&gt;
Lets give my man &lt;a href="http://www.microsoft.com/presspass/exec/ozzie/default.mspx" target="_blank"&gt;Ozzy&lt;/a&gt; some props.
&lt;/p&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fa275693-d99f-4af2-87b8-fdd374d9cb7a" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.net%20framework"&gt;.net framework&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/news"&gt;news&lt;/a&gt;
&lt;/div&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/y1Bz2Hs6vWA/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/02/NET-Framework-Library-Source-Code-now-available.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=28f33f5e-84fd-4d8e-aa29-3e80b8284ae7</guid>
      <pubDate>Wed, 20 Feb 2008 18:36:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=28f33f5e-84fd-4d8e-aa29-3e80b8284ae7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=28f33f5e-84fd-4d8e-aa29-3e80b8284ae7</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/NET-Framework-Library-Source-Code-now-available.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=28f33f5e-84fd-4d8e-aa29-3e80b8284ae7</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=28f33f5e-84fd-4d8e-aa29-3e80b8284ae7</feedburner:origLink></item>
    <item>
      <title>Environmental Singleton</title>
      <description>&lt;p&gt;In Aware Server v3.0 there may be times when you want to ensure that one and only one of a particular service is running in an environment (Dev, QA, etc.).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We needed this functionality for the core layers so we decided to expose it to anyone developing WCF services on top of Aware.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To make your service an Environmental singleton, simply add the following attribute to the top of your service implementation of IMyServiceContract.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;[&lt;font color="#000080"&gt;EnvironmentBehavior&lt;/font&gt;(EnvironmentInstancing.Singleton, &lt;font color="#0000ff"&gt;typeof(&lt;/font&gt;IMyServiceContract))]&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If another instance tries to come online a warning will be put in the Event Log of the offending server and the service will not be allowed to start. These warnings can be picked up by our monitoring engine which I will cover in a later topic.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/j2lq0arBA5Q/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Environmental-Singleton.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=bae5e51b-438c-4a88-b484-abea2e80a6e2</guid>
      <pubDate>Fri, 15 Feb 2008 15:11:01 -0400</pubDate>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=bae5e51b-438c-4a88-b484-abea2e80a6e2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=bae5e51b-438c-4a88-b484-abea2e80a6e2</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Environmental-Singleton.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=bae5e51b-438c-4a88-b484-abea2e80a6e2</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=bae5e51b-438c-4a88-b484-abea2e80a6e2</feedburner:origLink></item>
    <item>
      <title>Visual Studio 2008 Support</title>
      <description>&lt;p&gt;With Aware v3.0 we support both VS.net 2005 and 2008. All of our project templates are written for 2005, but work just fine in 2008.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There may be some times when VS.NET 2008 barks and asks you to overwrite this or that during a project creation. Accept overwrite when asked (if asked) and all will be well. This usually occurs when using our project templates for creating Web Application Projects which will be covered in another post.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Being that we are a small ISV we are not sure how long we will continue to support the 2005 stuff as 2008 has virtually made it irrelevant. Anyone that is still on 2003 will jump right to 2008. Anyone on 2005 can move to 2008 with no more than a day&amp;#8217;s effort.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/YUTefkogIJU/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Visual-Studio-2008-Support.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=a7c003e6-4956-4197-b3e8-f619c11279e7</guid>
      <pubDate>Mon, 11 Feb 2008 20:17:56 -0400</pubDate>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=a7c003e6-4956-4197-b3e8-f619c11279e7</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=a7c003e6-4956-4197-b3e8-f619c11279e7</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Visual-Studio-2008-Support.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=a7c003e6-4956-4197-b3e8-f619c11279e7</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=a7c003e6-4956-4197-b3e8-f619c11279e7</feedburner:origLink></item>
    <item>
      <title>Reduce development time by 40%....no that is not a typo!</title>
      <description>&lt;p&gt;
&amp;nbsp;Claiming that Aware Server can reduce code generation and overall development time by 40% often provokes looks of disbelief.&amp;nbsp; But this claim is for&amp;nbsp;real and&amp;nbsp;in today&amp;#39;s world where building scalable and agile applications is a must, spending less time on code and more time on the business logic of your applications would give you a serious competitive advantage, not to mention coming in on time and under budget, and maybe even going home early once in awhile!&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;So let me give you a quick overview of how we do this. Let&amp;#39;s start with the typical development process, what you are probably doing today and compare developing in an Aware Server Environment.&lt;/span&gt; 
&lt;/p&gt;
&amp;nbsp;&lt;span style="language: en-US"&gt;&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&amp;nbsp; 
&lt;table border="2" align="left" style="width: 411px; height: 391px; background-color: #d7d6d5; border: #000000 2px solid"&gt;
	&lt;caption&gt;&lt;/caption&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;&lt;strong&gt;&lt;u&gt;Today&amp;#39;s Development Process&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/font&gt;&lt;/td&gt;
			&lt;td&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;font size="3"&gt;Development in an Aware Server Environment&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;
			&lt;ol&gt;
				&lt;li&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Contract definition&lt;/span&gt;&lt;/li&gt;
				&lt;li&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Data Contracts&lt;/span&gt;&lt;/li&gt;
				&lt;li&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Implementation&lt;/span&gt;&lt;/li&gt;
			&lt;/ol&gt;
			&lt;p&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;and then......&lt;/span&gt; 
			&lt;/p&gt;
			&lt;ol&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Host it&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Expose it&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Secure it&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Share it (so others can call the service)&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Deploy it/provision it&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Apply versioning&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Provide for logging and auditing&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
				&lt;li&gt;
				&lt;div&gt;
				&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Monitor performance&lt;/span&gt; 
				&lt;/div&gt;
				&lt;/li&gt;
			&lt;/ol&gt;
			&lt;/td&gt;
			&lt;td&gt;
			&lt;ol&gt;
				&lt;li&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Contract definition&lt;/span&gt;&lt;/li&gt;
				&lt;li&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;D&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;ata Contracts&lt;/span&gt;&lt;/li&gt;
				&lt;li&gt;&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;Implementation&lt;/span&gt;&lt;/li&gt;
			&lt;/ol&gt;
			&lt;p&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;And then.....&lt;/span&gt; 
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;&lt;font size="7"&gt;DONE&lt;/font&gt;&lt;/span&gt; 
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&amp;nbsp;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;&lt;/span&gt;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;&lt;/span&gt;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;&lt;/span&gt;
			&lt;/p&gt;
			&lt;p align="left"&gt;
			&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt;&lt;/span&gt;
			&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;span style="language: en-US"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="language: en-US"&gt;&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;span style="language: en-US"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="language: en-US"&gt;&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;span style="language: en-US"&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/span&gt;&lt;span style="language: en-US"&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;The table is pretty self explanatory, but let me break it down a little further. Aware Server gives you a complete o&lt;span style="font-size: 10pt; line-height: 113%; font-family: 'Franklin Gothic Book'; language: en-US"&gt; &lt;/span&gt;ut of the box solution for &lt;span&gt;&amp;nbsp;&lt;/span&gt;development, deployment, packaging, provisioning, monitoring and maintaining your services.&lt;span&gt;&amp;nbsp; &lt;/span&gt;It also enables you to instantly create grid/high performance computing environments, and enables human interaction workflows and business process management.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10pt; font-family: 'Franklin Gothic Book','sans-serif'"&gt;So with one platform, you are able to reduce your code by 40% and maximize your existing hardware.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Take a look at our videos to see exactly how easy we have made it to take your programming to the next level.&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.gridgistics.net/main_learn.aspx"&gt;http://www.gridgistics.net/main_learn.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/span&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/5dbS_6VMEdY/post.aspx</link>
      <author>Michael Smith</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Reduce-development-time-by-4025no-that-is-not-a-typo!.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=ebeb1f62-ed2f-4036-a162-2c9a6785c734</guid>
      <pubDate>Mon, 11 Feb 2008 00:01:00 -0400</pubDate>
      <category>code reduction</category>
      <category>gridGISTICS</category>
      <dc:publisher>Michael Smith</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=ebeb1f62-ed2f-4036-a162-2c9a6785c734</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=ebeb1f62-ed2f-4036-a162-2c9a6785c734</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Reduce-development-time-by-4025no-that-is-not-a-typo!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=ebeb1f62-ed2f-4036-a162-2c9a6785c734</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=ebeb1f62-ed2f-4036-a162-2c9a6785c734</feedburner:origLink></item>
    <item>
      <title>Windows Server 2003 Administration Tools Pack - Remote DesktopS</title>
      <description>&lt;p&gt;I have another tool of the trade for you.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:479abd0f-c721-4417-9971-fefc75f82bac" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/remote%20desktop" rel="tag"&gt;remote desktop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/windows%20management" rel="tag"&gt;windows management&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;&lt;em&gt;Unfortunately I cannot take credit for finding it - as Robert showed me about it.&amp;#160; Fortunately he hasn't blogged about it yet - so I'll hopefully steal his thunder :P&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Any time you need to remote desktop into multiple machines at the same time - the current Remote Desktop tool is pretty annoying.&amp;#160; Even when you specify a windowed mode, you are still alt-tabbing like some sort of demon-possessed.&lt;/p&gt;  &lt;p&gt;Windows Server 2003 Administration Tools Pack gives us Remote Desktops - and yes its plural.&lt;/p&gt;  &lt;p&gt;Here is the skinny - its just an MMC snap in for remote desktops.&amp;#160; However - it makes managing our large environments much easier, by letting you connect to simultaneously to as many machines as you want and quickly switch back and forth.&lt;/p&gt;  &lt;p&gt;So whether you are installing software, handling updates, tracking issues, peeking the event log or fighting the latest fire&amp;#160; - this will make it a bit easier.&lt;/p&gt;  &lt;p&gt;O Snap.&amp;#160; I almost forgot the best part (aside from being free) - the thing installs on Vista 32/64 just fine - thus allowing you to get this functionality on any machine you are on.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/WindowsServer2003AdministrationToolsPack_12AD3/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="392" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/WindowsServer2003AdministrationToolsPack_12AD3/image_thumb_1.png" width="616" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/Downloads/details.aspx?familyid=E487F885-F0C7-436A-A392-25793A25BAD7&amp;amp;displaylang=en"&gt;Download Here&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/IY9bWbXPCgc/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Windows-Server-2003-Administration-Tools-Pack---Remote-DesktopS.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=b0b5ca78-a1f6-48c3-804c-9cd1fec95898</guid>
      <pubDate>Sat, 09 Feb 2008 21:16:23 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=b0b5ca78-a1f6-48c3-804c-9cd1fec95898</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=b0b5ca78-a1f6-48c3-804c-9cd1fec95898</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Windows-Server-2003-Administration-Tools-Pack---Remote-DesktopS.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=b0b5ca78-a1f6-48c3-804c-9cd1fec95898</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=b0b5ca78-a1f6-48c3-804c-9cd1fec95898</feedburner:origLink></item>
    <item>
      <title>Resources for Windows High Performance Computing</title>
      <description>&lt;p&gt;I just wanted to spread some link juice back to Eric Nelson - who took the time to put together a great blog post on Windows High Performance Computing.&amp;nbsp; If you haven't stumbled upon his blog or aren't savvy on HPC.&amp;nbsp; Check it out.&lt;/p&gt; &lt;p&gt;Topics generally include: .NET 3.0 / Vista, AIC, Visual Studio 2008, SQL Server 2008, etc..&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/ericnel/archive/2008/02/07/resources-for-windows-high-performance-computing.aspx"&gt;Eric Nelson&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/uLmiCAuJ67k/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Resources-for-Windows-High-Performance-Computing.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=707b30b5-49ac-4610-8568-de39509944f1</guid>
      <pubDate>Thu, 07 Feb 2008 22:00:35 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=707b30b5-49ac-4610-8568-de39509944f1</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=707b30b5-49ac-4610-8568-de39509944f1</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Resources-for-Windows-High-Performance-Computing.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=707b30b5-49ac-4610-8568-de39509944f1</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=707b30b5-49ac-4610-8568-de39509944f1</feedburner:origLink></item>
    <item>
      <title>Take Control of Window Services</title>
      <description>&lt;p&gt;Came across a freebie tool that is really proving invaluable to me and I wanted to share the love.&amp;nbsp; Whether you write Windows services or just have a vague idea of what they are you need to read further. &lt;/p&gt; &lt;p&gt;Its called &lt;a href="http://www.mindswarm.com"&gt;Service Studio&lt;/a&gt; and manages Windows Services (Services MMC replacement) from an incredibly powerful interface.&amp;nbsp; Here is a list of a few of the highlights:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Multi-select services and adjust their properties all at once.&lt;/li&gt; &lt;li&gt;Create Service Profiles and Switch between with a single click.&lt;/li&gt; &lt;li&gt;Remotely Manage another machines Services (yep you heard me)&lt;/li&gt; &lt;li&gt;Review Service Dependencies&lt;/li&gt; &lt;li&gt;View Current Service Memory footprint in a graphical form.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This profile thing is a real life saver. In my case - I am continually changing from my developer profile (containing Aware / SQL / VM Services) and to my designer profile (just network / security services left on).&amp;nbsp; On laptops this works great as well - as you may have a development profile and a Starbucks profile - or an audio recording profile and a gamers profile. (whatever floats your boat).&lt;/p&gt; &lt;p&gt;Check it out... its free and has Ryan's personal seal of approval. &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.mindswarm.com"&gt;Service Studio&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;Our Current Options&lt;/h3&gt; &lt;p&gt;Ok..&amp;nbsp; smarty pants.&amp;nbsp; Your first inclination is to say.. "Ryan haven't you heard of the Services MMC Snap-In?".&amp;nbsp; O contraire.. I have and have spent many dozen clicks to yield changing the startup type of 3 services.&lt;/p&gt; &lt;p&gt; ( for those who aren't familiar in XP we had )&lt;/p&gt; &lt;p&gt;&lt;img src="http://www.pagebox.net/dotnet/dotnet-install38.jpg"&gt;&lt;/p&gt; &lt;p&gt;(hold your applause... I know its some good look'n stuff)&lt;/p&gt; &lt;p&gt;But wait in Vista we have a new and not improved version.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/TakeControlofWindowServices_133B5/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="342" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/TakeControlofWindowServices_133B5/image_thumb.png" width="468" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;New great look! No new love.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;The Ninja Weapon&lt;/h3&gt; &lt;p&gt;(drum roll please...)&lt;/p&gt; &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/TakeControlofWindowServices_133B5/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="383" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/TakeControlofWindowServices_133B5/image_thumb_2.png" width="456" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Ok look at this thing..&amp;nbsp; If it did nothing more than let me multi-select and change properties I would consider it a must have.&amp;nbsp; But hang on to your horses!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/TakeControlofWindowServices_133B5/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="385" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/TakeControlofWindowServices_133B5/image_thumb_3.png" width="459" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;How about a visual representation of the service footprint?&lt;/p&gt; &lt;p&gt;Ok.. I'm done sharing for the day.&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:90aa924f-7dc3-4fe0-b878-2b7038f92da1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/windows%20services" rel="tag"&gt;windows services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/tools" rel="tag"&gt;tools&lt;/a&gt;,&lt;a href="http://technorati.com/tags/3rd%20Party" rel="tag"&gt;3rd Party&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/b2m0OlbQPWo/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2008/02/Take-Control-of-Window-Services.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=609de84a-504b-4c9c-a7b0-872285fc0a0a</guid>
      <pubDate>Thu, 07 Feb 2008 21:53:41 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=609de84a-504b-4c9c-a7b0-872285fc0a0a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=609de84a-504b-4c9c-a7b0-872285fc0a0a</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/02/Take-Control-of-Window-Services.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=609de84a-504b-4c9c-a7b0-872285fc0a0a</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=609de84a-504b-4c9c-a7b0-872285fc0a0a</feedburner:origLink></item>
    <item>
      <title>Aware Server - Core Configurations</title>
      <description>&lt;p&gt;If you want to have different core configurations, meaning, a different repository for each core configuration, you can accomplish this with the creation of another StoreRepository file.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The StoreRepository.xml file can be found in the following directory&lt;/p&gt;  &lt;p&gt;C:\Program Files\Common Files\Gridgistics\Aware\Runtime&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;By default, the StoreRepository.xml file will be used for every environment, but you you want a different repository for a different environment, just copy the StoreRepository.xml file and then rename it to StoreRepository.{environment name}.xml.&amp;#160; Make your changes within the new file, and you now have your new repository configuration. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now when you switch your core server to the &amp;quot;environment name&amp;quot; it will use the configuration found in the StoreRepository.{environment name}.xml&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If now custom StoreRepository file is found, the default file is used.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:53eb55d9-03dd-4964-83ee-8d9dc3499dce" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/gridGISTICS" rel="tag"&gt;gridGISTICS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Aware%20Server" rel="tag"&gt;Aware Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Configuration" rel="tag"&gt;Configuration&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/5IzfCOCzmro/post.aspx</link>
      <author>darrell legault</author>
      <comments>http://blog.gridgistics.net/post/2008/01/Aware-Server---Core-Configurations.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=ac7fd669-8899-4cb0-ab15-cde9669a54ed</guid>
      <pubDate>Fri, 25 Jan 2008 00:22:27 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>darrell legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=ac7fd669-8899-4cb0-ab15-cde9669a54ed</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=ac7fd669-8899-4cb0-ab15-cde9669a54ed</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/01/Aware-Server---Core-Configurations.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=ac7fd669-8899-4cb0-ab15-cde9669a54ed</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=ac7fd669-8899-4cb0-ab15-cde9669a54ed</feedburner:origLink></item>
    <item>
      <title>Aware Server - Create Environments</title>
      <description>&lt;p&gt;So you have Aware Server installed, and now you want to create your own little kingdom.&amp;#160; A place where you can hoard all the machines you can find.&amp;#160; Its easy. &lt;/p&gt;  &lt;p&gt;First, you will need to run the Aware Runtime Management Tool.&amp;#160; It can be found in the &lt;/p&gt;  &lt;p&gt;C:\Program Files\Common Files\Gridgistics\Aware\Runtime\AwareLocalRuntimeTools.exe &lt;/p&gt;  &lt;p&gt;Run the exe and you should see the following screen. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="389" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The Aware Local Runtime Tools, as it suggests, consists of many different tools to help diagnose and certify the runtime environments.&amp;#160; For today's exercise, we will concentrate on create a new environment.&amp;#160; Once you click on the &amp;quot;environments&amp;quot; icon on the left, the right will display a list of all of the environments that already exist.&amp;#160; To create a new one simply click the &amp;quot;new&amp;quot; link below the list of environments. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_1.png" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The above screen will be displayed where you can change any one of its listed properties. &lt;/p&gt;  &lt;p&gt;Name -- the name of your new environment &lt;/p&gt;  &lt;p&gt;Direct Uri -- the location of the service registry &lt;/p&gt;  &lt;p&gt;Locator Address -- multicast address used for locating services &lt;/p&gt;  &lt;p&gt;locator port -- port used for locating services &lt;/p&gt;  &lt;p&gt;Notification Address -- multicast address used for notifications &lt;/p&gt;  &lt;p&gt;Notification Port -- port used for notifications &lt;/p&gt;  &lt;p&gt;Force direct connect -- instead of using discovery, force the use of the specific URI &lt;/p&gt;  &lt;p&gt;Ignore Isolation Mode -- when checked, allows the environment to interact with other machines.&amp;#160; If left unchecked, messages from other machines will be ignored, hence your environment will be isolated from everyone else. &lt;/p&gt;  &lt;p&gt;In our case, I will just enter a new name and change my ports to 3020 and 3021 respectively, then click ok.&amp;#160; The new environment is now created.&amp;#160; Before we go through the steps to switch to that environment, you need to make sure you create the groups for it (so that you can manage it) and make sure you add the account for which the Aware Services run as is added to those new groups.&amp;#160; If your new environment name is &amp;quot;Stage&amp;quot; then you will need to create 3 new groups: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Aware Stage Management &lt;/li&gt;    &lt;li&gt;Aware Stage Deployment &lt;/li&gt;    &lt;li&gt;Aware Stage Diagnostics &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Now that the groups exist, and we added the account to those groups, we can switch our local machine to use that environment.&amp;#160; To do so: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;start the Aware Server Enterprise Manager &lt;/li&gt;    &lt;li&gt;go to the &amp;quot;Servers&amp;quot; tab at the top. &lt;/li&gt;    &lt;li&gt;Click the &amp;quot;Manage All Servers&amp;quot; in the top tool bar &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;You should now see the following screen. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_4.png" width="607" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If other machines on your network are running Aware (server or just service hosts) they should appear on the left hand side.&amp;#160; To switch environments, just select the machine, and then select a environment from the &amp;quot;other environments&amp;quot; drop down list.&amp;#160; In that list you should see our newly created environment. &lt;/p&gt;  &lt;p&gt;For my exercise, I'm going to select my new environment &amp;quot;Rhys&amp;quot; and then the &amp;quot;Server Role&amp;quot; of &amp;quot;Core&amp;quot;, then click the &amp;quot;switch to&amp;quot; button.&amp;#160; Environment Changed.&amp;#160; Notice my environment name is now &amp;quot;Rhys&amp;quot;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_5.png" width="607" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now this is where it get's fun.&amp;#160; We can now take over, meaning, I can move machines into MY environment so I can control them.&amp;#160; Simply click on another machine, then just as we did earlier, select the environment, and then role, and then click &amp;quot;switch to&amp;quot;.&amp;#160; Take one machine. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_6.png" width="607" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Or two. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_16.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_7.png" width="607" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Or Three.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_8.png" width="607" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, close the Manage Machine Environments screen, and then click on the &amp;quot;Manage Another Environment&amp;quot; in the tool bar.&amp;#160; Select your new environment that you just switched too, then select the &amp;quot;Services&amp;quot; tab.&amp;#160; You should see all of the machines you just moved to your environment ready to be used. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_20.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerCreateEnvironments_1482/image_thumb_9.png" width="625" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Enjoy your newly found power. &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7f1bd465-d1a9-4616-8f5e-fc96f8134670" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/gridGISTICS" rel="tag"&gt;gridGISTICS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Aware%20Server" rel="tag"&gt;Aware Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Installation" rel="tag"&gt;Installation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Environments" rel="tag"&gt;Environments&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/_jDEBTI2sXw/post.aspx</link>
      <author>darrell legault</author>
      <comments>http://blog.gridgistics.net/post/2008/01/Aware-Server---Create-Environments.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=f6f2491f-3450-4dde-8816-2a8773016e10</guid>
      <pubDate>Thu, 24 Jan 2008 13:30:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>darrell legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=f6f2491f-3450-4dde-8816-2a8773016e10</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=f6f2491f-3450-4dde-8816-2a8773016e10</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/01/Aware-Server---Create-Environments.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=f6f2491f-3450-4dde-8816-2a8773016e10</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=f6f2491f-3450-4dde-8816-2a8773016e10</feedburner:origLink></item>
    <item>
      <title>Aware Server Installation</title>
      <description>&lt;p&gt;
Just how quick and easy is it to have your own grid of Aware Service Hosts at your disposal?&amp;nbsp; Lets walk through the process and see.
&lt;/p&gt;
&lt;h3&gt;Step 1 - Aware Server Installation&lt;/h3&gt;
&lt;p&gt;
Locate your installation directory, and run the AwareSetup.exe
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_6.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_2.png" border="0" alt="image" width="602" height="263" /&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Accept the license agreement, and you will advance to the option screen.
&lt;/p&gt;
&lt;h3&gt;Choose your option&lt;/h3&gt;
&lt;p&gt;
Today we will walk through the Aware Core Server install.&amp;nbsp; The core server, as it implies, is the main server for an environment.&amp;nbsp; To the right on the screen you will notice the components that get installed during the process, and as you select different options, that list changes.&amp;nbsp; So select the Aware Core Server option and click next.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_8.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_3.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;Service Setup&lt;/h3&gt;
&lt;p&gt;
Either use an existing account that you know will have proper access, or create a new account.&amp;nbsp; All of the installed services will us this account to run.&amp;nbsp; The key to the services account setting is that each machine should use the same account.&amp;nbsp; Once you enter your account information, click next.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_10.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_4.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;Repository Setup&lt;/h3&gt;
&lt;p&gt;
The repository is where Aware Server stores all of its configuration, manifests (services, business processes, asp.net web sites), provision policies, audit logs, etc...&amp;nbsp; You simply need to point to an existing instance of Microsoft SQL Server 2005 with valid credentials to create a new database.&amp;nbsp; Enter the information, and click validate.&amp;nbsp; If all looks well, click next.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_14.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_6.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;Shared Directory&lt;/h3&gt;
&lt;p&gt;
For business process state (workflow state) a shared directory is used.&amp;nbsp; Ensure that the credentials you used (service setup) has access to the directory you use and then click next.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_16.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_7.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;Aware Environment&lt;/h3&gt;
&lt;p&gt;
The installation creates a &amp;quot;default&amp;quot; environment for you, or you can easily import an existing environment.&amp;nbsp; For our example we will just use the default environment, so just click next.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_18.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_8.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;Complete Installation&lt;/h3&gt;
&lt;p&gt;
The last step in the wizard is a confirmation screen listing the steps that will executed to complete your installation.&amp;nbsp; Click &amp;quot;start&amp;quot; to complete your installation.&amp;nbsp; As the installation completes each step, you will see that step change to a green check mark.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_20.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_9.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Within a few moments, all actions should have green check marks.&amp;nbsp; Click &amp;quot;close&amp;quot;.&amp;nbsp; We are now ready to start the Aware Server Enterprise Manager.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_22.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_10.png" border="0" alt="image" width="600" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h3&gt;Step 2 - Start the Aware Serve Enterprise Manager&lt;/h3&gt;
&lt;p&gt;
Click &amp;quot;start&amp;quot; on your taskbar, and then click on the &amp;quot;Gridgistics Aware&amp;quot; folder.&amp;nbsp; You will find the Aware Enterprise Manager shortcut.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_24.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_11.png" border="0" alt="image" width="301" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
When you start the Aware Enterprise Manager you may notice the following screen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_26.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_12.png" border="0" alt="image" width="627" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Aware Server security is relies on the groups derived from the environment name, hence in our case we did not already have the above groups.&amp;nbsp; We will need to add these groups, and then add the account we used during the installation to the newly created groups.&amp;nbsp; Regardless of not having the groups, you should still see the newly installed environment.&amp;nbsp; We will just need to create the groups and add our account to that group before we continue (so we have security setup to manage our environment).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_28.png"&gt;&lt;img style="border-width: 0px" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/AwareServerInstallation_14FDF/image_thumb_13.png" border="0" alt="image" width="625" height="484" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
And now you have it, Aware Server installed and ready to go.
&lt;/p&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3bebc979-9879-4759-8221-634139216d75" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/gridGISTICS"&gt;gridGISTICS&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Aware%20Server"&gt;Aware Server&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Installation"&gt;Installation&lt;/a&gt;
&lt;/div&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/6iL0g5plr7E/post.aspx</link>
      <author>Darrell Legault</author>
      <comments>http://blog.gridgistics.net/post/2008/01/Aware-Server-Installation.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=4170b209-d676-4c10-96bb-8dda9291f3d8</guid>
      <pubDate>Thu, 24 Jan 2008 12:30:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Darrell Legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=4170b209-d676-4c10-96bb-8dda9291f3d8</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=4170b209-d676-4c10-96bb-8dda9291f3d8</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/01/Aware-Server-Installation.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=4170b209-d676-4c10-96bb-8dda9291f3d8</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=4170b209-d676-4c10-96bb-8dda9291f3d8</feedburner:origLink></item>
    <item>
      <title>Aware Server 3.0 Released</title>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6909186c-c87c-4b7d-b91d-04217b3f5080" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Aware%20Server"&gt;Aware Server&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Gridgistics"&gt;Gridgistics&lt;/a&gt; 
&lt;/div&gt;
&lt;p&gt;
We have been recieving serveral questions about Aware Server 3.0 and some of the new features, so&amp;nbsp;I thought I would repost the press release here as well.&amp;nbsp; Let me know if anyone has any more questions about what is new in Aware Server 3.0. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p style="margin: 10pt 0.65in 14pt; text-align: center; border: medium none" class="MsoIntenseQuote" align="center"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font face="Calibri" size="3" color="#4f81bd"&gt;gridGISTICS Aware Server&lt;span&gt;&amp;trade;&lt;/span&gt; reduces development time by 40%&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Atlanta GA (September 18, 2007)&amp;mdash;&lt;span&gt;&amp;nbsp; &lt;/span&gt;gridGISTICS announced the release of Aware Server 3.0, the latest version of their revolutionary service virtualization and grid computing platform providing an all-encompassing solution to SOA, distributed/grid computing, human workflow and business process management for the .NET environment.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;For years businesses and their IT departments have shied away from these technologies because of their complexity and the associated development costs, even though they could have significant business impact.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;ldquo;Our goal was to make things easy, whether that was SOA, distributed computing or workflow,&lt;span&gt;&amp;nbsp; &lt;/span&gt;so businesses could really dream about the &amp;ldquo;what if&amp;rdquo; and know the cost and complexity of the technology would not get in the way.&amp;rdquo;&lt;span&gt;&amp;nbsp; &lt;/span&gt;says Michael Smith, VP of Sales and Marketing&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;ldquo;We wanted businesses to be able to ask questions like: &amp;ldquo;What if everything we write is immediately grid enabled, scalable, and reliable?&amp;rdquo; With the power and ease of Aware Server, they can now focus on their business logic and not how they are going to architect and execute their solutions. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The ease of use is one aspect that makes Aware Server 3.0 so impressive over earlier versions.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;ldquo;We have been focused on the typical .NET developer from the beginning. With Aware 3.0, just about anyone can install, watch a couple of the instructional videos and be creating, deploying, and provisioning services as well as distributed/grid environments and workflows.&amp;rdquo;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;ldquo;Our biggest challenge is people dismissing us as hype, but we really make it that easy. &amp;ldquo; says Dan Haligas, Director of Product Development&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Aware Server is built on .NET 3.0 and is completely integrated with Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF).&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;ldquo;We realized that these technologies were the key in solving a lot of the issues with the complexity that is introduced while trying to leverage the business benefits of SOA and grid/distributed technologies.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Because we have addressed these issues from the perspective of the developer, we ended up with a product that really allows developers to use the .NET technology out of the box, accelerating productivity while not getting in the way&amp;rdquo; says Darrell Legault, COO.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Aware Server is the ideal product for anything that requires scalability and reliability.&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;It also can easily reduce the amount of code for a project by 40% and will reduce the cost of monitoring and maintenance over the application lifecycle as well.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;New features include:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: Symbol"&gt;&lt;span&gt;&lt;font size="3"&gt;&amp;middot;&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Visual Studio 2005 and 2008 integration.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: Symbol"&gt;&lt;span&gt;&lt;font size="3"&gt;&amp;middot;&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Expansion of F5 debugging for services and business processes eliminates the need to build test clients.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: Symbol"&gt;&lt;span&gt;&lt;font size="3"&gt;&amp;middot;&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;One click deployment of services.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: Symbol"&gt;&lt;span&gt;&lt;font size="3"&gt;&amp;middot;&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;More&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Aware Server is a truly revolutionary solution for IT because when you move your applications from environment to environment (development, integration, staging, QA, production), nothing changes. All service locations are abstracted (virtualized with no hard coded or configured Uri&amp;#39;s) and configuration (database connection strings, etc.) can be changed by application administrators without intervention from a developer. We also realized that ASP.NET is the platform of choice when doing a .NET-based UI, so we provided complete support for deploying your ASP.NET-based solutions to as many Web servers as you have in your farm with the click of a button.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: black"&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Aware Server also provides a lifecycle solution for the IT department providing for development, deployment, monitoring and maintenance of your solutions all within the Aware Environment. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;With businesses increasingly focused on the agility of their IT departments and trying to find solutions to quickly respond to the pressure of delivering new business functionality, Aware Server represents a cost effective solution with an almost immediate ROI. &lt;span&gt;&amp;nbsp;&lt;/span&gt;gridGISTICS&lt;span&gt;&amp;nbsp; &lt;/span&gt;offers a best of breed and cost effective solution that can be quickly deployed&lt;span&gt;&amp;nbsp; &lt;/span&gt;to&lt;span&gt;&amp;nbsp; &lt;/span&gt;leverage new .Net technologies and relieve the burden of IT infrastructure, delivering the flexibility to rapidly respond to changing business demands.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/NOtnwBuHAqA/post.aspx</link>
      <author>Michael Smith</author>
      <comments>http://blog.gridgistics.net/post/2008/01/Aware-Server-30-Released.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=18bd958c-d931-4f59-8f8a-eee463ba2849</guid>
      <pubDate>Thu, 24 Jan 2008 12:11:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Michael Smith</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=18bd958c-d931-4f59-8f8a-eee463ba2849</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=18bd958c-d931-4f59-8f8a-eee463ba2849</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/01/Aware-Server-30-Released.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=18bd958c-d931-4f59-8f8a-eee463ba2849</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=18bd958c-d931-4f59-8f8a-eee463ba2849</feedburner:origLink></item>
    <item>
      <title>Service Oriented Platform (SOP) - Aware Server</title>
      <description>&lt;p&gt;Another way of describing Aware Server -&amp;#160; &lt;strong&gt;Service Oriented Platform (SOP).&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Lets set the stage of where this originates from.&amp;#160; Many IT organizations leverage SOA with the understanding that the spirit of SOA is to provide the basis of all future needs of the enterprise.&amp;#160; Requirements gathered, technical specifications created, services and processes designed, a beginnings of a solution is born (not to over simplify things but for brevity of the idea).    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Time to execute.&amp;#160; Where do we start?&amp;#160; Planning the development, what is needed first, where are they tested, where do I put configuration?&amp;#160; What about logistics of the development environment, staging, QA, production?&amp;#160; What about integration testing, deployment of services (installation), how do I redeploy a change, or create another version, or know what has already been implemented?&amp;#160; How do I promote from development to staging to QA to production? &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How do I make SOA a reality?&amp;#160; You need a platform on which you can execute SOA&lt;/strong&gt;.&amp;#160; Many try to build one, but they quickly find out that is where they lose their ROI that they originally thought SOA would yield them. &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;This is where Aware Server comes in.&amp;#160; &lt;strong&gt;Aware Server is SOP&lt;/strong&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;The platform that brings development, configuration, deployment, provisioning, promotion, monitoring, management, and much much more to SOA.&amp;#160; &lt;br /&gt;    &lt;br /&gt;See just how... its easy! &lt;a title="http://www.gridgistics.net/main_learn.aspx" href="http://www.gridgistics.net/main_learn.aspx"&gt;Aware Server Video's&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f40770e0-540f-4bac-939e-c4eb919b64e9" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Service%20Oriented%20Architecture" rel="tag"&gt;Service Oriented Architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Aware%20Server" rel="tag"&gt;Aware Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/gridGISTICS" rel="tag"&gt;gridGISTICS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Service%20Oriented%20Platform" rel="tag"&gt;Service Oriented Platform&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SOP" rel="tag"&gt;SOP&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/7db9nVMUltI/post.aspx</link>
      <author>darrell legault</author>
      <comments>http://blog.gridgistics.net/post/2008/01/Service-Oriented-Platform-(SOP)---Aware-Server.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=49d1c417-a69a-45f1-befb-b759f6e1c96d</guid>
      <pubDate>Tue, 22 Jan 2008 13:36:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>darrell legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=49d1c417-a69a-45f1-befb-b759f6e1c96d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=49d1c417-a69a-45f1-befb-b759f6e1c96d</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/01/Service-Oriented-Platform-(SOP)---Aware-Server.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=49d1c417-a69a-45f1-befb-b759f6e1c96d</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=49d1c417-a69a-45f1-befb-b759f6e1c96d</feedburner:origLink></item>
    <item>
      <title>Aware Server and BizTalk Services</title>
      <description>&lt;p&gt;I put together a video on how we have quickly and easily integrated BizTalk Services / ISB (Internet Service Bus) into our product Aware Server.&amp;#160; With a few clicks, we can quickly and easily expose any Aware Services on the ISB.&amp;#160; No knowledge of how to expose a service on the ISB is necessary, and any existing Aware Service is instantly available via the ISB. &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;The video can be found at the link below. &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.gridgistics.net/userfiles/downloads/videos/aware_and_biztalk_services.wmv" href="http://www.gridgistics.net/userfiles/downloads/videos/aware_and_biztalk_services.wmv"&gt;http://www.gridgistics.net/userfiles/downloads/videos/aware_and_biztalk_services.wmv&lt;/a&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0b901c2f-554b-4edd-9260-21d0157cf189" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Aware%20Server" rel="tag"&gt;Aware Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BizTalk%20Services" rel="tag"&gt;BizTalk Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ISB" rel="tag"&gt;ISB&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/dkQhbsrrszw/post.aspx</link>
      <author>darrell legault</author>
      <comments>http://blog.gridgistics.net/post/2008/01/Aware-Server-and-BizTalk-Services.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=283583af-5efc-4a69-8503-e7c9648499ed</guid>
      <pubDate>Tue, 15 Jan 2008 09:51:00 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>darrell legault</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=283583af-5efc-4a69-8503-e7c9648499ed</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=283583af-5efc-4a69-8503-e7c9648499ed</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2008/01/Aware-Server-and-BizTalk-Services.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=283583af-5efc-4a69-8503-e7c9648499ed</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=283583af-5efc-4a69-8503-e7c9648499ed</feedburner:origLink></item>
    <item>
      <title>Gartner's top 10 strategic technologies for 2008</title>
      <description>&lt;p&gt;Found an interesting article toting the top 10 strategic technologies of '08.&amp;#160; At a minimum it was really reassuring that gridGISITCS in on the right path.&amp;#160; The Aware Server product, encompasses 4 out of 10 of these.&amp;#160; If you don't mind I'd love to comment on it. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9041738"&gt;http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9041738&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt; &lt;strong&gt;&lt;/strong&gt;  &lt;h2&gt;Green IT &lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;Given that even the most intensive data centers, have less than a 5% average CPU utilization - its actually quite disturbing seeing a shiny new cabinet of servers knowing each server runs a lonely service totally unAWARE of the other machines.&amp;#160; Each service just anxiously waiting for its turn to run - all the meanwhile its machine is consuming power 24/7 and the host is consuming power to keep the environment temperatures regulated.&amp;#160; I could be just a lil biased, however - I think if your enterprise services knew they could be &amp;quot;Aware&amp;quot;&amp;#160; - they might just go on strike until their developers promise to put them on Aware Server ;)     &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Business process management &lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;Here is one technology strategy that is used loosely - mostly because the word &amp;quot;management&amp;quot; is relative.&amp;#160; Some professionals think that being able to start and stop a business process and report on the process's outcome is management.&amp;#160; Well it is... but it can be so much more.&amp;#160; How about visual display of running workflow's, the time taken at each step, the properties and parameters of each one as well as a complete log and audit trail....&amp;#160; o and did I forget to mention?&amp;#160; Its built right in!&amp;#160; Write the service and &amp;quot;whoop there it is!&amp;quot;-&amp;#160; management and monitoring immediately available.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Virtualization &lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;When virtualization is mentioned most people directly think of server virtualization aka hardware virtualization - in order to get more utilization out of a machine, reduce licensing costs and hopefully give higher reliability and availability (I could go on...)&amp;#160; I agree whole heartedly, but think our sector needs to extend their understanding of virtualization to service virtualization and application virtualization as well.&amp;#160; Spawning up new VM's, rather than new machines - does yield warm and fuzzies, but in many situations the extra overhead of the VM's isn't needed.&amp;#160; Service virtualization truly allows commodity computing and the ability to dynamically provision services to hardware resources based upon load or policy.&amp;#160; Service virtualization allows SOA to be done right!     &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Computing fabric &lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;I was excited to hear about this!&amp;#160; Distributed computing / grid computing / computing fabric - had previously been something solely for computer science uber ninjas and universities with million dollar grants trying to solve world changing problems.&amp;#160; Aware Server was written by those uber ninjas with the goal of making grid computing easy.&amp;#160; That's exactly what they did, and they didn't stop there...     &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;The Web platform &lt;/h2&gt;  &lt;p&gt;   &lt;br /&gt;Patrick Thibodeau says &amp;quot;This is the model for services in the future.&amp;quot; and I couldn't agree more.&amp;#160; Given this priority in gridGISTICS we are incredibly pleased to announce that Web Project deployment is fully supported in Aware Server 3.0.&amp;#160; What this means is that you can either go home early on deployment Friday's or you'll have to tell your boss deploying to the web site to the farm no longer takes 6 hours and is now reduced to a key stroke - we won't tell them if you don't :) &lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/fFyTgeqDdgU/post.aspx</link>
      <author>Ryan Turner</author>
      <comments>http://blog.gridgistics.net/post/2007/11/Gartners-top-10-strategic-technologies-for-2008.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=1a6fe4d7-1549-4dfd-abeb-da22dddc7476</guid>
      <pubDate>Wed, 28 Nov 2007 08:16:26 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Ryan Turner</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=1a6fe4d7-1549-4dfd-abeb-da22dddc7476</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=1a6fe4d7-1549-4dfd-abeb-da22dddc7476</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2007/11/Gartners-top-10-strategic-technologies-for-2008.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=1a6fe4d7-1549-4dfd-abeb-da22dddc7476</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=1a6fe4d7-1549-4dfd-abeb-da22dddc7476</feedburner:origLink></item>
    <item>
      <title>External Windows Workflow Correlated Communication</title>
      <description>&lt;p class="MsoNormal"&gt;This is 1 of a 2 part posting on external windows workflow correlated communication.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;The first post will focus on windows workflow today without the use of Aware Server.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;After reading this post you should be able to plug in a communication service that supports correlation into your windows workflow instances.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The second post will build off the sample built here and demonstrate what Aware Server does to help make this easier in a server environment.&lt;/p&gt;  &lt;h1&gt;Workflow External Communication Service&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;The Windows Workflow runtime defines a way for the hosting application to communicate back and forth with a running workflow instance via an &lt;b style="mso-bidi-font-weight: normal"&gt;ExternalDataExchange&lt;/b&gt; service.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;To perform this you start by creating a normal .NET interface.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;interface&lt;/span&gt; &lt;span style="color: #2b91af"&gt;IOrderWorkflowService               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; OrderCreated;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; OrderShipped;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Next you adorn your interface with &lt;b style="mso-bidi-font-weight: normal"&gt;ExternalDataExchange&lt;/b&gt; attribute located in the &lt;b style="mso-bidi-font-weight: normal"&gt;System.Workflow.Activities&lt;/b&gt; namespace.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataExchange&lt;/span&gt;&lt;/b&gt;]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;interface&lt;/span&gt; &lt;span style="color: #2b91af"&gt;IOrderWorkflowService&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Any events your fire from you workflow service must have &lt;b style="mso-bidi-font-weight: normal"&gt;EventArgs&lt;/b&gt; that derive from &lt;b style="mso-bidi-font-weight: normal"&gt;ExternalDataEventArgs &lt;/b&gt;and must be &lt;b style="mso-bidi-font-weight: normal"&gt;Serializable&lt;/b&gt;.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/summary&amp;gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;Serializable&lt;/span&gt;&lt;/b&gt;]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt; : &lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataEventArgs&lt;/span&gt;&lt;/b&gt;&lt;span style="color: navy"&gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; orderId;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; OrderId              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;get&lt;/span&gt; { &lt;span style="color: blue"&gt;return&lt;/span&gt; orderId; }              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;set&lt;/span&gt; { orderId = &lt;span style="color: blue"&gt;value&lt;/span&gt;; }              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;                &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/summary&amp;gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;param name=&amp;quot;instanceId&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;param name=&amp;quot;orderId&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; OrderEventArgs(&lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; instanceId, &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; orderId)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;: &lt;span style="color: blue"&gt;base&lt;/span&gt;(instanceId)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.orderId = orderId;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Correlation is built in the Windows Workflow engine via several attributes.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;The workflow runtime uses these correlation attributes to ensure an event is fired on the right activity inside a running worklow instance.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;CorrelationParameter&lt;/span&gt;&lt;/b&gt;(&lt;span style="color: red"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;)]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataExchange&lt;/span&gt;&lt;/b&gt;]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;interface&lt;/span&gt; &lt;span style="color: #2b91af"&gt;IOrderWorkflowService               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;CorrelationInitializer&lt;/span&gt;&lt;/b&gt;]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;CorrelationAlias&lt;/span&gt;&lt;/b&gt;(&lt;span style="color: red"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;, &lt;span style="color: red"&gt;&amp;quot;e.OrderId&amp;quot;&lt;/span&gt;)]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; OrderCreated;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;[&lt;b&gt;&lt;span style="color: navy"&gt;CorrelationAlias&lt;/span&gt;&lt;/b&gt;(&lt;span style="color: red"&gt;&amp;quot;OrderId&amp;quot;&lt;/span&gt;, &lt;span style="color: red"&gt;&amp;quot;e.OrderId&amp;quot;&lt;/span&gt;)]              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; OrderShipped;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;The &lt;b style="mso-bidi-font-weight: normal"&gt;CorrelationParameter&lt;/b&gt; attribute defines what the correlation parameter should be named and will be used in with all the other correlation attributes.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;In this case we named our parameter &amp;#x201C;OrderId&amp;#x201D;.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;You can have N number of these attributes.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;The combination of the parameters must form a unique key.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The &lt;b style="mso-bidi-font-weight: normal"&gt;CorrelationAlias&lt;/b&gt; attribute defines a mapping between the parameter &amp;#x201C;OrderId&amp;#x201D; to the path inside the &lt;b style="mso-bidi-font-weight: normal"&gt;OrderEventArgs&lt;/b&gt; which is &amp;#x201C;e.OrderId&amp;#x201D;.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;Why &amp;#x201C;e.&amp;#x201D; you ask?&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;Well if you right click on the &lt;b style="mso-bidi-font-weight: normal"&gt;EventHandler&lt;/b&gt; class and select &amp;#x201C;Go to Definition&amp;#x201D; you will see that the delegate&amp;#x2019;s signature is as follows:&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; color: blue; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;delegate&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;TEventArgs&amp;gt;(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, TEventArgs e);&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;Notice the second parameter named &amp;#x201C;e&amp;#x201D;.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;Hence once our &lt;b style="mso-bidi-font-weight: normal"&gt;OrderEventArgs&lt;/b&gt; is replaced in the delegate &amp;#x201C;e.OrderId&amp;#x201D; would get us to the OrderId property on the OrderEventArgs.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; color: #2b91af; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;...EventHandler&lt;/span&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&amp;lt;OrderEventArgs&amp;gt;(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, OrderEventArgs e);&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;The last attribute of concern is the &lt;b style="mso-bidi-font-weight: normal"&gt;CorrelationInitializer&lt;/b&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;This attribute is very important and must be on at least one event or on method in your interface.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;When either an event or method is called with this attribute applied the workflow runtime will establish the correlation for that particular workflow instance and bind it to the &amp;#x201C;OrderId&amp;#x201D; thus marrying the OrderId to the workflow instance.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;In our example above we opted to fire the created event once an order workflow instance is started to initiate the correlation.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Next you must provide an implementation of this interface in a local class.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt; : &lt;span style="color: #2b91af"&gt;IOrderWorkflowService               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; OrderCreated;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; OrderShipped;              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; RaiseOrderCreated(&lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; instanceId, &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; orderId)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;RaiseEvent(&lt;span style="color: blue"&gt;this&lt;/span&gt;.OrderCreated, instanceId, orderId);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; RaiseOrderShipped(&lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; instanceId, &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; orderId)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;RaiseEvent(&lt;span style="color: blue"&gt;this&lt;/span&gt;.OrderShipped, instanceId, orderId);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; RaiseEvent(&lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;&amp;gt; eventHandler, &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; instanceId, &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt; orderId)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (eventHandler != &lt;span style="color: blue"&gt;null&lt;/span&gt;)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;eventHandler(&lt;span style="color: blue"&gt;null&lt;/span&gt;, &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;OrderEventArgs&lt;/span&gt;&lt;/b&gt;(instanceId, orderId));              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;After the implementation is complete the Workflow Runtime needs to know about this service specifically the &lt;b style="mso-bidi-font-weight: normal"&gt;ExternalDataExchangeService&lt;/b&gt; because it will wire up all the events on the implementation class to ensure that when someone fires the normal CLR event that it gets put in the workflow instance&amp;#x2019;s scheduler queue and processed.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;This code goes in the program.cs file if you are using a console workflow application.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; background: silver; color: navy; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;ExternalDataExchangeService&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; service = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataExchangeService&lt;/span&gt;&lt;/b&gt;();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;workflowRuntime.AddService(service);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: " courier new"; mso-no-proof: yes"&gt;             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; font-family: " courier new"; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;service.AddService(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;());&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;h1&gt;Sample Workflow&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;To use the service in the workflow drag on a &lt;b style="mso-bidi-font-weight: normal"&gt;HandleExternalEventActivity&lt;/b&gt; and configure it to point at our &lt;b style="mso-bidi-font-weight: normal"&gt;IOrderWorkflowService&lt;/b&gt; and the &lt;b style="mso-bidi-font-weight: normal"&gt;OrderCreated&lt;/b&gt; event.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image002_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="168" alt="clip_image002" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image002_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_4" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Notice the &lt;b style="mso-bidi-font-weight: normal"&gt;CorrelationToken&lt;/b&gt; property above.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;This is the key to using correlation in our workflow.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;Type in any string you want like &amp;#x201C;OrderToken&amp;#x201D; for example and then select the scope to apply this token to.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;We want this token to be available to any activity in the workflow so we select Workflow1.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image004_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="174" alt="clip_image004" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image004_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_7" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Lastly drag another &lt;b style="mso-bidi-font-weight: normal"&gt;HandleExternalEventActivity&lt;/b&gt; onto the workflow and configure to point at the &lt;b style="mso-bidi-font-weight: normal"&gt;OrderShipped&lt;/b&gt; event.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image006_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="clip_image006" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image006_thumb.jpg" width="217" border="0" v:shapes="Picture_x0020_16" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Select our &lt;b style="mso-bidi-font-weight: normal"&gt;OrderToken&lt;/b&gt; as the value for &lt;b style="mso-bidi-font-weight: normal"&gt;CorrelationToken&lt;/b&gt; thus coupling the Created and Shipped events together.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image008_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="clip_image008" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image008_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_10" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;h1&gt;Test Program&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;Back over in the program.cs file of your console workflow test application add the following code after the workflow instance has been started.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;This code will fire the initial OrderCreated event thus initializing the correlation for that particular workflow instance.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; background: silver; color: navy; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;WorkflowInstance&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; instance = workflowRuntime.CreateWorkflow(&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(ExternalWorkflowCommunications.&lt;b&gt;&lt;span style="color: navy"&gt;Workflow1&lt;/span&gt;&lt;/b&gt;));              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;instance.Start();             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; background: silver; color: navy; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; orderService = workflowRuntime.GetService&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;&amp;gt;();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;orderService.RaiseOrderCreated(instance.InstanceId, orderId);&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;             &lt;p&gt;&lt;/p&gt;           &lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;     &lt;p&gt;&amp;#xA0;&lt;/p&gt;   &lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Back over in the program.cs file add a handler to the WorkflowRuntime.WorkflowIdled event and execute the following code forcing the &lt;b style="mso-bidi-font-weight: normal"&gt;OrderShipped&lt;/b&gt; event to be fired.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;workflowRuntime.WorkflowIdled += &lt;span style="color: blue"&gt;delegate&lt;/span&gt;(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;b&gt;&lt;span style="color: navy"&gt;WorkflowEventArgs&lt;/span&gt;&lt;/b&gt; e)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;{             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt; orderService2 =               &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;workflowRuntime.GetService&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;&amp;gt;();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;orderService2.RaiseOrderShipped(e.WorkflowInstance.InstanceId, orderId);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;};&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Run the console application and notice our events were fired via the following code.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; color: blue; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;private&lt;/span&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; HandleCreated_Invoked(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataEventArgs&lt;/span&gt;&lt;/b&gt; e)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;{             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine(&lt;span style="color: red"&gt;&amp;quot;Order Created&amp;quot;&lt;/span&gt;);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;}             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; color: blue; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;private&lt;/span&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; HandleShipped_Invoked(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataEventArgs&lt;/span&gt;&lt;/b&gt; e)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;{             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine(&lt;span style="color: red"&gt;&amp;quot;Order Shipped&amp;quot;&lt;/span&gt;);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;   &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image010_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="131" alt="clip_image010" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/ExternalWindowsWorkflowCorrelatedCommuni_1372D/clip_image010_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_19" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Notice that we need the instance id to fire any of these events to ensure that they get to the appropriate instance.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;In a stateless server environment we will need to have the instance id in memory as we do in this sample.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;From most clients we would have the order id, but not the instance id.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;The next post will demonstrate how Aware Server handles this external workflow communication and how it tracks all the correlation automatically for you.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;This coupled with Aware Server&amp;#x2019;s side-by-side versioning allows you to have 2 different versions of business process running and Aware will ensure that external events are not only fired to the right workflow instance, but to the right version as well.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Below is the full listing of program.cs.&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border-right: medium none; border-top: medium none; background: #bfbfbf; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-background-themecolor: background1; mso-background-themeshade: 191; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: black 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: black 1pt solid; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; color: #2b91af; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;Guid&lt;/span&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt; orderId = &lt;span style="color: #2b91af"&gt;Guid&lt;/span&gt;.NewGuid();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; color: blue; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; color: blue; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;(&lt;b&gt;&lt;span style="color: navy"&gt;WorkflowRuntime&lt;/span&gt;&lt;/b&gt; workflowRuntime = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;WorkflowRuntime&lt;/span&gt;&lt;/b&gt;())              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;{             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataExchangeService&lt;/span&gt;&lt;/b&gt; service = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;ExternalDataExchangeService&lt;/span&gt;&lt;/b&gt;();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;workflowRuntime.AddService(service);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;service.AddService(&lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;());              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;workflowRuntime.StartRuntime();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;AutoResetEvent&lt;/span&gt;&lt;/b&gt; waitHandle = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy"&gt;AutoResetEvent&lt;/span&gt;&lt;/b&gt;(&lt;span style="color: blue"&gt;false&lt;/span&gt;);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;workflowRuntime.WorkflowCompleted += &lt;span style="color: blue"&gt;delegate&lt;/span&gt;(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;b&gt;&lt;span style="color: navy"&gt;WorkflowCompletedEventArgs&lt;/span&gt;&lt;/b&gt; e) {waitHandle.Set();};              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;workflowRuntime.WorkflowTerminated += &lt;span style="color: blue"&gt;delegate&lt;/span&gt;(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;b&gt;&lt;span style="color: navy"&gt;WorkflowTerminatedEventArgs&lt;/span&gt;&lt;/b&gt; e)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine(e.Exception.Message);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;waitHandle.Set();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;};              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;workflowRuntime.WorkflowIdled += &lt;span style="color: blue"&gt;delegate&lt;/span&gt;(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;b&gt;&lt;span style="color: navy"&gt;WorkflowEventArgs&lt;/span&gt;&lt;/b&gt; e)              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;{              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt; orderService2 = workflowRuntime.GetService&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;&amp;gt;();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;orderService2.RaiseOrderShipped(e.WorkflowInstance.InstanceId, orderId);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;};              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;WorkflowInstance&lt;/span&gt;&lt;/b&gt; instance = workflowRuntime.CreateWorkflow(&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(ExternalWorkflowCommunications.&lt;b&gt;&lt;span style="color: navy"&gt;Workflow1&lt;/span&gt;&lt;/b&gt;));              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;instance.Start();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt; orderService = workflowRuntime.GetService&amp;lt;&lt;b&gt;&lt;span style="color: navy"&gt;OrderWorkflowService&lt;/span&gt;&lt;/b&gt;&amp;gt;();              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;orderService.RaiseOrderCreated(instance.InstanceId, orderId);              &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;             &lt;p&gt;&amp;#xA0;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="margin-bottom: 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 10pt; background: silver; font-family: " courier new"; mso-highlight: silver; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;/span&gt;waitHandle.WaitOne();&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/yy7bJ84cIeI/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2007/11/External-Windows-Workflow-Correlated-Communication.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=de828576-ab03-4e8c-bdcd-4fb07dce0ec8</guid>
      <pubDate>Mon, 26 Nov 2007 22:07:22 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=de828576-ab03-4e8c-bdcd-4fb07dce0ec8</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=de828576-ab03-4e8c-bdcd-4fb07dce0ec8</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2007/11/External-Windows-Workflow-Correlated-Communication.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=de828576-ab03-4e8c-bdcd-4fb07dce0ec8</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=de828576-ab03-4e8c-bdcd-4fb07dce0ec8</feedburner:origLink></item>
    <item>
      <title>Human Interaction and Windows Workflow</title>
      <description>&lt;p class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Out of the box Windows Workflow provides the core engine necessary to build episodic processing.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;What I mean by episodic is that the code in a particular business process does not execute all the way through. &lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;Only portions (Activities) execute in episodes as events, etc. occur.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;This allows workflows or business processes to start something and finish it maybe a week later.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;In Aware Server you have the ability to build business processes that may require human interaction before continuing.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Take the sample below which is of a payroll business process where the paychecks are distributed across the network for processing using the &lt;b style="mso-bidi-font-weight: normal"&gt;DistributedWorkflowReplicatorActivity&lt;/b&gt; and then a human interaction is created (highlighted activity on the left) asking for the user who initiated the payroll job to please approve or reject the values computed during processing.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;The workflow at this point completes its current episode and goes to sleep (dehydrates to persistence store).&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HumanInteractionandWindowsWorkflow_148B0/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="image" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HumanInteractionandWindowsWorkflow_148B0/image_thumb.png" width="804" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Another thing Aware allows you to do is attach another workflow instance to your parent process to monitor each and every human interaction you create.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;In the sample above the workflow to the right is monitoring the interaction created by the parent process.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;The monitoring instance in this example will wait for 1 minute and then cancel the interaction which the parent process is monitoring as well unless the user tells us that he/she has started working on our interaction (In Progress).&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;If the interaction is canceled the parent process will determine that the payroll is already too stale and will cancel the entire run.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;What&amp;#8217;s really powerful is that both workflow instances (parent and monitoring flow) are watching for correlated events on the same interaction.&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;In a later blog post I will cover how to make this possible and how we have simplified external workflow communication (&lt;b style="mso-bidi-font-weight: normal"&gt;ExternalDataExchangeServices&lt;/b&gt;). &lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/uHTZIlV6ncU/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2007/11/Human-Interaction-and-Windows-Workflow.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=49e534c2-c9fd-42a6-86f7-979707020fa8</guid>
      <pubDate>Mon, 26 Nov 2007 21:58:02 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=49e534c2-c9fd-42a6-86f7-979707020fa8</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=49e534c2-c9fd-42a6-86f7-979707020fa8</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2007/11/Human-Interaction-and-Windows-Workflow.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=49e534c2-c9fd-42a6-86f7-979707020fa8</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=49e534c2-c9fd-42a6-86f7-979707020fa8</feedburner:origLink></item>
    <item>
      <title>How we define Business Processes</title>
      <description>&lt;p class="MsoNormal"&gt;Business processes in terms of Aware Server refer to a collection of Windows Workflow Instances as well as audits, human interaction and grid/distributed computing.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;With Aware Server you can build a business process that includes all your business logic, plus human interaction and grid computing.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;Every business process has one parent Windows Workflow instance at the root and that root workflow can have human interaction monitoring flows and distributed processing flows (&lt;b style="mso-bidi-font-weight: normal"&gt;GridWorkflow&lt;/b&gt;) all associated to it.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image002_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="185" alt="clip_image002" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image002_thumb.gif" width="244" border="0" v:shapes="Object_x0020_2" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The screenshots below are of the Aware Business Process Monitor which shows you how Aware captures all the workflow instances as well as audits, human interactions and grid computing statistics inside of one view.&lt;span style="mso-spacerun: yes"&gt;&amp;#xA0; &lt;/span&gt;All this information is stored in SQL Server 2005 allowing you to review business processes at a later date.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Parent (Root) Workflow &lt;/b&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image004_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="clip_image004" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image004_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_3" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;/b&gt;    &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Human Interactions &lt;/b&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image006_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="clip_image006" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image006_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_4" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/b&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;/b&gt;    &lt;p&gt;&amp;#xA0;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;Associated Workflows (Human Interaction Monitoring Flows and Distributed Grid Flows) &lt;/b&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image008_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="clip_image008" src="http://blog.gridgistics.net/image.axd?picture=WindowsLiveWriter/HowwedefineBusinessProcesses_133FD/clip_image008_thumb.jpg" width="244" border="0" v:shapes="Picture_x0020_5" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/b&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3d76d135-cbd2-494d-82d8-03305812dc2c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags:  		&lt;a href="http://technorati.com/tags/business%20processes" rel="tag"&gt;business processes&lt;/a&gt; 		,  		&lt;a href="http://technorati.com/tags/grid%20computing" rel="tag"&gt;grid computing&lt;/a&gt; 		,  		&lt;a href="http://technorati.com/tags/Aware%20Server" rel="tag"&gt;Aware Server&lt;/a&gt; 		,  		&lt;a href="http://technorati.com/tags/Aware%20Business%20Process%20Monitoring" rel="tag"&gt;Aware Business Process Monitoring&lt;/a&gt; 		,  		&lt;a href="http://technorati.com/tags/Human%20Interaction" rel="tag"&gt;Human Interaction&lt;/a&gt; 		&lt;/div&gt;</description>
      <link>http://feedproxy.google.com/~r/grid-computing/~3/sJ1tmIMZm-c/post.aspx</link>
      <author>Dan Haligas</author>
      <comments>http://blog.gridgistics.net/post/2007/11/How-we-define-Business-Processes.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.gridgistics.net/post.aspx?id=b5ba5587-57ae-4d2a-9482-e17340773a47</guid>
      <pubDate>Mon, 26 Nov 2007 21:53:45 -0400</pubDate>
      <category>gridGISTICS</category>
      <dc:publisher>Dan Haligas</dc:publisher>
      <pingback:server>http://blog.gridgistics.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.gridgistics.net/post.aspx?id=b5ba5587-57ae-4d2a-9482-e17340773a47</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.gridgistics.net/trackback.axd?id=b5ba5587-57ae-4d2a-9482-e17340773a47</trackback:ping>
      <wfw:comment>http://blog.gridgistics.net/post/2007/11/How-we-define-Business-Processes.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.gridgistics.net/syndication.axd?post=b5ba5587-57ae-4d2a-9482-e17340773a47</wfw:commentRss>
    <feedburner:origLink>http://blog.gridgistics.net/post.aspx?id=b5ba5587-57ae-4d2a-9482-e17340773a47</feedburner:origLink></item>
  </channel>
</rss>
