<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Richard Seroter&#039;s Architecture Musings</title>
	<atom:link href="http://seroter.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://seroter.wordpress.com</link>
	<description>Blog Featuring Code, Thoughts, and Experiences with Enterprise Solutions</description>
	<lastBuildDate>Sun, 27 May 2012 20:46:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='seroter.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Richard Seroter&#039;s Architecture Musings</title>
		<link>http://seroter.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://seroter.wordpress.com/osd.xml" title="Richard Seroter&#039;s Architecture Musings" />
	<atom:link rel='hub' href='http://seroter.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Should Enterprise IT Offer a &#8220;Dollar Menu&#8221;?</title>
		<link>http://seroter.wordpress.com/2012/05/16/should-enterprise-it-offer-a-dollar-menu/</link>
		<comments>http://seroter.wordpress.com/2012/05/16/should-enterprise-it-offer-a-dollar-menu/#comments</comments>
		<pubDate>Wed, 16 May 2012 20:54:44 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[General Architecture]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2328</guid>
		<description><![CDATA[It seems that there is still so much friction in the request and fulfillment of IT services. Need a quick task tracking website? That’ll take a change request, project manager, pair of business analysts, a few 3rd party developers and a test team. Want a report to replace your Excel workbook pivot charts? Let’s ramp [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2328&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It seems that there is still so much friction in the request and fulfillment of IT services. Need a quick task tracking website? That’ll take a change request, project manager, pair of business analysts, a few 3rd party developers and a test team. Want a report to replace your Excel workbook pivot charts? Let’s ramp up a project to analyze the domain and scope out a big BI program. <strong>Should enterprise IT departments offer a “</strong><a href="http://www.mcdonalds.com/us/en/food/meal_bundles/dollar_menu.html" target="_blank"><strong>dollar menu</strong></a><strong>” instead of selling all their service as </strong><a href="http://most-expensive.net/burgers-world" target="_blank"><strong>expensive hamburgers</strong></a><strong>?</strong></p>
<p>To be sure, there are MANY times when you need the rigor that IT departments seem to relish. Introducing large systems or deploying a master data management strategy both require significant forethought and oversight to ensure success. There are even those small projects that have broader impacts and require the ceremony of a full IT team. But wouldn’t enterprise IT teams be better off if they had offered some quick-value services delivered by a SWAT team of highly trained resources? </p>
<p>My company recently piloted a “walk up” IT services center where anyone can walk in and have simple IT requests fulfilled. Need a new mouse? Here you go. Having problems with your laptop OS? We’ll take a look. <strong>It’s awesome</strong>. No friction, and dramatically faster than opening a ticket with a help desk and waiting 3 days to hear something back. It’s the dollar menu (simple services, no frills) vs. the expensive burger (help desk support).</p>
<p>Why shouldn’t other IT (software) services work this way? Need a basic website that does simple data collection? We can offer up to 32 man hours to do the work. Need to securely exchange data with a partner? Here’s the accelerated channel through a managed file transfer product. So what would it require to do this? Obviously full support from IT leaders, but also, you probably need a strong public/private Platform-as-a-Service environment, a good set of existing (web) services, and a mature level of IT automation. You’d also likely need a well documented reference architecture so that you don’t constantly reinvent the wheel on topics like identity management, data access, and the like.</p>
<p>Am I crazy? Is everyone else already doing this? Do you think that there should be a class of services on the “menu” that people can order knowing full well that the service is delivered in a fast,&#160; but basic fashion? What else would be on that list?</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/general-architecture/'>General Architecture</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2328/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2328/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2328/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2328&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/05/16/should-enterprise-it-offer-a-dollar-menu/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>
	</item>
		<item>
		<title>Is AWS or Windows Azure the Right Choice? It&#8217;s Not That Easy.</title>
		<link>http://seroter.wordpress.com/2012/05/10/is-aws-or-windows-azure-the-right-choice-its-not-that-easy/</link>
		<comments>http://seroter.wordpress.com/2012/05/10/is-aws-or-windows-azure-the-right-choice-its-not-that-easy/#comments</comments>
		<pubDate>Thu, 10 May 2012 14:16:33 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Foundry]]></category>
		<category><![CDATA[Salesforce.com]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Windows Azure Service Bus]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2324</guid>
		<description><![CDATA[I was thinking about this topic today, and as someone who built the AWS Developer Fundamentals course for Pluralsight, is a Microsoft MVP who plays with Windows Azure a lot, and has an unnatural affinity for PaaS platforms like Cloud Foundry / Iron Foundry and Force.com, I figured that I had some opinions on this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2324&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was thinking about this topic today, and as someone who built the <a href="http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=aws-course" target="_blank">AWS Developer Fundamentals</a> course for Pluralsight, is a Microsoft MVP who <a href="http://seroter.wordpress.com/2012/04/13/richard-going-to-oz-to-deliver-an-integration-workshop-this-is-happening/" target="_blank">plays with Windows Azure a lot</a>, and has an unnatural affinity for PaaS platforms like <a href="http://seroter.wordpress.com/2011/05/11/6-quick-steps-for-windows-net-folks-to-try-out-cloud-foundry/" target="_blank">Cloud Foundry</a> / <a href="http://seroter.wordpress.com/2011/12/13/first-look-deploying-net-web-apps-to-cloud-foundry-via-iron-foundry/" target="_blank">Iron Foundry</a> and <a href="http://seroter.wordpress.com/2011/06/27/sending-messages-from-salesforce-com-to-biztalk-server-through-windows-azure-appfabric/" target="_blank">Force.com</a>, I figured that I had some opinions on this topic.</p>
<p>So why would a developer choose AWS over Windows Azure today? I don’t know all developers, so I’ll give you the reasons why I often lean towards AWS:</p>
<ul>
<li><strong>Pace of innovation</strong>. The AWS team is amazing when it comes to regularly releasing and updating products. The day my Pluralsight course came out, AWS released their <a href="http://aws.typepad.com/aws/2012/02/amazon-simple-workflow-cloud-based-workflow-management.html" target="_blank">Simple Workflow Service</a>. My course couldn’t be accurate for 5 minutes before AWS screwed me over! Just this week, <a href="http://gigaom.com/cloud/amazon-woos-microsoft-devs-with-net-sql-server-support/" target="_blank">Amazon announced</a> Microsoft SQL Server support in their <a href="http://aws.amazon.com/rds/" target="_blank">robust RDS offering</a>, and .NET support in their <a href="http://aws.amazon.com/elasticbeanstalk/" target="_blank">PaaS-like Elastic Beanstalk service</a>. These guys release interesting software on a regular basis and that helps maintain constant momentum with the platform. Contrast that with the Windows Azure team that is a bit more sporadic with releases, and with seemingly less fanfare. There’s lots of good stuff that the Azure guys keep baking into their services, but not at the same rate as AWS.</li>
<li><strong>Completeness of services.</strong> Whether the AWS folks think they offer a PaaS or not, their services cover a wide range of solution scenarios. Everything from foundational services like compute, storage, database and networking, to higher level offerings like messaging, identity management and content delivery. Sure, there’s no “true” application fabric like you’ll find in Windows Azure or Cloud Foundry, but tools like Cloud Formation and Elastic Beanstalk get you pretty close. This well-rounded offering means that developers can often find what they need to accomplish somewhere in this stack. Windows Azure actually has a very rich set of services, likely the most comprehensive of any PaaS vendor, but at this writing, they don’t have the same depth in infrastructure services. While PaaS may be the future of cloud (and I hope it is), IaaS is a critical component of today’s enterprise architecture.</li>
<li><strong>It just works.</strong> AWS gets knocked from time to time on their reliability, but it seems like most agree that as far as clouds go, they’ve got a damn solid platform. Services spin up relatively quickly, stay up, and changes to service settings often cascade instantly. In this case, I wouldn’t say that Windows Azure doesn’t “just work”, but if AWS doesn’t fail me, I have little reason to leave.</li>
<li><strong>Convenience. </strong>This may be one of the primary advantages of AWS at this point. Once a capability becomes a commodity (and cloud services are probably at that point), and if there is parity among competitors on functionality, price and stability, the only remaining differentiator is convenience. AWS shines in this area, for me. As a Microsoft Visual Studio user, there are at least four ways that I can consume (nearly) every AWS service: <a href="http://seroter.wordpress.com/2011/09/08/a-lap-around-the-new-amazon-web-services-toolkit-for-visual-studio/" target="_blank">Visual Studio Explorer</a>, API, .NET SDK or AWS Management Console. It’s just SO easy. The AWS experience in Visual Studio is actually better than the one Microsoft offers with Windows Azure! I can’t use a single UI to manage all the Azure services, but the AWS tooling provides a complete experience with just about every type of AWS service. In addition, speed of deployment matters. I <a href="http://seroter.wordpress.com/2012/03/06/doing-a-multi-cloud-deployment-of-an-asp-net-web-application/" target="_blank">recently compared</a> the experience of deploying an ASP.NET application to Windows Azure, AWS and Iron Foundry. Windows Azure was both the slowest option, and the one that took the most steps. Not that those steps were difficult, mind you, but it introduced friction and just makes it less convenient. Finally, the AWS team is just so good at making sure that a new or updated product is instantly reflected across their websites, SDKs, and support docs. You can’t overstate how nice that is for people consuming those services.</li>
</ul>
<p>That said, the title of this post implies that this isn’t a black and white choice. Basing an entire cloud strategy on either platform isn’t a good idea. Ideally, a “cloud strategy” is nothing more than a strategy for meeting business needs with the right type of service. <strong>It’s not about choosing a single cloud and cramming all your use cases into it</strong>.</p>
<p>A Microsoft shop that is looking to deploy public facing websites and reduce infrastructure maintenance can’t go wrong with Windows Azure. Lately, even non-Microsoft shops have a legitimate case for deploying apps written in Node.js or PHP to Windows Azure. Getting out of infrastructure maintenance is a great thing, and Windows Azure exposes you to much less infrastructure than AWS does.  Looking to use a SQL Server in the cloud? You have a very interesting choice to make now. Microsoft will do well if it creates (optional) value-added integrations between its offerings, while making sure each standalone product is as robust as possible. That will be its win in the “convenience” category.</p>
<p>While I contend that the only truly differentiated offering that Windows Azure has is their Service Bus / Access Control / EAI product, the rest of the platform has undergone constant improvement and left behind many of its early inconvenient and unstable characteristics. With Scott Guthrie at the helm, and so many smart people spread across the Azure teams, I have absolutely no doubt that Windows Azure will be in the majority of discussions about “cloud leaders” and provide a legitimate landing point for all sorts of cloudy apps. At the same time though, AWS isn’t slowing their pace (quite the opposite), so this back-and-forth competition will end up improving both sets of services and leave us consumers with an awesome selection of choices.</p>
<p>What do you think? Why would you (or do you) pick AWS over Azure, or vice versa?</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/net/'>.NET</a>, <a href='http://seroter.wordpress.com/category/aws/'>AWS</a>, <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/cloud-foundry/'>Cloud Foundry</a>, <a href='http://seroter.wordpress.com/category/salesforce-com/'>Salesforce.com</a>, <a href='http://seroter.wordpress.com/category/windows-azure/'>Windows Azure</a>, <a href='http://seroter.wordpress.com/category/windows-azure-service-bus/'>Windows Azure Service Bus</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2324&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/05/10/is-aws-or-windows-azure-the-right-choice-its-not-that-easy/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>
	</item>
		<item>
		<title>Interview Series: Four Questions With &#8230; Dean Robertson</title>
		<link>http://seroter.wordpress.com/2012/05/09/interview-series-four-questions-with-dean-robertson/</link>
		<comments>http://seroter.wordpress.com/2012/05/09/interview-series-four-questions-with-dean-robertson/#comments</comments>
		<pubDate>Wed, 09 May 2012 15:00:59 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Four Questions]]></category>
		<category><![CDATA[General Architecture]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2320</guid>
		<description><![CDATA[I took a brief hiatus from my series of interviews with “connected systems” thought leaders, but we’re back with my 39th edition. This month, we’re chatting with Dean Robertson who is a longtime integration architect, BizTalk SME, organizer of the Azure User Group in Brisbane, and both the founder and Technology Director of Australian consulting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2320&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I took a brief hiatus from my series of interviews with “connected systems” thought leaders, but we’re back with my <a href="http://seroter.wordpress.com/category/four-questions/" target="_blank">39th edition</a>. This month, we’re chatting with <a href="https://twitter.com/#!/deanrobertson" target="_blank">Dean Robertson</a> who is a longtime integration architect, BizTalk SME, organizer of the Azure User Group in Brisbane, and both the founder and Technology Director of Australian consulting firm <a href="http://www.mexia.com.au/" target="_blank">Mexia</a>. I’ll be hanging out in person with Dean and his team in a few weeks when I visit Australia to <a href="http://www.mexia.com.au/integrationmasterclass/" target="_blank">deliver some presentations</a> on building hybrid cloud applications.</p>
<p>Let’s see what Dean has to say.</p>
<div style="padding:4px 8px;border:black 1px solid;">
<p><strong>Q: <strong>In the past year, we&#8217;ve seen a number of well known BizTalk-oriented developers embrace the new Windows Azure integration services. How do you think BizTalk developers should view these cloud services from Microsoft? What should they look at first, assuming these developers want to explore further?</strong></strong></p>
<p><strong>A: </strong>I’ve heard on the grapevine that a number of local BizTalk guys down here in Australia are complaining that Azure is going to take away our jobs and force us all to re-train in the new technologies, but in my opinion nothing could be further from the truth.</p>
<p>BizTalk as a product is extremely mature and very well understood by both the developer &amp; customer communities, and the business problems that a BizTalk-based EAI/SOA/ESB solution solves are not going to be replaced by another Microsoft product anytime soon.  Further, BizTalk integrates beautifully with the Azure Service Bus through the WCF netMessagingBinding, which makes creating hybrid integration solutions (that span on-premises &amp; cloud) a piece of cake.  Finally the Azure Service Bus is conceptually one big cloud-scale BizTalk messaging engine anyway, with secure pub-sub capabilities, durable message persistence, message transformation, content-based routing and more!  So once you see the new Azure integration capabilities for what they are, a whole new world of ‘federated bus’ integration architectures reveal themselves to you.  So I think ‘BizTalk guys’ should see the Azure Service Bus bits as simply more tools in their toolbox, and trust that their learning investments will pay off when the technology circles back to on-premises solutions in the future.</p>
<p>As for learning these new technologies, Pluralsight has some terrific videos by Scott Seely and Richard Seroter that help get the Azure Service Bus concepts across quickly.  I also think that nothing beats downloading the <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh689760.aspx">latest bits</a> from MS and running the demo’s first hand, then building their own “Hello Cloud” integration demo that includes BizTalk.  Finally, they should come along to industry events (&lt;plug&gt;like Mexia’s <a href="http://www.mexia.com.au/integrationmasterclass/">Integration Masterclass with Richard Seroter</a>&lt;/plug&gt; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) and their local Azure user groups to meet like-minded people love to talk about integration!</p>
<p><strong>Q: What integration problem do you think will get harder when hybrid clouds become the norm?</strong></p>
<p><strong>A:</strong> I think Business Activity Monitoring (BAM) will be the hardest thing to consolidate because you’ll have integration processes running across on-premises BizTalk, Azure Service Bus queues &amp; topics, Azure web &amp; worker roles, and client devices.  Without a mechanism to automatically collect &amp; aggregate those business activity data points &amp; milestones, organisations will have no way to know whether their distributed business processes are executing completely and successfully.  So unless Microsoft bring out an Azure-based BAM capability of their own, I think there is a huge opportunity opening up in the ISV marketplace for a vendor to provide a consolidated BAM capture &amp; reporting service.  I can assure you Mexia is working on our offering as we speak <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Q: <strong>Do you see any trends in the types of applications that you are integrating with? More off-premise systems? More partner systems? Web service-based applications?</strong></strong></p>
<p><strong>A:</strong> Whilst a lot of our day-to-day work is traditional on-premises SOA/EAI/ESB,<strong> </strong>Mexia has also become quite good at building hybrid integration platforms for retail clients by using a combination of BizTalk Server running on-premises at Head Office, Azure Service Bus queues and topics running in the cloud (secured via ACS), and Windows Service agents installed at store locations.  With these infrastructure pieces in place we can move lots of different types of business messages (such as sales, stock requests, online orders, shipping notifications etc) securely around world with ease, and at an infinitesimally low cost per message.</p>
<p>As the world embraces cloud computing and all of the benefits that it brings (such as elastic IT capacity &amp; secure cloud scale messaging) we believe there will be an ever-increasing demand for hybrid integration platforms that can provide the seamless ‘connective tissue’ between an organisations’ on-premises IT assets and their external suppliers, branch offices, trading partners and customers.</p>
<p><strong>Q [stupid question]: <strong>Here in the States, many suburbs have people on the street corners who swing big signs that advertise things like &#8220;homes for sales!&#8217; and &#8220;furniture &#8211; this way!&#8221; I really dislike this advertising model because they don&#8217;t broadcast traditional impulse buys. Who drives down the street, sees one of these clowns and says &#8220;Screw it, I&#8217;m going to go pick up a new mattress right now.&#8221; Nobody. For you, what are your true impulse purchases where you won&#8217;t think twice before acting on an urge, and plopping down some money.</strong></strong></p>
<p><strong>A:</strong> <strong></strong>This is a completely boring answer, but I cannot help myself on <a href="http://www.amazon.com/">www.amazon.com</a>.  If I see something cool that I really want to read about, I’ll take full advantage of the ‘1-click ordering’ feature before my cognitive dissonance has had a chance to catch up.  However when the book arrives either in hard-copy or on my Kindle, I’ll invariably be time poor for a myriad of reasons (running Mexia, having three small kids, client commitments etc) so I’ll only have time to scan through it before I put it on my shelf with a promise to myself to come back and read it properly one day.  But at least I have an impressive bookshelf!</p>
</div>
<p>Thanks Dean, and see you soon!</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/biztalk/'>BizTalk</a>, <a href='http://seroter.wordpress.com/category/four-questions/'>Four Questions</a>, <a href='http://seroter.wordpress.com/category/general-architecture/'>General Architecture</a>, <a href='http://seroter.wordpress.com/category/windows-azure/'>Windows Azure</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2320/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2320/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2320&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/05/09/interview-series-four-questions-with-dean-robertson/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows Azure Service Bus EAI Doesn&#8217;t Support Multicast Messaging. Should It?</title>
		<link>http://seroter.wordpress.com/2012/05/04/windows-azure-service-bus-eai-doesnt-support-multicast-messaging-should-it/</link>
		<comments>http://seroter.wordpress.com/2012/05/04/windows-azure-service-bus-eai-doesnt-support-multicast-messaging-should-it/#comments</comments>
		<pubDate>Fri, 04 May 2012 13:56:09 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Windows Azure Service Bus]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2314</guid>
		<description><![CDATA[Lately, I’ve been playing around a lot with the Windows Azure Service Bus EAI components (currently in CTP). During my upcoming Australia trip (register now!) I’m going to be walking through a series of use cases for this technology. There are plenty of cool things about this software, and one of them is that you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2314&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lately, I’ve been playing around a lot with the Windows Azure Service Bus EAI components (<a href="http://www.microsoft.com/en-us/download/details.aspx?displaylang=en%2cen&amp;id=17691" target="_blank">currently in CTP</a>). During my upcoming Australia trip (<a href="http://www.mexia.com.au/integrationmasterclass/" target="_blank">register now!</a>) I’m going to be walking through a series of use cases for this technology.</p>
<p>There are plenty of cool things about this software, and one of them is that you can visually model the routing of messages through the bus. For instance, I can define a routing scenario (<a href="http://blogs.msdn.com/b/nitinme/archive/2012/02/08/understanding-route-actions-in-service-bus-eai-and-edi-labs.aspx" target="_blank">using “Bridges” and destination endpoints</a>) that takes in an “order” message, and routes it to an (onsite) database, Service Bus Queue or a public web service.</p>
<p><a href="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast01.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.5.3multicast01" src="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast01_thumb.png?w=450&h=376" alt="2012.5.3multicast01" width="450" height="376" border="0" /></a></p>
<p>Super cool! However, the key word in the previous sentence was “<strong>or</strong>.” I cannot send a message to ALL those endpoints because currently, the Service Bus EAI engine doesn’t support the multi-cast scenario. You can only route a message to a single destination. So the flow above is valid, IF I have routing rules (e.g. “OrderAmount &gt; 100”) that help the engine decide which of the endpoints to send the message to. I asked about this in the product forums, and  had that <a href="http://social.msdn.microsoft.com/Forums/en-US/servicebuslabs/thread/c3f6f510-a92b-432c-86c3-f740899bf0b8" target="_blank">(non) capability confirmed</a>. If you need to do multi-cast messaging, then the suggestion is to use Service Bus Topics as an endpoint. Service Bus Topics (unlike Service Bus Queues) support multiple subscribers who can all receive a copy of a message.  The end result would be this:</p>
<p><a href="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast03.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.5.3multicast03" src="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast03_thumb.png?w=450&h=168" alt="2012.5.3multicast03" width="450" height="168" border="0" /></a></p>
<p>However, for me, one of the great things about the Bridges is the ability to use Mapping to transform message (format/content) before it goes to an endpoint. In the image below, note that I have a Transform that takes the initial “Order” message and transforms it to the format expected by my SQL Server database endpoint (from my first diagram).</p>
<p><a href="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast02.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.5.3multicast02" src="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast02_thumb.png?w=394&h=643" alt="2012.5.3multicast02" width="394" height="643" border="0" /></a></p>
<p>If I had to use Topics to send messages to a database and web service (via the second diagram), then I’d have to push the transformation responsibility down to the application that polls the Topic and communicates with the database or service. I’d also lose the ability to send directly to my endpoint and would require a Service Bus Topic to act as an intermediary. That may work for some scenarios, but I’d love the option to use all the nice destination options (instead of JUST Topics), perform the mapping in the EAI Bridges, and multi-cast to all the endpoints.</p>
<p>What do you think? Should the Azure Service Bus EAI support multi-cast messaging, or do you think that scenario is unusual for you?</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/windows-azure/'>Windows Azure</a>, <a href='http://seroter.wordpress.com/category/windows-azure-service-bus/'>Windows Azure Service Bus</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2314/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2314/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2314/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2314&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/05/04/windows-azure-service-bus-eai-doesnt-support-multicast-messaging-should-it/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast01_thumb.png" medium="image">
			<media:title type="html">2012.5.3multicast01</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast03_thumb.png" medium="image">
			<media:title type="html">2012.5.3multicast03</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/05/2012-5-3multicast02_thumb.png" medium="image">
			<media:title type="html">2012.5.3multicast02</media:title>
		</media:content>
	</item>
		<item>
		<title>Richard Going to Oz to Deliver an Integration Workshop? This is Happening.</title>
		<link>http://seroter.wordpress.com/2012/04/13/richard-going-to-oz-to-deliver-an-integration-workshop-this-is-happening/</link>
		<comments>http://seroter.wordpress.com/2012/04/13/richard-going-to-oz-to-deliver-an-integration-workshop-this-is-happening/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 15:01:43 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[StreamInsight]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2297</guid>
		<description><![CDATA[At the most recent MS MVP Summit, Dean Robertson, founder of IT consultancy Mexia, approached me about visiting Australia for a speaking tour. Since I like both speaking and koalas, this seemed like a good match. As a result, we’ve organized sessions for which you can now register to attend. I’ll be in Brisbane, Melbourne [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2297&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At the most recent MS MVP Summit, <a href="https://twitter.com/#!/deanrobertson" target="_blank">Dean Robertson</a>, founder of IT consultancy <a href="http://www.mexia.com.au/" target="_blank">Mexia</a>, approached me about visiting Australia for a speaking tour. Since I like both speaking and koalas, this seemed like a good match.</p>
<p>As a result, we’ve organized sessions for which you can now <a href="http://www.mexia.com.au/integrationmasterclass/" target="_blank">register to attend</a>. I’ll be in Brisbane, Melbourne and Sydney talking about the overall Microsoft integration stack, with special attention paid to recent additions to the Windows Azure integration toolset. As usual, there <a href="http://seroter.files.wordpress.com/2012/04/mcpromo.jpg"><img style="display:inline;margin-left:0;margin-right:0;border:0;" title="MCpromo" src="http://seroter.files.wordpress.com/2012/04/mcpromo_thumb.jpg?w=300&h=154" alt="MCpromo" width="300" height="154" align="right" border="0" /></a>should be lots of practical demonstrations that help to show the “why”, “when” and “how” of each technology.</p>
<p>If you’re in Australia, New Zealand or just needed an excuse to finally head down under, then come on over! It should be lots of fun.</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/net/'>.NET</a>, <a href='http://seroter.wordpress.com/category/biztalk/'>BizTalk</a>, <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/soa/'>SOA</a>, <a href='http://seroter.wordpress.com/category/streaminsight/'>StreamInsight</a>, <a href='http://seroter.wordpress.com/category/windows-azure/'>Windows Azure</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2297&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/04/13/richard-going-to-oz-to-deliver-an-integration-workshop-this-is-happening/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/mcpromo_thumb.jpg" medium="image">
			<media:title type="html">MCpromo</media:title>
		</media:content>
	</item>
		<item>
		<title>Deploying Node.js Applications to Iron Foundry using the Cloude9 IDE</title>
		<link>http://seroter.wordpress.com/2012/04/13/deploying-node-js-applications-to-iron-foundry-using-the-cloude9-ide/</link>
		<comments>http://seroter.wordpress.com/2012/04/13/deploying-node-js-applications-to-iron-foundry-using-the-cloude9-ide/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 13:33:55 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Foundry]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2289</guid>
		<description><![CDATA[This week, I attended the Cloud Foundry “one year anniversary” event where among other things, Cloud9 announced support for deployment to Cloud Foundry from their innovative Cloud9 IDE. The Cloud9 IDE lets you write HTML5, JavaScript and Node.js applications in an entirely web-based environment. Their IDE’s editor support many other programming languages, but they provide [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2289&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This week, I attended the <a href="http://cloudfoundry.com/" target="_blank">Cloud Foundry</a> “one year anniversary” event where <a href="http://www.infoq.com/news/2012/04/cloudfoundry-anniversary" target="_blank">among other things</a>, Cloud9 announced support for deployment to Cloud Foundry from their innovative <a href="http://c9.io/" target="_blank">Cloud9 IDE</a>. The Cloud9 IDE lets you write HTML5, JavaScript and Node.js applications in an entirely web-based environment. Their IDE’s editor support <a href="http://c9.io/site/category/features/" target="_blank">many other programming languages</a>, but they provide the fullest support for HTML/JavaScript. Up until this week, you could deploy your applications to Joyent, Heroku and Windows Azure. Now, you can also target any Cloud Foundry environment. Since I’ve been meaning to build a Node.js application, this seemed like the perfect push to do so. In this blog post, <strong>I’ll show you how to author a Node.js application in the Cloud9 IDE and push it to Iron Foundry’s distribution of Cloud Foundry</strong>. Iron Foundry recently announced their support for many languages besides .NET, so here’s a chance to see if that’s really the case.</p>
<p>Let’s get started. First, I signed up for a free Cloud9 IDE account. It was super easy. Once I got my account, I saw a simple dashboard that showed my projects and allowed me to connect my account to <a href="https://github.com/" target="_blank">Github</a>.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node01.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="2012.04.12node01" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node01_thumb.png?w=450&h=191" alt="2012.04.12node01" width="450" height="191" border="0" /></a></p>
<p>From here, I can create a new project by clicking the “+” icon above <strong>My Projects</strong>.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node02.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="2012.04.12node02" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node02_thumb.png?w=407&h=215" alt="2012.04.12node02" width="407" height="215" border="0" /></a></p>
<p>At this point, I was asked for the name of my project and type of project (Git/Mercurial/FTP). Once my <strong>SeroterNodeTest</strong> project was provisioned, I jumped into the Cloud9 IDE editor interface. I don’t have any files (except for some simple Git instructions in a README file) but I got my first look at the user interface.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node03.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="2012.04.12node03" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node03_thumb.png?w=407&h=393" alt="2012.04.12node03" width="407" height="393" border="0" /></a></p>
<p>The Cloud9 IDE provides much more than just code authoring and syntax highlighting. The IDE lets me create files, pull in Github projects, run my app in their environment, deploy to a supported cloud environment, and perform testing/debugging of the app. Now I was ready to build the app!</p>
<p>I didn’t want to JUST build a simple “hello world” app, so I thought I’d use some recommended practices and let my app either return HTML or JSON based on querystring parameters. To start with, I’ll create my Node.js server by right-clicking my project and adding a new file named <strong>server.js</strong>.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node04.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="2012.04.12node04" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node04_thumb.png?w=450&h=217" alt="2012.04.12node04" width="450" height="217" border="0" /></a></p>
<p>Before writing any code, I decided that I didn’t want to just build an HTML string by hand and have my Node.js app return it. So, I decided to use <a href="https://github.com/janl/mustache.js" target="_blank">Mustache</a> and separate my data from my HTML. Now, I couldn’t see an easy way to import this JavaScript library through the UI until I noticed that Cloud9 IDE supported the <a href="http://npmjs.org/" target="_blank">Node Package Manager (npm)</a> in the exposed command window. From this command window, I could write a simple command (“npm install mustache”) and the necessary JavaScript libraries were added to my project.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node05.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="2012.04.12node05" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node05_thumb.png?w=381&h=427" alt="2012.04.12node05" width="381" height="427" border="0" /></a></p>
<p>Great. Now I was ready to write my Node.js server code. First, I added a few references to required libraries.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:ae4ee463-027b-4b36-b611-0a5a8974a8dd" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript; pad-line-numbers: true;">
//create some variables that reference key libraries
var http = require('http');
var url = require('url');
var Mustache = require('./node_modules/mustache/mustache.js');
</pre></p>
</div>
<p>Next, I created a handler function that writes out HTML when it gets invoked. This function takes a “response” object which represents the content being returned to the caller. Doing response writing at this level helps prevent blocking calls in Node.js.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:dc077bce-f779-4636-a471-4e734c213321" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript;">
//This function returns an HTML response when invoked
function getweb(response)
{
    console.log('getweb called');
    //create JSON object
    var data = {
        name: 'Richard',
        age: 35
    };

    //create template that formats the data
    var template = 'Hi there, &lt;strong&gt;{{ name }}&lt;/strong&gt;';

    //use Mustache to apply the template and create HTML
    var result = Mustache.to_html(template, data);

    //write results back to caller
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write(result);
    response.end();
}
</pre></p>
</div>
<p>My second handler responds to a different URL querystring and returns a JSON object back to the caller.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:78e90c14-dc2e-487e-b06b-393c70cac75d" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript;">
//This function returns JSON to simulate a service call
function callservice(response)
{
    console.log('callservice called');
    //create JSON object
    var data = {
        name: 'Richard',
        age: 35
    };

    //write results back to caller
    response.writeHead(200, {'Content-Type': 'text/html'});
    //convert JSON to string
    response.write(JSON.stringify(data));
    response.end();
}
</pre></p>
</div>
<p>How do I choose which of these two handlers to call? I have a function that uses input parameters to dynamically invoke one function or the other, based on the querystring input.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:4ee31599-3d40-46bf-a568-3233078d813f" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript;">
//function that routes the request to appropriate handlers
function routeRequest(path, reqhandle, response)
{
    //does the request map to one of my function handlers?
     if (typeof reqhandle[path] === 'function') {
       //yes, so call the function
       reqhandle[path](response);
     }
     else
     {
         console.log('no match');
         response.end();
     }
}
</pre></p>
</div>
<p>The last function in my <strong>server.js</strong> file is the most important. This “startup” function is my entry point of the module. It starts the Node.js server and defines the operation that is called on each request. That operation invokes the previously defined <strong>routeRequest</strong> function which then explicitly handles the request.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:5db823ee-beab-4ef9-8b31-3355e8a14907" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript;">
//inital function that routes requests
function startup(reqhandle)
{
    //function that responds to client requests
    function onRequest(request, response)
    {
        //yank out the path from the URL the client hit
        var path = url.parse(request.url).pathname;

        //handle individual requests
        routeRequest(path, reqhandle, response);
    }

    //start up the Node.js server
    http.createServer(onRequest).listen(process.env.PORT);
    console.log('Server running');
}
</pre></p>
</div>
<p>Finally, at the bottom of this module, I expose the functions that I want other modules to be able to call.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:76924aab-fce8-4a1c-ab8b-ffef425a22bd" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript;">
//expose this module's operations so they can be called from main JS file
exports.startup = startup;
exports.getweb = getweb;
exports.callservice = callservice;
</pre></p>
</div>
<p>With my primary server done, I went and added a new file, <strong>index.js</strong>.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node06.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node06" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node06_thumb.png?w=431&h=205" alt="2012.04.12node06" width="431" height="205" border="0" /></a></p>
<p>This acts as my application entry point. Here I reference the <strong>server.js</strong> module and create an array of valid querystring values and which function should respond to which path.</p>
<div id="scid:C89E2BDB-ADD3-4f7a-9810-1B7EACF446C1:e27f5d6e-d9e4-4a6f-8ab5-61c76fafab34" class="wlWriterEditableSmartContent" style="margin:0;display:inline;float:none;padding:0;"><pre class="brush: jscript;">
//reference my server.js module
var server = require('./server');

//create an array of valid input values and what server function to invoke
var reqhandle = {};
reqhandle['/'] = server.getweb;
reqhandle['/web'] = server.getweb;
reqhandle['/service'] = server.callservice;

//call the startup function to get the server going
server.startup(reqhandle);
</pre></p>
</div>
<p>And … we’re done. I switched to the <strong>Run </strong>tab, made sure I was starting with <strong>index.js</strong> and clicked the <strong>Debug</strong> button. At the bottom of the screen, in the <strong>Console</strong> window, I could see whether or not the application was able to start up. If so, a URL is shown.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node07.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node07" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node07_thumb.png?w=450&h=307" alt="2012.04.12node07" width="450" height="307" border="0" /></a></p>
<p>Clicking that link took me to my application hosted by Cloud9.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node08.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node08" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node08_thumb.png?w=391&h=105" alt="2012.04.12node08" width="391" height="105" border="0" /></a></p>
<p>With no URL parameters (just “/”), the web function was called. If I add “/service” to the URL, I see a JSON result.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node09.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node09" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node09_thumb.png?w=417&h=138" alt="2012.04.12node09" width="417" height="138" border="0" /></a></p>
<p>Cool! Just to be thorough, I also threw the “/web” on the URL, and sure enough, my web function was called.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node10.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node10" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node10_thumb.png?w=394&h=115" alt="2012.04.12node10" width="394" height="115" border="0" /></a></p>
<p>I was now ready to deploy this bad boy to Iron Foundry. The Cloud9 IDE is going to look for a <strong>package.json</strong> file before allowing deployment, so I went ahead and added a very simple one.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node11" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node11_thumb.png?w=450&h=188" alt="2012.04.12node11" width="450" height="188" border="0" /></a></p>
<p>Also, Cloud Foundry uses a different environmental variable to allocate the server port that Node.js listens on.So, I switched this line:</p>
<p><strong>http.createServer(onRequest).listen(process.env.C9_PORT);</strong></p>
<p>to this …</p>
<p><strong>http.createServer(onRequest).listen(process.env.<span style="color:#ff0000;">VCAP_APP_PORT</span>);</strong></p>
<p>I moved to the <strong>Deployment </strong>tab and clicked on the “+” sign at the top.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node12.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node12" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node12_thumb.png?w=309&h=315" alt="2012.04.12node12" width="309" height="315" border="0" /></a></p>
<p>What comes up is a wizard where I chose to deploy to Cloud Foundry (but could have also chosen Windows Azure, Joyent or Heroku).</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node13.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node13" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node13_thumb.png?w=351&h=409" alt="2012.04.12node13" width="351" height="409" border="0" /></a></p>
<p>The key phrasing there is that you are signing into a Cloud Foundry <strong>API</strong>. So ANY Cloud Foundry provider (that is accessible by Cloud9 IDE) is a valid target. I plugged in the API endpoint of the newest Iron Foundry environment, and provided my credentials.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node14.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node14" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node14_thumb.png?w=354&h=402" alt="2012.04.12node14" width="354" height="402" border="0" /></a></p>
<p>Once I signed in, I saw that I had no apps in this environment yet. After putting a name to application, I clicked the <strong>Create New</strong> Cloud Foundry application button and was given the choice of Node.js runtime version, number of instances to run this on, and how much RAM to allocate.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node15.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node15" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node15_thumb.png?w=358&h=408" alt="2012.04.12node15" width="358" height="408" border="0" /></a></p>
<p>That was the final step in the deployment target wizard, and now all that’s left to do is select this new package and click <strong>Deploy</strong>.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node16.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node16" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node16_thumb.png?w=450&h=180" alt="2012.04.12node16" width="450" height="180" border="0" /></a></p>
<p>In <strong>seven seconds</strong>, the deployment was done and I was provided my Iron Foundry URL.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node17.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node17" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node17_thumb.png?w=450&h=133" alt="2012.04.12node17" width="450" height="133" border="0" /></a></p>
<p>Sure enough, hitting that URL (<a href="http://seroternodetest.ironfoundry.me/service" target="_blank">http://seroternodetest.ironfoundry.me/service</a>) in the browser resulted in my Node.js application returning the expected response.</p>
<p><a href="http://seroter.files.wordpress.com/2012/04/2012-04-12node18.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.04.12node18" src="http://seroter.files.wordpress.com/2012/04/2012-04-12node18_thumb.png?w=434&h=112" alt="2012.04.12node18" width="434" height="112" border="0" /></a></p>
<p>How cool is all that? I admit that while I find Node.js pretty interesting, I don’t have a whole lot of enterprise-type scenarios in mind yet. But, playing with Node.js gave me a great excuse to try out the handy Cloud9 IDE while flexing Iron Foundry’s newfound love for polyglot environments.</p>
<p>What do you think? Have you tried web-only IDEs? Do you have any sure-thing usage scenarios for Node.js in enterprise environments?</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/cloud-foundry/'>Cloud Foundry</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2289/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2289&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/04/13/deploying-node-js-applications-to-iron-foundry-using-the-cloude9-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node01_thumb.png" medium="image">
			<media:title type="html">2012.04.12node01</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node02_thumb.png" medium="image">
			<media:title type="html">2012.04.12node02</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node03_thumb.png" medium="image">
			<media:title type="html">2012.04.12node03</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node04_thumb.png" medium="image">
			<media:title type="html">2012.04.12node04</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node05_thumb.png" medium="image">
			<media:title type="html">2012.04.12node05</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node06_thumb.png" medium="image">
			<media:title type="html">2012.04.12node06</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node07_thumb.png" medium="image">
			<media:title type="html">2012.04.12node07</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node08_thumb.png" medium="image">
			<media:title type="html">2012.04.12node08</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node09_thumb.png" medium="image">
			<media:title type="html">2012.04.12node09</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node10_thumb.png" medium="image">
			<media:title type="html">2012.04.12node10</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node11_thumb.png" medium="image">
			<media:title type="html">2012.04.12node11</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node12_thumb.png" medium="image">
			<media:title type="html">2012.04.12node12</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node13_thumb.png" medium="image">
			<media:title type="html">2012.04.12node13</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node14_thumb.png" medium="image">
			<media:title type="html">2012.04.12node14</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node15_thumb.png" medium="image">
			<media:title type="html">2012.04.12node15</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node16_thumb.png" medium="image">
			<media:title type="html">2012.04.12node16</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node17_thumb.png" medium="image">
			<media:title type="html">2012.04.12node17</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/04/2012-04-12node18_thumb.png" medium="image">
			<media:title type="html">2012.04.12node18</media:title>
		</media:content>
	</item>
		<item>
		<title>Three Software Updates to be Aware Of</title>
		<link>http://seroter.wordpress.com/2012/04/06/three-software-updates-to-be-aware-of/</link>
		<comments>http://seroter.wordpress.com/2012/04/06/three-software-updates-to-be-aware-of/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 15:42:36 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[BizTalk]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Foundry]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[StreamInsight]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2244</guid>
		<description><![CDATA[In the past few days, there have been three sizable product announcements that should be of interest to the cloud/integration community. Specifically, there are noticeable improvements to Microsoft’s CEP engine StreamInsight, Windows Azure’s integration services, and Tier 3’s Iron Foundry PaaS. First off, the Microsoft StreamInsight team recently outlined changes that are coming in their [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2244&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In the past few days, there have been three sizable product announcements that should be of interest to the cloud/integration community. Specifically, there are noticeable improvements to Microsoft’s CEP engine <a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/business-intelligence/complex-event-processing.aspx" target="_blank">StreamInsight</a>, <a href="https://www.windowsazure.com/en-us/home/features/service-bus/" target="_blank">Windows Azure’s</a> integration services, and Tier 3’s <a href="http://www.ironfoundry.org/" target="_blank">Iron Foundry</a> PaaS.</p>
<p>First off, the Microsoft <strong>StreamInsight</strong> team recently <a href="http://blogs.msdn.com/b/streaminsight/archive/2012/03/30/a-high-level-streaminsight-2-1-preview.aspx" target="_blank">outlined changes</a> that are coming in their StreamInsight 2.1 release. This is actually a pretty major update with some fundamental modification to the programmatic object model. I can attest to the fact that it can be challenge to build up the necessary host/query/adapter plumbing necessary to get a solution rolling, and the StreamInsight team has acknowledged this. The new object model will be a bit more straightforward. Also, we’ll see IEnumerable and IObservable become more first-class citizens in the platform. Developers are going to be encouraged to use IEnumerable/IObservable in lieu of adapters in both embedded AND server-based deployment scenarios. In addition to changes to the object model, we’ll also see improved checkpointing (failure recovery) support. If you want to learn more about StreamInsight, and are a Pluralsight subscriber, you can <a href="http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=streaminsight" target="_blank">watch my course</a> on this product.</p>
<p>Next up, Microsoft released the latest CTP for its <strong>Windows Azure Service Bus EAI and EDI</strong> components. As a refresher, these are “BizTalk in the cloud”-like services that improve connectivity, message processing and partner collaboration for hybrid situations. I summarized this product in an <a href="http://www.infoq.com/news/2012/01/azure-eai" target="_blank">InfoQ article</a> written in December 2011. So what’s new? Microsoft <a href="http://social.msdn.microsoft.com/Forums/en-US/servicebuslabs/thread/3fb725e5-8415-4ba7-a51c-9bd00a5798a8" target="_blank">issued a description</a> of the core changes, but in a nutshell, the components are maturing. The tooling is improving, the message processing engine can handle flat files or XML, the mapping and schema designers have enhanced functionality, and the EDI offering is more complete. You can <a href="http://www.microsoft.com/download/en/details.aspx?id=17691" target="_blank">download this release</a> from the Microsoft site.</p>
<p>Finally, those cats at Tier 3 have <a href="http://blog.ironfoundry.org/2012/04/new-iron-foundry-test-environment-me/" target="_blank">unleashed a substantial update</a> to their open-source <strong>Iron Foundry</strong> (public or private) .NET PaaS offering. The big takeaway is that Iron Foundry is now feature-competitive with its parent project, the wildly popular <a href="http://www.cloudfoundry.com/" target="_blank">Cloud Foundry</a>. Iron Foundry now supports a full suite of languages (.NET as well as Ruby, Java, PHP, Python, Node.js), multiple backend databases (SQL Server, Postgres, MySQL, Redis, MongoDB), and queuing support through Rabbit MQ. In addition, they’ve turned on the ability to <a href="http://blog.ironfoundry.org/2012/04/caldecott-with-ms-sql-server/" target="_blank">tunnel into backend services</a> (like SQL Server) so you don’t necessarily need to apply <a href="http://seroter.wordpress.com/2012/01/24/building-an-odata-web-service-on-iron-foundry/" target="_blank">the monkey business</a> that I employed a few months back. Tier 3 has also beefed up the hosting environment so that people who try out their hosted version of Iron Foundry can have a stable, reliable experience. A multi-language, private PaaS with nearly all the services that I need to build apps? Yes, please.</p>
<p>Each of the above releases is interesting in its own way and to me, they have relationships with one another. The Azure services enable a whole new set of integration scenarios, Iron Foundry makes it simple to move web applications between environments, and StreamInsight helps me quickly make sense of the data being generated by my applications. It’s a fun time to be an architect or developer!</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/net/'>.NET</a>, <a href='http://seroter.wordpress.com/category/biztalk/'>BizTalk</a>, <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/cloud-foundry/'>Cloud Foundry</a>, <a href='http://seroter.wordpress.com/category/soa/'>SOA</a>, <a href='http://seroter.wordpress.com/category/streaminsight/'>StreamInsight</a>, <a href='http://seroter.wordpress.com/category/windows-azure/'>Windows Azure</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2244&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/04/06/three-software-updates-to-be-aware-of/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>
	</item>
		<item>
		<title>ETL in the Cloud with Informatica: Part 4 &#8211; Sending Salesforce.com Data to Local Database</title>
		<link>http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-4-sending-salesforce-com-data-to-local-database/</link>
		<comments>http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-4-sending-salesforce-com-data-to-local-database/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 14:17:53 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2228</guid>
		<description><![CDATA[The Informatica Cloud is an integration-as-a-service platform for designing and executing Extract-Transform-Load (ETL) tasks. This is the fourth and final post in a blog series that looked a few realistic usage scenarios for this platform. In this post, I’ll show you how you can send real-time data changes from Salesforce.com to a local SQL Server [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2228&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Informatica Cloud is an integration-as-a-service platform for designing and executing Extract-Transform-Load (ETL) tasks. This is the fourth and final post in a blog series that looked a few realistic usage scenarios for this platform. In this post, I’ll show you how you can send<strong> real-time data changes</strong> from Salesforce.com to a local SQL Server database.</p>
<p>As a reminder, in this four-part blog series, I am walking through the following scenarios:</p>
<ul>
<li><a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">Part 1 – Sending File Data to Dynamics CRM Online</a></li>
<li><a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/" target="_blank">Part 2 – Sending Salesforce.com Data to Dynamics CRM Online</a></li>
<li><a href="http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-3-sending-dynamics-crm-online-data-to-local-database" target="_blank">Part 3 – Sending Dynamics CRM Online Data to a Local Database</a></li>
<li><strong>Part 4 – Sending Salesforce.com Data to Local Database</strong></li>
</ul>
<h3>Scenario Summary</h3>
<p>I originally tried to do this with a SQL Azure database, but the types of errors I was getting led me to believe that Informatica is not yet using a JDBC driver that supports Azure. So be it. Here’s what I built:</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica42.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica42" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica42_thumb.png?w=450&h=325" alt="2012.03.26informatica42" width="450" height="325" border="0" /></a></p>
<p>In this solution, I <strong>(1)</strong> create the ETL task in the web-based designer, <strong>(2)</strong> setup Salesforce.com Outbound Messaging to send out an event whenever a new Account is added, <strong>(3)</strong> receive that event on an endpoint hosted in the Informatica Cloud and push the message to the on-premises agent, and <strong>(4)</strong> update the local database with the new account.</p>
<p>Outbound Messaging is such a cool feature of Salesforce.com and a way to have a truly event-driven line of business application. Let’s see how it works.</p>
<h3>Building the ETL Package</h3>
<p>To start with, I  decided to reuse the same <strong>CrmAccount </strong>table that I created for the last post. This table holds some basic details for a given account.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica301.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica30" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica30_thumb1.png?w=334&h=193" alt="2012.03.26informatica30" width="334" height="193" border="0" /></a></p>
<p>Next, I went to the Informatica Cloud task designer and created a new Data Synchronization task. I first need to create the task BEFORE I can set up Outbound Messaging in Salesforce.com. On the first page of the wizard, I defined my ETL and set the operation for <strong>Insert</strong>.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica43.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica43" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica43_thumb.png?w=435&h=399" alt="2012.03.26informatica43" width="435" height="399" border="0" /></a></p>
<p>On the next wizard page, I reused the Salesforce.com connection that I created in the <a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/" target="_blank">second post of this blog series</a>. I set the <strong>Source Object </strong>to Account and saw the simple preview of the accounts currently in Salesforce.com.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica44.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica44" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica44_thumb.png?w=450&h=340" alt="2012.03.26informatica44" width="450" height="340" border="0" /></a></p>
<p>I then set up my target, using the same SQL Server connection that I created in the previous post. I then chose the <strong>CrmAccount</strong> table and saw that there were no rows in there.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica45.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica45" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica45_thumb.png?w=450&h=357" alt="2012.03.26informatica45" width="450" height="357" border="0" /></a></p>
<p>I didn’t choose any filter of data and moved on to the Field Mapping section. Here, I filled each target field with a value from the source object.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica46.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica46" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica46_thumb.png?w=450&h=223" alt="2012.03.26informatica46" width="450" height="223" border="0" /></a></p>
<p>Finally, on the scheduling tab, I chose the “Run this task in real-time upon receiving an outbound message from Salesforce” option. When selected, this option reveals a URL that Salesforce.com can call from its Outbound Messaging activity.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica47.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica47" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica47_thumb.png?w=450&h=211" alt="2012.03.26informatica47" width="450" height="211" border="0" /></a></p>
<p>That’s it! Now, how about we go get Salesforce.com all set up for this solution?</p>
<h3>Setting up Salesforce.com Outbound Messaging</h3>
<p>In my Salesforce.com Setup console, I went to the Workflow Rules section.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica48.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica48" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica48_thumb.png?w=187&h=241" alt="2012.03.26informatica48" width="187" height="241" border="0" /></a></p>
<p>I then created a brand new Workflow Rule and selected the <strong>Account</strong> object. I then named the rule, set it to run when records are created or edited and gave it a simple evaluation rule that checks to see if the <strong>Account Name</strong> has a value.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica49.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica49" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica49_thumb.png?w=450&h=376" alt="2012.03.26informatica49" width="450" height="376" border="0" /></a></p>
<p>On the next page of this wizard, I was given the choice of what to do when that workflow condition is met. Notice that besides <strong>Outbound Messaging</strong>, there are also options for creating tasks and sending email messages.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica50.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica50" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica50_thumb.png?w=450&h=393" alt="2012.03.26informatica50" width="450" height="393" border="0" /></a></p>
<p>After choosing <strong>New Outbound Message</strong>, I needed to provide a name for this Outbound Message, the endpoint URL provided to me by the Informatica Cloud, and the data fields that my mapping will expect. In my case, there were five fields that were used in my mapping.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica51.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica51" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica51_thumb.png?w=450&h=264" alt="2012.03.26informatica51" width="450" height="264" border="0" /></a></p>
<p>After saving this configuration, I completed the Workflow Rule and activated it.</p>
<h3>Testing the ETL</h3>
<p>With my Informatica Cloud configuration ready, and Salesforce.com Workflow Rule activated, I went and created a brand new Account record.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica52.png"><img style="background-image:none;margin:0;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica52" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica52_thumb.png?w=450&h=312" alt="2012.03.26informatica52" width="450" height="312" border="0" /></a></p>
<p>After saving the new record, I went and looked in the <strong>Outbound Messaging Delivery Status</strong> view and it was empty, meaning that it had already completed! Sure enough, I checked my database table and BOOM, there it was.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica53.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica53" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica53_thumb.png?w=450&h=99" alt="2012.03.26informatica53" width="450" height="99" border="0" /></a></p>
<p>That’s impressive!</p>
<h2>Summary</h2>
<p>One of the trickiest aspects of Salesforce.com Outbound Messaging is that you need an public-facing internet endpoint to push to, even if your receiving app is inside your firewall. By using the Informatica Cloud, you get one! This scenario demonstrated a way to do *instant* data transfer from Salesforce.com to a local database. I think that’s pretty killer.</p>
<p>I hope you found this series useful. A modern enterprise architecture landscape will include traditional components like BizTalk Server and Informatica (or SSIS for that matter), but also start to contain cloud-based integration tools. Informatica Cloud should be high on your list of options for integrating both on-premises and cloud applications, especially if you want to stop installing and maintaining integration software!</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/biztalk/'>BizTalk</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2228&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-4-sending-salesforce-com-data-to-local-database/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica42_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica42</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica30_thumb1.png" medium="image">
			<media:title type="html">2012.03.26informatica30</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica43_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica43</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica44_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica44</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica45_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica45</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica46_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica46</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica47_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica47</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica48_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica48</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica49_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica49</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica50_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica50</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica51_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica51</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica52_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica52</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica53_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica53</media:title>
		</media:content>
	</item>
		<item>
		<title>ETL in the Cloud with Informatica: Part 3 &#8211; Sending Dynamics CRM Online Data to Local Database</title>
		<link>http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-3-sending-dynamics-crm-online-data-to-local-database/</link>
		<comments>http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-3-sending-dynamics-crm-online-data-to-local-database/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 14:16:08 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Dynamics CRM]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2200</guid>
		<description><![CDATA[In Part 1 and Part 2 of this series, I’ve taken a look at doing Extract-Transform-Load (ETL) operations using the Informatica Cloud. This platform looks like a great choice for bulk movement of data between cloud or on-premises systems. So far we’ve seen how to move data from on-premises to the cloud, and then between [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2200&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">Part 1</a> and <a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/" target="_blank">Part 2</a> of this series, I’ve taken a look at doing Extract-Transform-Load (ETL) operations using the Informatica Cloud. This platform looks like a great choice for bulk movement of data between cloud or on-premises systems. So far we’ve seen how to move data from on-premises to the cloud, and then between clouds. In this post, I’ll show you how you can transfer data from a cloud application (Dynamics CRM Online) to a SQL Server database running onsite.</p>
<p>As a reminder, in this four-part blog series, I am walking through the following scenarios:</p>
<ul>
<li><a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">Part 1 – Sending File Data to Dynamics CRM Online</a></li>
<li><a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/" target="_blank">Part 2 – Sending Salesforce.com Data to Dynamics CRM Online</a></li>
<li><strong>Part 3 –</strong> <strong>Sending Dynamics CRM Online Data to a Local Database</strong></li>
<li><a href="http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-4-sending-salesforce-com-data-to-local-database" target="_blank">Part 4 – Sending Salesforce.com Data to Local Database</a></li>
</ul>
<h3>Scenario Summary</h3>
<p>For this demo, I’ll be building a solution that looks like this:</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica29.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica29" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica29_thumb.png?w=450&h=301" alt="2012.03.26informatica29" width="450" height="301" border="0" /></a></p>
<p>For this case, I <strong>(1)</strong> build the ETL package using the Informatica Cloud’s web-based designer, <strong>(2)</strong> the Cloud Secure Agent retrieves the ETL details when the task is triggered, <strong>(3)</strong> the data is retrieved from Dynamics CRM Online, and <strong>(4)</strong> the data is loaded into a SQL Server database.</p>
<p>You can probably think of many scenarios where this situation will apply. For example, good practices for cloud applications often state that you keep onsite backups of your data. This is one way to do that on a daily schedule. In another case, you may have very complex reporting needs and cannot accomplish them using Dynamic CRM Online’s built in reporting capability, so a local, transformed replica makes sense.</p>
<p>Let’s see how to make this happen.</p>
<h3>Setting up the Target Database</h3>
<p>First up, I created a database table in my SQL Server 2008 R2 instance. This table, called <strong>CrmAccount</strong> holds a few of the attributes that reside in the Dynamics CRM Online “Account” entity.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica30.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica30" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica30_thumb.png?w=334&h=193" alt="2012.03.26informatica30" width="334" height="193" border="0" /></a></p>
<p>Next, I added a new Login to my Instance and switched my server to accept both Windows Authentication *and* SQL Server authentication. Why? During some trial runs with this, I couldn’t seem to get integrated authentication to work in the Informatica Cloud designer. When I switched to a local DB account, the connection worked fine.</p>
<p>After this, I confirmed that I had TCP/IP enabled since the Cloud Secure Agent uses this port for connecting to my server.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica31.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica31" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica31_thumb.png?w=450&h=215" alt="2012.03.26informatica31" width="450" height="215" border="0" /></a></p>
<h3>Building the ETL Package</h3>
<p>With all that set up, now we can build our ETL task in the Informatica Cloud environment. The first step in the Data Synchronization wizard is to provide a name for my task and choose the type of operation (e.g. Insert, Update, Upsert, Delete).</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica32.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica32" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica32_thumb.png?w=450&h=360" alt="2012.03.26informatica32" width="450" height="360" border="0" /></a></p>
<p>Next, I’ll chose my Source. In this step, I reused the Dynamics CRM Online connection that I created in the <a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">first post of the series</a>. After choosing that connection, I selected the <strong>Account</strong> entity as my <strong>Source Object</strong>. A preview of the data was then automatically shown.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica33.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica33" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica33_thumb.png?w=450&h=370" alt="2012.03.26informatica33" width="450" height="370" border="0" /></a></p>
<p>With my source in place, I moved on to define my target. In this case, my target is going to involve a new SQL Server connection. To create this connection, I supplied the name of my server, instance (if applicable), database, credentials (for the SQL Server login account) and port number.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica34.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica34" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica34_thumb.png?w=450&h=410" alt="2012.03.26informatica34" width="450" height="410" border="0" /></a></p>
<p>Once I defined the connection, the drop down list (<strong>Target Object</strong>) was auto-populated with the tables in my database. I selected <strong>CrmAccount</strong> and saw a preview of my (empty) table.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica35.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica35" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica35_thumb.png?w=450&h=329" alt="2012.03.26informatica35" width="450" height="329" border="0" /></a></p>
<p>On the next wizard page, I decided to not apply any filters on the Dynamics CRM Online data. So, ALL accounts should be copied over to my database table. I was now ready for the data mapping exercise. The following wizard page let me drag-and-drop fields from the source (Dynamics CRM Online) to the target (SQL Server 2008 R2).</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica36.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica36" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica36_thumb.png?w=450&h=216" alt="2012.03.26informatica36" width="450" height="216" border="0" /></a></p>
<p>On the last page of the wizard, I chose to NOT run this task on a schedule. I could set this run every five minutes, or once a week. There’s lots of flexibility in this.</p>
<h3>Testing the ETL</h3>
<p>Let’s test this out. In my list of Data Synchronization Tasks I can see the tasks from the last two posts, and a new tasks representing what we created above.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica37.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica37" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica37_thumb.png?w=450&h=164" alt="2012.03.26informatica37" width="450" height="164" border="0" /></a></p>
<p>By clicking the green <strong>Run Now </strong>button, I can kick off this ETL. As an aside, the Informatica Cloud exposes a REST API where among other things, you can make a web request that kicks off a task on demand. That’s a neat feature that can come in handy if you have an ETL that runs infrequently, but a need arises for it to run RIGHT NOW. In this case, I’m going with the <strong>Run Now </strong>button.</p>
<p>To compare results, I have 14 account records in my Dynamics CRM Online organization.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica38.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica38" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica38_thumb.png?w=387&h=311" alt="2012.03.26informatica38" width="387" height="311" border="0" /></a></p>
<p>I can see in my Informatica Cloud Activity Log that the ETL task completed and 14 records moved over.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica39.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica39" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica39_thumb.png?w=450&h=103" alt="2012.03.26informatica39" width="450" height="103" border="0" /></a></p>
<p>To be sure, I jumped back to my SQL Server database and checked out my table.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica40.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica40" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica40_thumb.png?w=380&h=284" alt="2012.03.26informatica40" width="380" height="284" border="0" /></a></p>
<p>As I expected,  I can see 14 new records in my table. Success!</p>
<h3>Summary</h3>
<p>Sending data from a cloud application to an on-premises database is a realistic use case and hopefully this demo showed how easily it can be accomplished with the Informatica Cloud. The database connection is relatively straightforward and the data mapping tool should satisfy most ETL needs.</p>
<p>In the next post of this series, I’ll show you how to send data, in real-time, from Salesforce.com to a SQL Server database.</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/dynamics-crm/'>Dynamics CRM</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2200/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2200/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2200/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2200&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-3-sending-dynamics-crm-online-data-to-local-database/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica29_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica29</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica30_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica30</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica31_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica31</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica32_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica32</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica33_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica33</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica34_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica34</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica35_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica35</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica36_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica36</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica37_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica37</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica38_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica38</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica39_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica39</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica40_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica40</media:title>
		</media:content>
	</item>
		<item>
		<title>ETL in the Cloud with Informatica: Part 2 &#8211; Sending Salesforce.com Data to Dynamics CRM Online</title>
		<link>http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/</link>
		<comments>http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 14:10:46 +0000</pubDate>
		<dc:creator>Richard Seroter</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Dynamics CRM]]></category>
		<category><![CDATA[Salesforce.com]]></category>

		<guid isPermaLink="false">https://seroter.wordpress.com/?p=2162</guid>
		<description><![CDATA[In my last post, we saw how the Informatica Cloud lets you create bulk data load (i.e. ETL) tasks using a web-based designer and uses a lightweight local machine agent to facilitate the data exchange. In this post, I’ll show you how to transfer data from Salesforce.com to Dynamics CRM Online using the Informatica Cloud. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2162&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">my last post</a>, we saw how the <a href="http://www.informaticacloud.com/" target="_blank">Informatica Cloud</a> lets you create bulk data load (i.e. ETL) tasks using a web-based designer and uses a lightweight local machine agent to facilitate the data exchange. In this post, I’ll show you how to transfer data from Salesforce.com to Dynamics CRM Online using the Informatica Cloud.</p>
<p>In this four-part blog series, I will walk through the following scenarios:</p>
<ul>
<li><a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">Part 1 – Sending File Data to Dynamics CRM Online</a></li>
<li><strong>Part 2 – Sending Salesforce.com Data to Dynamics CRM Online</strong></li>
<li><a href="http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-3-sending-dynamics-crm-online-data-to-local-database/" target="_blank">Part 3 – Sending Dynamics CRM Online Data to a Local Database</a></li>
<li><a href="http://seroter.wordpress.com/2012/03/27/etl-in-the-cloud-with-informatica-part-4-sending-salesforce-com-data-to-local-database/" target="_blank">Part 4 – Sending Salesforce.com Data to Local Database</a></li>
</ul>
<h3>Scenario Summary</h3>
<p>In this post, I’ll build the following solution.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica17.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica17" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica17_thumb.png?w=450&h=365" alt="2012.03.26informatica17" width="450" height="365" border="0" /></a></p>
<p>In this solution, <strong>(1)</strong> I leverage the web-based designer to craft the ETL between Salesforce.com and Dynamics CRM Online, <strong>(2)</strong> use a locally installed Secure Cloud Agent to retrieve ETL details, <strong>(3)</strong> pull data from Salesforce.com, and finally <strong>(4)</strong> move that data into Dynamics CRM Online.</p>
<p>What’s interesting is that even though this is a “cloud only” ETL, the Informatica Cloud solution still requires the use of the Cloud Secure Agent (installed on-premises) to facilitate the actual data transfer.</p>
<p>To view some of the setup steps (such as signing up for services and installing required software), see the <a href="http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-1-sending-file-data-to-dynamics-crm-online/" target="_blank">first post</a> in this series.</p>
<h3>Building the ETL Package</h3>
<p>To start with, I logged into the Informatica Cloud and created a new Data Synchronization task.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica18.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica18" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica18_thumb.png?w=450&h=336" alt="2012.03.26informatica18" width="450" height="336" border="0" /></a></p>
<p>On the next wizard page, I created a new connection type for Salesforce.com and provided all the required credentials.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica19.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica19" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica19_thumb.png?w=450&h=289" alt="2012.03.26informatica19" width="450" height="289" border="0" /></a></p>
<p>With that in place, I could select that connection, the entity (“Contact”) to pull data from, and see a quick preview of that data in my Salesforce.com account.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica20.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica20" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica20_thumb.png?w=450&h=395" alt="2012.03.26informatica20" width="450" height="395" border="0" /></a></p>
<p>On the next wizard page, I configured a connection to my ETL target. I chose an existing Dynamics CRM Online connection, and selected the “Contact” entity.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica21.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica21" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica21_thumb.png?w=450&h=411" alt="2012.03.26informatica21" width="450" height="411" border="0" /></a></p>
<p>Instead of transferring all the data from my Salesforce.com organization to my Dynamics CRM Online organization, I  used the next wizard page to define a data filter. In my case, I’m only going to grab Salesforce.com contacts that have a title of “Architect”.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica22.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica22" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica22_thumb.png?w=450&h=184" alt="2012.03.26informatica22" width="450" height="184" border="0" /></a></p>
<p>For the data mapping exercise, it’s nice that the Informatica tooling automatically links fields through its <strong>Automatch </strong>capability. In this scenario, I didn’t do any manual mapping and relied solely on Automatch.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica23.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica23" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica23_thumb.png?w=450&h=301" alt="2012.03.26informatica23" width="450" height="301" border="0" /></a></p>
<p>While, like in my first post, I chose not to schedule this task, you’ll notice here that I *have* to select a Secure Cloud Agent. The agent is responsible for executing the ETL task after retrieving the details of the task from the Informatica Cloud.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica24.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica24" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica24_thumb.png?w=450&h=269" alt="2012.03.26informatica24" width="450" height="269" border="0" /></a></p>
<p>This ETL is now complete.</p>
<h3>Testing the ETL</h3>
<p>In my list of Data Synchronization Tasks list, I can see my new task. The green <strong>Run Now </strong>button will trigger the task.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica25.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica25" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica25_thumb.png?w=450&h=149" alt="2012.03.26informatica25" width="450" height="149" border="0" /></a></p>
<p>I have this record in my Salesforce.com application. Notice the “title” of Architect.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica26.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica26" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica26_thumb.png?w=450&h=313" alt="2012.03.26informatica26" width="450" height="313" border="0" /></a></p>
<p>After a few moments, the task runs and I could see in the Informatica Cloud’s Activity Log that this task completed successfully.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica27.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica27" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica27_thumb.png?w=450&h=95" alt="2012.03.26informatica27" width="450" height="95" border="0" /></a></p>
<p>To be absolutely sure, I logged into my Dynamics CRM Online account, and sure enough, I now have that one record added.</p>
<p><a href="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica28.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="2012.03.26informatica28" src="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica28_thumb.png?w=450&h=240" alt="2012.03.26informatica28" width="450" height="240" border="0" /></a></p>
<h3>Summary</h3>
<p>There are lots of reasons to do ETL between cloud applications. While Salesforce.com and Dynamics CRM Online are competing products, many large organizations are going to likely leverage both platforms for different reasons. Maybe you’ll have your sales personnel use Salesforce.com for traditional sales functions, and use Dynamics CRM Online for something like partner management. Either way, it’s great to have the option to easily move data between these environments without having to install and manage enterprise software on site.</p>
<p>Next up, I’ll show you how to take Dynamics CRM Online data and push it to an on-premises database.</p>
<br />Filed under: <a href='http://seroter.wordpress.com/category/cloud/'>Cloud</a>, <a href='http://seroter.wordpress.com/category/dynamics-crm/'>Dynamics CRM</a>, <a href='http://seroter.wordpress.com/category/salesforce-com/'>Salesforce.com</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seroter.wordpress.com/2162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seroter.wordpress.com/2162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/seroter.wordpress.com/2162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/seroter.wordpress.com/2162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seroter.wordpress.com/2162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seroter.wordpress.com/2162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seroter.wordpress.com/2162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seroter.wordpress.com/2162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seroter.wordpress.com&#038;blog=649486&#038;post=2162&#038;subd=seroter&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://seroter.wordpress.com/2012/03/26/etl-in-the-cloud-with-informatica-part-2-sending-salesforce-com-data-to-dynamics-crm-online/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ef5fd2c721814f5491c1f6bfdadf4753?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rseroter</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica17_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica17</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica18_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica18</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica19_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica19</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica20_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica20</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica21_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica21</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica22_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica22</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica23_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica23</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica24_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica24</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica25_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica25</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica26_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica26</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica27_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica27</media:title>
		</media:content>

		<media:content url="http://seroter.files.wordpress.com/2012/03/2012-03-26informatica28_thumb.png" medium="image">
			<media:title type="html">2012.03.26informatica28</media:title>
		</media:content>
	</item>
	</channel>
</rss>
