<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11646261</id><updated>2012-02-01T10:04:38.586-08:00</updated><category term='SubSonic'/><category term='SharePoint BCS'/><category term='datajs'/><category term='Indexes for Objects'/><category term='SQL Server Database Publishing Wizard'/><category term='salesforce.com'/><category term='LINQ to Entity Base'/><category term='Data Connections'/><category term='Red Jet'/><category term='LINQ to XPO'/><category term='ASP.NET'/><category term='Project &quot;Houston&quot;'/><category term='LINQ to Mock'/><category term='Codename &quot;Dallas&quot;'/><category term='SQL Server 2005 SP1'/><category term='Amazon S3'/><category term='ADO.NET Entity Framework v4.2'/><category term='QCon'/><category term='Debugging'/><category term='SQL Data Services'/><category term='SQL Azure Database'/><category term='SQLce RC1'/><category term='SO-Aware'/><category term='Windows Azure Toolkit for iOS'/><category term='Megastore'/><category term='ASP.NET 3.5 Extensions'/><category term='VS 2008'/><category term='Windows Azure Drive'/><category term='SQL Server 2005 SP2'/><category term='Closures'/><category term='ASP.NET Dynamic Data Extensions'/><category term='Microsoft Dynamics'/><category term='Volta'/><category term='Hyper-V'/><category term='MIX09'/><category term='Windows Azure Platform Appliance'/><category term='Citrix'/><category term='Sesame Data Browser'/><category term='C# 3.0'/><category term='Structure 2010 Conference'/><category term='Access Control Services'/><category term='VBA'/><category term='Windows Phone 7'/><category term='Azure+'/><category term='Service Outages'/><category term='Windows Geneva'/><category term='Google Data Services'/><category term='Oslo'/><category term='Object/Relational Modeling'/><category term='LotusLive Engage'/><category term='Live Mesh'/><category term='LINQ to SubSonic'/><category term='Atom 1.0'/><category term='MIX08'/><category term='Unisys'/><category term='LINQ to Financial Markets'/><category term='Google Marketplace'/><category term='Live Framework'/><category term='Erik Meijer F#'/><category term='LINQ to RDF'/><category term='Azure AppFabric Application Manager'/><category term='Umbraco'/><category term='Intel'/><category term='Azure AppFabric Caching'/><category term='DataContractSerializer'/><category term='LoadStorm'/><category term='SqlMetal.exe'/><category term='Exchange'/><category term='Water Sports'/><category term='RDA'/><category term='AppFabric'/><category term='Moq'/><category term='LotusLive'/><category term='ObjectDataSource'/><category term='Microsoft Business'/><category term='LINQ to LLBLGen Pro'/><category term='MIX07'/><category term='Windows Azure AppFabric Application Manager'/><category term='SQL Azure Sharding'/><category term='TechEd 2008'/><category term='ASP.NET Membership Services'/><category term='Amazon IAM'/><category term='LINQ to Objects'/><category term='Fiddler'/><category term='Exchange Online'/><category term='CloudBerry'/><category term='ESP'/><category term='Qumana'/><category term='SQL Azure Vidalia'/><category term='Microsoft Dallas'/><category term='SQL Azure Data Migration'/><category term='LINQ to DataSets'/><category term='Traffic Manager'/><category term='Continuous LINQ'/><category term='VS 2008 SP1'/><category term='Excel DataScope'/><category term='VMforce'/><category term='Huagati DBML/EDMX Tools'/><category term='Management Studio Express SP2'/><category term='TechEd 2009'/><category term='OakLeaf Blog'/><category term='PLINQ'/><category term='SharePoint'/><category term='Oracle CRM'/><category term='Access 2010'/><category term='Microsoft Cloud Partner'/><category term='Occasionally Connected Systems'/><category term='LINQ to Atom'/><category term='LINQ to OneNote'/><category term='WSS 3.0'/><category term='Pig'/><category term='Cloud Computing Performance'/><category term='Joomla'/><category term='SQL Server Reporting Services'/><category term='Ruby'/><category term='IronRuby'/><category term='Dynamics AX 2012'/><category term='Databases'/><category term='Project Huron'/><category term='Repository Pattern'/><category term='Red Hat'/><category term='SharePoint 2010 Online'/><category term='EntityDataControl'/><category term='OopenFlow'/><category term='Persistence Ignorance'/><category term='XSD'/><category term='Hubpages'/><category term='Visual Studio Magazine'/><category term='.NET Framework 4.0'/><category term='HPC Server 2008 R2'/><category term='Codename &quot;Social Analytics&quot;'/><category term='Lang.NET'/><category term='Private Clouds'/><category term='Google Docs'/><category term='Windows Server 2008'/><category term='Mon.itor.us'/><category term='Market Research'/><category term='SQL Server 2005 Express'/><category term='Google Megastore'/><category term='Pomegranate'/><category term='Infragistics'/><category term='RSS 2.0'/><category term='LINQ to Lucene'/><category term='OakLeaf Mobile'/><category term='DryadLINQ'/><category term='Bindable LINQ'/><category term='CAP Theorem'/><category term='Oracle Database 11g'/><category term='Squidoo'/><category term='OData'/><category term='The New Yorker'/><category term='IsMyServerUp'/><category term='VB 9.0'/><category term='DAO'/><category term='Cassandra'/><category term='Pattern Matching'/><category term='SQL Azure Labs'/><category term='jQuery'/><category term='WebMatrix'/><category term='SQL Azure Migration Wizard'/><category term='CRM'/><category term='Amazon VPN'/><category term='Google Base'/><category term='DLinq'/><category term='Rackspace'/><category term='LINQ to Named Pipes'/><category term='Apache Foundation'/><category term='SharePoint 2010'/><category term='Amazon Cloud Drive'/><category term='Visual Data Tools'/><category term='Clark Foam'/><category term='Writely'/><category term='CardSpace'/><category term='CouchDB'/><category term='LDAP'/><category term='SQLce'/><category term='Visual Studio. .NET Framework'/><category term='Drupal'/><category term='LINQ to Entities'/><category term='Cloudwashing'/><category term='PostgreSQL'/><category term='Apache Hadoop on Windows Azure'/><category term='Bugs'/><category term='DB2'/><category term='Performancing'/><category term='ISO/IEC 27001:2005'/><category term='ADO.NET 3.5'/><category term='Google Dart'/><category term='LINQ to XML'/><category term='Serialization'/><category term='Codename &quot;Atlanta&quot;'/><category term='MVC'/><category term='Hyper-V Cloud'/><category term='Velocity'/><category term='Cloud Service Pricing'/><category term='Chef'/><category term='Microsoft .NET'/><category term='MSDE'/><category term='&#x9;SQL AzureNoSQLAstoriaAzureAzure AppFabricCloud Computing&#xD;Windows AzureADO.NET Data ServicesSQL Azure Data MigrationWindows Azure AppFabricVMware'/><category term='PDC 2009'/><category term='TeraData'/><category term='Dynamic LINQ'/><category term='Amazon Web Services'/><category term='Visual Studio LightSwitch'/><category term='Hadoop'/><category term='Northwind'/><category term='FathomDB'/><category term='ADO.NET 3.0'/><category term='Windows HPC Server 2008 R2'/><category term='Office 2007'/><category term='Yahoo'/><category term='Unit Testing'/><category term='Windows Azure Traffic Manager'/><category term='QuickBase'/><category term='LINQ to Mesh'/><category term='Blue Jet'/><category term='Amazon S3 RRS'/><category term='Heroku'/><category term='LAMP'/><category term='Visual C# Express'/><category term='Windows Azure Platform Cloud Essentials'/><category term='LINQ to SAP'/><category term='OLE DB'/><category term='MarketPlace DataMarket'/><category term='CAML'/><category term='Linus Torvalds'/><category term='Jon Udell'/><category term='Google Health'/><category term='eSQL'/><category term='System Center Virtual Machine Manager'/><category term='Google App Engine'/><category term='xRM'/><category term='SOAP'/><category term='Hadoop on Azure'/><category term='VistA'/><category term='Microsoft Azure'/><category term='TrialTool'/><category term='LINQ to Matrices'/><category term='SQL Azure Reporting Services'/><category term='POCO'/><category term='System Center Operations Manager'/><category term='SQL Server 2008 R2 SP1'/><category term='ODBC'/><category term='LINQ to Active Directory'/><category term='SQL Business Intelligence Services (Azure)'/><category term='Google Apps'/><category term='ADO.NET vNext'/><category term='Project &quot;Daytona&quot;'/><category term='Electric MapReduce'/><category term='Redmond Magazine Group'/><category term='Surfboards'/><category term='Dublin'/><category term='Outlook'/><category term='ADO.NET Synchronization Services'/><category term='ServiceModel Trace Viewer'/><category term='DevOps'/><category term='Amazon RDS'/><category term='Windows Azure Pricing'/><category term='Apprenda'/><category term='SQL Server 2012'/><category term='SQLite'/><category term='Open XML'/><category term='O/RM'/><category term='AdventureWorks'/><category term='Azure SDK 1.5'/><category term='EF v1 Manifesto'/><category term='RSA'/><category term='Azure CDN'/><category term='Concero'/><category term='EntityBag'/><category term='ParallexFX'/><category term='Google App Engine for Business'/><category term='SAP'/><category term='Query Notifications'/><category term='TDD'/><category term='Windows Server 2008 R2'/><category term='LiveID'/><category term='FTP'/><category term='Monad'/><category term='HBase'/><category term='LINQ to SQL Azure'/><category term='Microsoft Research'/><category term='iOS'/><category term='ATT DSL'/><category term='NUnit'/><category term='Office 365'/><category term='Amazon WebServius'/><category term='LightSwitch'/><category term='PDC 2008'/><category term='Windows Vista'/><category term='Cloud Ninja Project'/><category term='JSINQ'/><category term='LINQ to Bing'/><category term='Formspring'/><category term='OakLeaf Blog Statistics'/><category term='WindowsAzure4j'/><category term='Apache Hadoop'/><category term='DataContract'/><category term='Real-Time Stats'/><category term='Cloud Essentials Pack'/><category term='LINQ to SQL Entity Base'/><category term='LINQ to ADO.NET Data Services'/><category term='GData'/><category term='Mashups'/><category term='Microsoft System Center'/><category term='Eclipse'/><category term='Plinqo'/><category term='Firebird'/><category term='Access Services'/><category term='T-SQL'/><category term='Windows Server 2003'/><category term='DefiningView'/><category term='Codename &quot;Data Explorer&quot;'/><category term='Python'/><category term='Pat Helland'/><category term='Crowbar'/><category term='PaaS'/><category term='Cringely'/><category term='Health Information Technology'/><category term='Azure Storage Analytics'/><category term='SSX'/><category term='Amazon CloudFormations'/><category term='Windows Azure Logs'/><category term='Microsoft Biology Framework'/><category term='Windows Live Writer'/><category term='Encryption'/><category term='Silverlight 2'/><category term='Merge Replication'/><category term='BizSpark'/><category term='Oracle'/><category term='.NET Framework 3.5'/><category term='Windows Azure Applications Monitoring Pack'/><category term='Sybase Fuji Beta'/><category term='Business Intelligence'/><category term='LINQ to SimpleDB'/><category term='Windows Communication Framework'/><category term='GFS'/><category term='Project Sydney'/><category term='WCF Message Logging'/><category term='Geneva'/><category term='Open Data Center'/><category term='StikiPad'/><category term='TerraService'/><category term='oSQL'/><category term='Redmond Developer News'/><category term='Entity Framework v4'/><category term='Silverlight 3'/><category term='DataContractJsonSerializer'/><category term='Google Gears'/><category term='Microsoft Pinpoint'/><category term='Facebook'/><category term='Codename &quot;Houston&quot;'/><category term='LINQ to Reflection'/><category term='Database.com'/><category term='HP'/><category term='Microsoft Watch'/><category term='Entity SQL'/><category term='Amazon ELB'/><category term='SLAs'/><category term='Azure Web Roles'/><category term='RemoteFX'/><category term='Amazon VPC'/><category term='Google'/><category term='SQLX'/><category term='LINQ to NCover'/><category term='OCS'/><category term='Jim Gray'/><category term='Bing'/><category term='Huron Project'/><category term='Workflow 4.0'/><category term='Databinding'/><category term='CloudBees'/><category term='Entity Framework v5'/><category term='Complex Event Processing'/><category term='SQL Server 2008 R2'/><category term='Service Broker'/><category term='Amazon MFA'/><category term='ARRA'/><category term='Windows Azure Marketplace DataMarket'/><category term='Electronic Health Records'/><category term='Novell'/><category term='Concurrency Management'/><category term='EHR'/><category term='Technorati'/><category term='ODBCDirect'/><category term='Codename &quot;Cloud Numerics&quot;'/><category term='Business Analytics'/><category term='Server App-V'/><category term='Squoop'/><category term='LINQ to CRM'/><category term='eBay'/><category term='Azure VM Roles'/><category term='Windows Azure Compute'/><category term='OpenStack'/><category term='MongoDB'/><category term='Team Foundation Services'/><category term='LINQ4SP'/><category term='NIST'/><category term='Longhorn'/><category term='LINQ to LDAP'/><category term='Business Connectivity Services'/><category term='TOGAF 9.0'/><category term='IronPython'/><category term='Azure Platform Appliance'/><category term='SLINQ'/><category term='LINQ'/><category term='EMR'/><category term='Microsoft Synchronization Services'/><category term='SDS'/><category term='Windows Developer Previews'/><category term='Codename &quot;Data Transfer&quot;'/><category term='InterLINQ'/><category term='Flickr4Writer'/><category term='WCF Configuration Editor'/><category term='Entity Data Model'/><category term='Bang Operator'/><category term='Scaffolding'/><category term='SQL Azure Federations Migration Wizare'/><category term='Oracle Database 10g XE'/><category term='TechEd 2007'/><category term='SharePoint 2010 Beta'/><category term='Blogger'/><category term='FlockDB'/><category term='Big Data'/><category term='SAML'/><category term='Orcas'/><category term='XPath'/><category term='Infrastructure 2.0'/><category term='Amazon Kindle'/><category term='Amazon Elastic MapReduce'/><category term='Appistry'/><category term='MIX 2011'/><category term='JavaScript'/><category term='Codename &quot;Denali&quot;'/><category term='InfoPath'/><category term='PHPAzure'/><category term='Rx'/><category term='Windows Azure Toolkit for Windows 8'/><category term='Microsoft Vidalia'/><category term='DLR'/><category term='Blogger Mobile Templates'/><category term='wiki'/><category term='LINQ to MDX'/><category term='VS 2005'/><category term='WLW'/><category term='Mosso'/><category term='Velocity Conference 2011'/><category term='SQL Server'/><category term='Downtime Reports'/><category term='Azure Table Storage Updates'/><category term='Pingdom'/><category term='Cloud Computing Security'/><category term='MEntity'/><category term='Cloud Foundry'/><category term='Azure Blob Storage Services'/><category term='Google Web Services'/><category term='Dryad'/><category term='Categories'/><category term='ASP.NET MVC'/><category term='Labels'/><category term='DropBox'/><category term='Sync Services'/><category term='SaaS'/><category term='Amazon SNS'/><category term='Windows Azure Diagnostics'/><category term='Windows Azure Logging'/><category term='Visual Basic Express'/><category term='Value Objects'/><category term='Public Clouds'/><category term='Cloud Security Alliance'/><category term='Windows Azure AppFabric'/><category term='SQL Azure'/><category term='Sarbanes-Oxley'/><category term='LINQ to CSLA'/><category term='PHPLinq'/><category term='Amazon SES'/><category term='SQL Compact'/><category term='HTML5'/><category term='Windows Phone 7.1 Mango'/><category term='IntelliTrace'/><category term='ASP.NET Dynamic Data'/><category term='Google Fusion Tables'/><category term='DSL problems'/><category term='S#arp Architecture'/><category term='Windows Identity Foundation (WIF)'/><category term='Azure Connect'/><category term='Cloudscaling'/><category term='ReportViewer'/><category term='Stored Procedures'/><category term='Fiddler2'/><category term='OCS Sync Framework'/><category term='CEP'/><category term='LINQ to MPI.NET'/><category term='NoSQL'/><category term='Azure Queue Storage Services'/><category term='Azure AppFabric'/><category term='ADO.NET'/><category term='IBM SmartCloud'/><category term='TechEd NorthAmerica 2010'/><category term='CloudKick'/><category term='Windows HPC'/><category term='RubyCLR'/><category term='San Francisco'/><category term='SQL Reporting Services (Azure)'/><category term='LINQ to REST'/><category term='Ripley Project'/><category term='WinFS'/><category term='ADO.NET Data Services'/><category term='Parallel LINQ'/><category term='Cloud Identity Summit'/><category term='C# 4.0'/><category term='Aggregate Functions'/><category term='NuoDB'/><category term='Visual Studio'/><category term='Structure 2011 Conference'/><category term='Cosmos'/><category term='LINQ to Google'/><category term='VBx'/><category term='Oracle Public Cloud'/><category term='T4'/><category term='Quadrant'/><category term='Web Forms'/><category term='LINQ to Outlook'/><category term='PHR'/><category term='Windows Azure Storage Analytics'/><category term='SSMA for Access v4.2'/><category term='OGDI'/><category term='AWS Storage Gateway'/><category term='Security Development Lifecycle'/><category term='XML Schema'/><category term='Lang.NET 2006'/><category term='ORDER BY'/><category term='.NET 3.5'/><category term='Virtual Server 2005 R2'/><category term='SQL Azure Federation'/><category term='Dynamics AX code-named &quot;6&quot;'/><category term='Amazon ElastiCache'/><category term='Data Mining'/><category term='GraphDB'/><category term='Dell Computer'/><category term='Blob Storage Services'/><category term='Azure AppFabric SDK'/><category term='Writely Beta'/><category term='Amazon DynamoDB'/><category term='NuGet'/><category term='Windows Phone 7.5 Mango'/><category term='Microsoft Access 2010'/><category term='Sync Framework'/><category term='Live Framework SDK'/><category term='Expression Trees'/><category term='NHibernate'/><category term='Microsoft Management Summit 2011'/><category term='Windows Azure Marketplace'/><category term='HITECH'/><category term='Entity Framework'/><category term='Text Template Transformation Toolkit'/><category term='Surfing'/><category term='Windows Azure AppFabric Applications'/><category term='Quadrant Entity Editor'/><category term='LINQ to JSON'/><category term='LINQ to Amazon'/><category term='Huagati Systems'/><category term='ecto'/><category term='SimpleDB'/><category term='Starterbase'/><category term='Microsoft Convergence 2010'/><category term='Blog Editors'/><category term='Dynamic ADO.NET'/><category term='Tech Ed 2006'/><category term='Access 2007'/><category term='PowerShell'/><category term='SAS 70'/><category term='Virtual PC 2007'/><category term='SQL Server 2008 R2 Management Studio'/><category term='SDL'/><category term='MOAX 2007'/><category term='Framework'/><category term='Persistence Instance'/><category term='MashSSL'/><category term='Windows Azure CDN'/><category term='Ruby on Rails'/><category term='Virtualization'/><category term='Personal Health Records'/><category term='Hummer Winblad'/><category term='LINQExtender'/><category term='Wndows Live Mesh'/><category term='SQL Azure Data Sync'/><category term='Dynamics CRM'/><category term='Informix'/><category term='ManagedEsent'/><category term='Formbuilder'/><category term='Chrome OS'/><category term='WPC 2011'/><category term='SQL Azure Spatial Features'/><category term='Known Bugs'/><category term='Windows Server 8'/><category term='SQL Server Data Services'/><category term='Project &quot;Apollo&quot;'/><category term='ClearDB'/><category term='PHP'/><category term='Data Explorer'/><category term='Vordel Cloud Broker'/><category term='SkyBox'/><category term='WPC 2010'/><category term='BigTable'/><category term='VistaDB'/><category term='Firefox 4 Beta'/><category term='WPF'/><category term='Mocking Frameworks'/><category term='Silverlight'/><category term='Database Mail'/><category term='Entity Framework v2'/><category term='Amazon'/><category term='SQL Compact v4.0'/><category term='TOP (100) PERCENT'/><category term='WF'/><category term='LinqDataSource'/><category term='Amazon EC2'/><category term='LINQ to NHibernate'/><category term='Grubby Clark'/><category term='LINQ to CSV'/><category term='Extension Methods'/><category term='Roger Jennings&apos; Access Blog'/><category term='Naming Conventions'/><category term='Mono'/><category term='vSphere'/><category term='LINQ to SQL'/><category term='LINQ to TerraServer'/><category term='Access Data Projects'/><category term='Sample Code'/><category term='HealthVault'/><category term='Real-Time Search'/><category term='Dreamforce'/><category term='Sun Microsystems'/><category term='SQL Server CE'/><category term='TechEd Europe 2010'/><category term='XML'/><category term='Entity Data Model Designer'/><category term='SQL Server 2005 Express SP2'/><category term='Array Initializers'/><category term='Google Analytics'/><category term='Geneva Framework'/><category term='Electronic Medial Record'/><category term='Model-View-Controller'/><category term='LINQ to Firebird'/><category term='SB1386'/><category term='NCommon'/><category term='SkyDrive'/><category term='SQL Server Compact Edition'/><category term='Twitter'/><category term='Visual Basic 9'/><category term='SSMA'/><category term='Force.com'/><category term='SQL Server Denali'/><category term='SCOPE'/><category term='Spec#'/><category term='vCloud Director'/><category term='WCF Data Services'/><category term='Quaere'/><category term='Entity Framework v4.2'/><category term='Democratizing the Cloud'/><category term='Visual Studio 2008 Service Pack 1'/><category term='Front Runner'/><category term='LINQ to XSD'/><category term='HP Cloud Services'/><category term='Collection Initializers'/><category term='OAuth WRAP'/><category term='EF Extensions'/><category term='Project &quot;Austin&quot;'/><category term='MGraph'/><category term='Windows Azure'/><category term='Amazon Elastic Beanstock'/><category term='Entity Framework v4.3'/><category term='Microsoft Office'/><category term='DataMarket'/><category term='Table Storage Services'/><category term='PASS Summit 2011'/><category term='InfoJet'/><category term='Amazon SQS'/><category term='Microsoft Velocity'/><category term='Terremark'/><category term='JET'/><category term='Atlas'/><category term='Java'/><category term='Azure Data Services'/><category term='Blinq'/><category term='NHibernate Shards'/><category term='Entity Framework v4.1'/><category term='Test Driven Design'/><category term='Cloud Computing Futures (CCF)'/><category term='WCF'/><category term='LINQ 2.0'/><category term='Test Harnesses'/><category term='Server Explorer'/><category term='Microsoft Access'/><category term='JotForm'/><category term='Queries'/><category term='PBwiki'/><category term='ISO 27001'/><category term='Amazon Connect'/><category term='LINQ to AD'/><category term='Entity Framework SP1 Beta'/><category term='Windows AppFabric'/><category term='Ocean Beach'/><category term='Azure Accelerator for Web Roles'/><category term='Clustrix'/><category term='Performance'/><category term='TechEd Australia 2010'/><category term='da Vinci Toolset'/><category term='PowerPivot'/><category term='Cisco'/><category term='Azure Drive'/><category term='Cloudera'/><category term='LINQ to Streams'/><category term='Personally Identifiable Information'/><category term='Project &quot;Dallas&quot;'/><category term='DB2 9 Express-C'/><category term='LINQ to GAC'/><category term='Hailstorm'/><category term='IPOCO'/><category term='OSCON'/><category term='ESENT'/><category term='System Center App Controller'/><category term='Entity Data Platform'/><category term='AppFabric Applications'/><category term='FISMA'/><category term='Visual Studio 2011 Developer Preview'/><category term='Virtual Machines'/><category term='Julie Lerman'/><category term='Sentiment Analysis'/><category term='PopFly'/><category term='Forms'/><category term='SubSonic Makai'/><category term='SQL Server Denali CTP'/><category term='MSchema'/><category term='SQL Server Mobile'/><category term='Workflow Foundation'/><category term='IBM'/><category term='Data Services'/><category term='PinPoint'/><category term='IBM Smart Cloud'/><category term='SQL Server 2005'/><category term='Hybrid Clouds'/><category term='Orcas March 2007 CTP'/><category term='HPC'/><category term='Dynamic Language Runtime'/><category term='Dynamics NAV'/><category term='SyncLINQ'/><category term='Zend'/><category term='DataDude'/><category term='SqlMethods'/><category term='IDC'/><category term='VSM'/><category term='Virtual Networking'/><category term='LINQ to MSI'/><category term='Michael Arrington'/><category term='LINQ to Expressions'/><category term='Amazon Route 53'/><category term='Dependency Injection/Inversion'/><category term='Microsoft Cloud Essentials Pack'/><category term='VMware'/><category term='Orchard CRM'/><category term='Azure Diagnostics'/><category term='WPC2010'/><category term='Astoria'/><category term='IndexedDB'/><category term='Fawcette'/><category term='Amazon GPU Clusters'/><category term='WAPA'/><category term='Puppet'/><category term='EntityDataSource'/><category term='Project &quot;Hawaii&quot;'/><category term='Windows Azure Storage'/><category term='LINQ to Anything'/><category term='MOSS 2007'/><category term='BPOS'/><category term='OAuth'/><category term='NuPack'/><category term='MapReduce'/><category term='ActiveRecord'/><category term='MLinq'/><category term='Open Data Center Alliance'/><category term='Deep Zoom'/><category term='Windows Azure Platform Training Kit'/><category term='Live Services'/><category term='ADO.NET 4.0'/><category term='LINQ to Stored XML'/><category term='Open Government Data Initiative'/><category term='Node.js'/><category term='XQuery'/><category term='Hortonworks'/><category term='System Center Orchestrator'/><category term='ServiceBus'/><category term='Anders Hejlsberg'/><category term='SQL Azure Services'/><category term='JSON'/><category term='Global Foundation Services'/><category term='VS LightSwitch'/><category term='C# Express'/><category term='LINQ to HPC'/><category term='Amazon SimpleDB'/><category term='Opalis'/><category term='Jasper'/><category term='SQL Server 2008'/><category term='Cloud Computing'/><category term='Excel PowerPivot'/><category term='Windows Hyper-V Server 2008 R2'/><category term='iCloud'/><category term='Windows Experience Index'/><category term='NetDataContractSerializer'/><category term='TerraServer'/><category term='Tivoli'/><category term='SSCE'/><category term='SkyMarket'/><category term='OPath'/><category term='RavenDB'/><category term='RDO'/><category term='EntityData Platform'/><category term='Tesla'/><category term='Load Testing'/><category term='Social Analytics'/><category term='TechEd North America 2011'/><category term='Entity Framework SP1'/><category term='Katmai'/><category term='3Tera'/><category term='Specification Pattern'/><category term='GDrive'/><category term='LevelDB'/><category term='Windows Azure AppFabric SDK'/><category term='Wetpaint'/><category term='Cerebrata'/><category term='BCS'/><category term='Data Entry'/><category term='TechCrunch'/><category term='Web Developer Express'/><category term='Lambdas'/><category term='Project &quot;Concero&quot;'/><category term='EDM Designer'/><category term='BizTalk'/><category term='Windows Azure Connect'/><category term='Eucalyptus'/><category term='VS 2010'/><category term='AtomPub'/><category term='Fawcette Technical Publications'/><category term='Windows Azure Security'/><category term='Entity Framework Beta 3'/><category term='Sharding'/><category term='BUILD Conference'/><category term='DabbleDB'/><category term='LINQ to SharePoint'/><category term='MSDN'/><category term='PCI-DSS'/><category term='RSS'/><category term='Amalga'/><category term='Data Centers'/><category term='LINQ to SSDS'/><category term='Spotlight on Azure (Quest)'/><category term='Codename &quot;Daytona&quot;'/><category term='Microsoft Platform Ready'/><category term='LLBLGen Pro'/><category term='LINQ to DataReader'/><category term='SkyLine'/><category term='LINQ to JavaScript'/><category term='Amazon CCI'/><category term='MySQL'/><category term='XSLT'/><category term='Wufoo'/><category term='Geneva Server'/><category term='Web Services'/><category term='Dot Cloud'/><category term='LINQ to WMI'/><category term='Entity Framework August 2007 CTP'/><category term='VB Express'/><category term='Sync Designer'/><category term='EDM'/><category term='Identity Framework'/><category term='.NET Framework'/><category term='Refactoring'/><category term='MIX10'/><category term='VB 9'/><category term='William Finnegan'/><category term='Worldwide Partner Conference 2011'/><category term='HIPAA'/><category term='O/RM Persistence Ignorance'/><category term='Orcas June 2007 CTP'/><category term='CLINQ'/><category term='OOXML'/><category term='Codename &quot;Juneau&quot;'/><category term='LINQ to Excel'/><category term='App Harbor'/><category term='Hierarchical Updates'/><category term='DataSift'/><category term='Remote Data Access'/><category term='LINQ to PHP'/><category term='Orcas Beta 1'/><category term='SOX'/><category term='Windows 8'/><category term='Windows Azure Billing'/><category term='Service Level Agreements'/><category term='SvcTraceViewer'/><category term='Azure Table Storage Services'/><category term='Intuit'/><category term='Reactive Framework'/><category term='Woldwide Partner Conference 2010'/><category term='SharePoint Online'/><category term='VS Express'/><category term='JotSpot'/><category term='SQL Azure Data Services'/><category term='Open Data Protocol'/><category term='Windows DNA'/><category term='VoltDB'/><category term='Erik Meijer'/><category term='Azure'/><category term='Visual Studio 2010'/><category term='Ajax'/><category term='Amazon CloudFront'/><category term='Orcas Beta 2'/><category term='LINQ Extensions'/><category term='SQL Azure Federations'/><category term='Lexical Closures'/><category term='Task Parallel Library'/><category term='SugarCRM'/><category term='Federated Identities'/><category term='LINQ to Esent'/><category term='Lucene.NET'/><category term='AppFabric Labs'/><category term='SQL Server Migration Assistant'/><category term='Entity Framework June 2007 CTP'/><category term='Windows 7'/><category term='1105 Media'/><category term='Microsoft Partner Network'/><category term='ObjectSpaces'/><category term='Windows Azure App Fabric Labs'/><category term='Wikia'/><category term='REST'/><category term='IBM Pulse 2009'/><category term='LINQ to Flickr'/><category term='Hibernate Shards'/><category term='Common Criteria'/><category term='.NET Services'/><category term='SSDS'/><category term='SQL Server ODBC Driver for Unix'/><category term='.NET 3.5 SP1'/><category term='LinqPad'/><category term='Windows Azure Platform Live Services'/><category term='IaaS'/><category term='Wyacracker'/><category term='StorageClient Library'/><category term='XLinq'/><category term='Office Accounting Express 2007'/><category term='Fujitsu'/><category term='Entity Framework Beta 2'/><category term='Patterns'/><category term='SQL Express'/><category term='Amazon Simple Email Service'/><category term='Uptime Reports'/><category term='i4o'/><category term='Sawzall'/><category term='Social Bookmarks'/><category term='Azure Compute Services'/><category term='Web Platform Installer 2.0'/><category term='Visual Studio 2011'/><title type='text'>OakLeaf Systems</title><subtitle type='html'>OakLeaf Systems is a Northern California software consulting organization specializing in developing and writing about Windows Azure, SQL Azure, SQL Azure Data Sync, SQL Azure Federations, Windows Azure Platform Appliance (WAPA), Windows Phone 7, LINQ, ADO.NET Entity Framework, OData and WCF Data Services, Microsoft Synchronization Framework, SQL Server 2005+, SQL Server CE, .NET database, and XML Web services projects. TIP: Click the latest item's title below to speed loading.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oakleafblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://oakleafblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default?start-index=101&amp;max-results=100'/><author><name>Roger Jennings (--rj)</name><uri>http://www.blogger.com/profile/01700526164060680385</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0GeAX5t9PtI/TocwxoAK69I/AAAAAAAAQos/p5d6F13mkiw/s220/OakLeafLogoMVP100px.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1344</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11646261.post-1143930505878465291</id><published>2012-01-31T17:11:00.000-08:00</published><updated>2012-02-01T09:08:08.963-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7.5 Mango'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure AppFabric'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure Federations'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop on Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure Data Migration'/><category scheme='http://www.blogger.com/atom/ns#' term='Codename &quot;Cloud Numerics&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='Codename &quot;Social Analytics&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache Hadoop on Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Marketplace DataMarket'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Codename &quot;Data Explorer&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='OData'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Data Protocol'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache Hadoop'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Windows Azure and Cloud Computing Posts for 1/30/2012+</title><content type='html'>&lt;p&gt;   &lt;table border="0" cellspacing="0" cellpadding="0" width="640"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="320"&gt;A compendium of Windows Azure, Service Bus, EAI &amp;amp; EDI Access Control, Connect, SQL Azure Database, and other cloud-computing articles. &lt;/td&gt;          &lt;td valign="top" width="320"&gt;&lt;img title="image222" border="0" alt="image222" align="right" src="http://lh5.ggpht.com/-OsoKl-OJ6tQ/TgtZhIThImI/AAAAAAAAMWc/azK-WT3s8xY/image2222.png?imgmax=800" width="291" height="47" /&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="image433" border="0" alt="image433" src="http://lh3.ggpht.com/-wfwZuoYbLys/TgtZhzIkKKI/AAAAAAAAMWg/XcCB0z8djPs/image4333.png?imgmax=800" width="640" height="270" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="Top"&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/a&gt; This post is updated daily or more frequently, depending on the availability of new articles in the following sections:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="#BTQ"&gt;Windows Azure Blob, Drive, Table, Queue and Hadoop Services&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#SDS"&gt;SQL Azure Database, Federations and Reporting&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#OData"&gt;Marketplace DataMarket, Social Analytics and OData &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="#NET"&gt;Windows Azure Access Control, Service Bus, and Workflow&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#WAVN"&gt;Windows Azure VM Role, Virtual Network, Connect, RDP and CDN&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Live"&gt;Live Windows Azure Apps, APIs, Tools and Test Harnesses&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Light"&gt;Visual Studio LightSwitch and Entity Framework v4+&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Infra"&gt;Windows Azure Infrastructure and DevOps&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#WAPA"&gt;Windows Azure Platform Appliance (WAPA), Hyper-V and Private/Hybrid Clouds&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Security"&gt;Cloud Security and Governance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Events"&gt;Cloud Computing Events&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Other"&gt;Other Cloud Computing Platforms and Services&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;hr /&gt;  &lt;h4&gt;&lt;a name="BTQ"&gt;Azure Blob, Drive, Table, Queue and Hadoop Services&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Added TeraSort and TeraValidate jobs on 1/30 and 1/31/2012 to &lt;strong&gt;my&lt;/strong&gt; (@&lt;a href="http://twitter.com/rogerjenn"&gt;rogerjenn&lt;/a&gt;) &lt;a href="http://oakleafblog.blogspot.com/2012/01/introducing-apache-hadoop-services-for.html"&gt;Introducing Apache Hadoop Services for Windows Azure&lt;/a&gt; post. From the preface:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-MPkzJ_-tDVQ/TyiRZlgZD0I/AAAAAAAAaUA/9EE9KL3lf2o/s1600-h/image%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-Wwecp3_Tp4U/TyiRZ1qO98I/AAAAAAAAaUI/cSYO_G5rwLg/image_thumb%25255B2%25255D.png?imgmax=800" width="63" height="66" /&gt;&lt;/a&gt;The &lt;strong&gt;SQL Server Team&lt;/strong&gt; (@&lt;a href="http://twitter.com/SQLServer"&gt;SQLServer&lt;/a&gt;) announced &lt;a href="https://www.hadooponazure.com/"&gt;Apache Hadoop Services for Windows Azure&lt;/a&gt;, a.k.a. &lt;em&gt;Apache Hadoop on Windows Azure&lt;/em&gt; or &lt;em&gt;Hadooop on Azure&lt;/em&gt;, at the Profesional Association for SQL Server (PASS) Summit in October 2011.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;a href="http://lh3.ggpht.com/-3qh5fqi7xKQ/TyiRaPY6GsI/AAAAAAAAaUQ/GrNFWK6xy6w/s1600-h/image_thumb3_thumb%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh3.ggpht.com/-hgGTLM5mQPM/TyiRaYRtK1I/AAAAAAAAaUY/SwXb-k6vlkc/image_thumb3_thumb_thumb.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;Update&lt;/strong&gt; 1/31/2011: Added steps 15 and 16 with Job History and Cluster Management for the TeraSort job.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-Rgt_hHcsXjw/TyiRau9g8oI/AAAAAAAAaUg/cpXYcMXdoWE/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-_T3WzhSUS1g/TyiRaz8_ThI/AAAAAAAAaUo/BjvbCEkz69o/image_thumb%25255B1%25255D.png?imgmax=800" width="65" height="59" /&gt;&lt;/a&gt;&lt;strong&gt;Update&lt;/strong&gt; 1/30/2011: Added TeraSort job, steps 10 through 14, and TeraValidate job, steps 17 through 19. Waiting for response regarding interpretation of TeraValidate results.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Introduction &lt;/li&gt;      &lt;li&gt;Tutorial: Running the 10GB GraySort Sample’s TeraGen Job &lt;/li&gt;      &lt;li&gt;Tutorial: Running the 10GB GraySort Sample’s TeraSort Job &lt;/li&gt;      &lt;li&gt;Tutorial: Running the 10GB GraySort Sample’s TeraValidate Job &lt;/li&gt;      &lt;li&gt;Apache Hadoop on Windows Azure Resources &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;    &lt;hr /&gt;    &lt;p&gt;&lt;strong&gt;Denny Lee&lt;/strong&gt; (@&lt;a href="http://twitter.com/dennylee"&gt;dennylee&lt;/a&gt;) asked &lt;a href="http://dennyglee.com/2012/01/31/moving-data-to-compute-or-compute-to-data-that-is-the-big-data-question/"&gt;Moving data to compute or compute to data? That is the Big Data question&lt;/a&gt; in a 1/31/2012 post:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-ZuGgI-DANL0/TyiRbYityQI/AAAAAAAAaUw/v7pmAvNuqWk/s1600-h/image%25255B64%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-lfHVqQ850kQ/TyiRblTKknI/AAAAAAAAaU4/LZjf0g_QmGo/image_thumb%25255B23%25255D.png?imgmax=800" width="58" height="66" /&gt;&lt;/a&gt;Dorky attempts at geek Shakespere aside; as the volume, complexity, and variability of your data systems increase in … entropy …, this becomes a fundamental question in whether one scales up or scale out their data problem.&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-SYdLxF1vMF0/TyiRcJ8Pj-I/AAAAAAAAaVA/AXcr4XaUVec/s1600-h/image%25255B61%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-SS-ybhkjt9c/TyiRcQVfyJI/AAAAAAAAaVI/fiV2WzA0lRM/image_thumb%25255B22%25255D.png?imgmax=800" width="63" height="66" /&gt;&lt;/a&gt;Apologies for the nerdy chemistry references in advance – which starts with this picture of Dr. Arthur Grosser [at right] (more later)&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;As noted in the previous post &lt;a href="http://wp.me/pHDEa-dM"&gt;Scale Up or Scale Out your Data Problems? A Space Analogy&lt;/a&gt;, the decision to scaling up or scaling out your data problem is a key facet in your Big Data problem. But just as important as the ability to distribute the data across commoditized hardware, another key facet is the &lt;strong&gt;movement of data&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-guK3O3Io8pE/TyiRcqshT_I/AAAAAAAAaVQ/LC490KHaMsk/s1600-h/image%25255B68%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-dyBS5R1L3BI/TyiRczA0_RI/AAAAAAAAaVY/x721de-dFBw/image_thumb%25255B24%25255D.png?imgmax=800" width="65" height="59" /&gt;&lt;/a&gt;Latencies (i.e. slower performance) are introduced when you need to move data from one location to another. To solve this problem within the data world, you can solve this by making it easier to move the data faster (e.g. compression, delta transfer, faster connectivity, etc.) or you design a system that reduces the need to move the data in the first place (i.e. moving data to compute or compute to data).&lt;/p&gt;    &lt;h5&gt;Scaling Up the Problem / Moving Data to Compute&lt;/h5&gt;    &lt;p&gt;To help describe the problem, the diagram below is a representation of a scale up traditional RDBMS. The silver database boxes on the left represent the database servers (each with blue platters representing local disks), the box with 9 blue platters represents a disk array (e.g. SAN, DAS, etc.), the blue arrows represent fiber channel connections (between the server and disk array), and the green arrows represent the network connectivity.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image18.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb18.png?w=412&amp;amp;h=298" width="412" height="298" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;In an optimized scale up RDBMS, we often will setup DAS or SANs to quickly transfer data from the disk array to the RDBMS server or compute node (often allocating the local disk for the compute node to hold temp/backup/cache files). This scenario works great under the specific scenario that you can &lt;strong&gt;ensure low latencies&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image19.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb19.png?w=406&amp;amp;h=289" width="406" height="289" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;And this is where things can get complicated, because if you were to lose disks on the array and/or fiber channel connectivity to the disk array – the RDBMS would go offline. But as described in the above diagram, perhaps you setup active clustering so the secondary RDBMS can take over.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image20.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb20.png?w=406&amp;amp;h=295" width="406" height="295" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Yet, if you were to lose network connectivity (e.g. the secondary RDBMS is not aware the primary is offline) or lose fiber channel connectivity, you would also lose the secondary.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;The Importance of ACID&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;It is important to note that many RDBMS systems have features or designs that work around these problems. But to ensure &lt;em&gt;availability&lt;/em&gt; and &lt;em&gt;redundancy&lt;/em&gt;, if often requires more expensive hardware to work around the problematic network and disk failure points.&lt;/p&gt;    &lt;p&gt;As well, this is not to say that RDBMS are based design – they are designed with &lt;strong&gt;ACID&lt;/strong&gt; in mind – atomicity, consistency, isolation, and durability – to guarantee the reliability and robustness of database transactions (for more info, check out the Wikipedia entry: &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;ACID&lt;/a&gt;).&lt;/p&gt;    &lt;h5&gt;Scaling Out the Problem / Moving Compute to Data&lt;/h5&gt;    &lt;p&gt;In a scale out or distributed solution, the idea is to have many commodity servers; they are many points of failure but there are also many paths for success.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image21.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb21.png?w=469&amp;amp;h=255" width="469" height="255" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;a href="http://lh5.ggpht.com/-ZCkfNJnDNuY/TyiRdH5Y_pI/AAAAAAAAaVg/E3VLpA75v5E/s1600-h/image_thumb3_thumb%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh4.ggpht.com/-nRtqwqss31o/TyiRdYNCkcI/AAAAAAAAaVo/OhaAISXkngI/image_thumb3_thumb_thumb%25255B1%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;&lt;/strong&gt;Key to a distributed system is that as data comes in (the blue file icon on the right represent data such as web logs), the data is distributed and replicated in chunks to many nodes within the cluster. In the case of Hadoop, files are broken into 64K chunks and each of these chunks are placed into three different locations (if you set the replication factor to 3).&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image22.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb22.png?w=474&amp;amp;h=251" width="474" height="251" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;While you are using more disk space to replicate the data, now that you have placed the data into the system, you have ensured &lt;em&gt;redundancy&lt;/em&gt; by replicating the data within it.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image23.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb23.png?w=474&amp;amp;h=247" width="474" height="247" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;What is great about these types of distributed systems, they are designed right from the beginning to handle latency issues whether they be disk or network connectivity problems to out right losing a node. In the above diagram, a user is requesting data, but there is a loss to some disks and some network connections.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image24.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb24.png?w=476&amp;amp;h=250" width="476" height="250" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Nevertheless, there are other nodes that do have network connectivity and the data has been replicated so it is available. Systems that are designed to scale out and distribute like Hadoop can ensure &lt;em&gt;availability&lt;/em&gt; of the data and will complete the query just as long as the data exists (it may take longer if nodes are lost, but the query will be completed).&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;The importance of BASE&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;By using many commodity boxes, you distribute and replicate your data to multiple systems. But as there are many moving parts, distributed systems like these cannot ensure the reliability and robustness of database transactions. Instead, they fall under the domain of &lt;strong&gt;eventual consistency&lt;/strong&gt; where over a period of time (i.e. eventually) the data within the entire system will be consistent (e.g. all data modifications will be replicated throughout the cluster). This concept is also known as BASE (as opposed to ACID) – Basically Available, Soft State, Eventually Consistent. For more information, check out the Wikipedia reference: &lt;a href="http://en.wikipedia.org/wiki/Eventual_consistency"&gt;Eventual Consistency&lt;/a&gt;.&lt;/p&gt;    &lt;h5&gt;Discussion&lt;/h5&gt;    &lt;p&gt;Similar to the post &lt;a href="http://wp.me/pHDEa-dM"&gt;Scale Up or Scale Out your Data Problems? A Space Analogy&lt;/a&gt;, choosing whether ACID or BASE works for you is not a matter of which one to use – but which one to use when. For example, as noted in the post &lt;a href="http://blogs.msdn.com/b/sqlcat/archive/2011/11/15/what-s-so-big-about-big-data.aspx"&gt;What’s so BIG about “Big Data”?&lt;/a&gt;, the Yahoo! Analysis Services cube is &lt;strong&gt;24 TB&lt;/strong&gt; (certainly a case of moving data to compute with my obsession on random IO with SSAS) and the source of this cube is a &lt;strong&gt;2PB&lt;/strong&gt; of data from a huge Hadoop cluster (moving compute to data).&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/yahoo-hadoop-to-cube.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Yahoo Hadoop to Cube" border="0" alt="Yahoo Hadoop to Cube" src="http://dennyglee.files.wordpress.com/2012/01/yahoo-hadoop-to-cube_thumb.png?w=431&amp;amp;h=195" width="431" height="195" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Each one has its own set of issues – scaling out increases the complexity of maintaining so many nodes, scaling up becomes more expensive to ensure availability and reliability, etc. It will be important to understand the pros/cons of each type – often it will be a combination of these two. Another great example can be seen in Dave Mariani (@mariani)’s post: &lt;a href="http://corp.klout.com/blog/2011/11/big-data-bigger-brains/"&gt;Big Data, Bigger Brains&lt;/a&gt; at Klout’s blog.&lt;/p&gt;    &lt;blockquote&gt;     &lt;p&gt;ACID and BASE each have their own set of problems, the good news is that mixing them together often neutralizes the problems.&lt;/p&gt;   &lt;/blockquote&gt;    &lt;p&gt;—&lt;/p&gt;    &lt;h5&gt;Okay, what’s with the picture of Dr. Arthur Grosser?&lt;/h5&gt;    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/dork.jpg"&gt;&lt;img style="display: inline; float: right" title="dork" border="0" alt="dork" align="right" src="http://dennyglee.files.wordpress.com/2012/01/dork_thumb.jpg?w=114&amp;amp;h=130" width="114" height="130" /&gt;&lt;/a&gt;       &lt;br /&gt;Oh, Dr. Arthur Grosser is an actor whose filmography includes Assassin’s Creed II, Splinter Cell, and the 90s TV show Urban Angel. But more importantly – to me anyways – is that he was my &lt;strong&gt;chemistry&lt;/strong&gt; professor at McGill University. He was a great professor able to balance deep academic research and learning with making chemistry fun and entertaining. He also showed to me (and I think many other students) that dorky and nerdy could still be cool.&lt;/p&gt; &lt;/blockquote&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="SDS"&gt;SQL Azure Database, Federations and Reporting &lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;SQL Azure Labs Team&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/SQLAzureLabs"&gt;SQLAzureLabs&lt;/a&gt;) announced &lt;a href="http://www.microsoft.com/en-us/sqlazurelabs/labs/sqlazuresecurityservices.aspx"&gt;Microsoft Codename &amp;quot;SQL Azure Security Services&amp;quot;&lt;/a&gt; on 1/30/2012:&lt;/p&gt;  &lt;blockquote&gt;   &lt;h5&gt;Scan your databases for security vulnerabilities&lt;/h5&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-JpCI-34Gk5A/TyiRdjn9BJI/AAAAAAAAaVw/AFknYrNdPhk/s1600-h/image%25255B22%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-q8TcL4xoNKk/TyiRd0sN1-I/AAAAAAAAaV4/-zgASrw5TsI/image_thumb%25255B8%25255D.png?imgmax=800" width="65" height="61" /&gt;&lt;/a&gt;Microsoft Codename &amp;quot;SQL Azure Security Services&amp;quot; is an easy-to-use Web application that enables you to assess the security state of one or all of the databases on your SQL Azure server. The service scans databases for security vulnerabilities and provides you a report. You can use the recommendations and best practices provided in the report to improve the security state of your databases. The steps are simple:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;       &lt;p&gt;Provide your SQL Azure account credentials to the service.&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;Choose the target for the report: Display in your browser or send to Windows Azure Blob storage.&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;View the report and get details from supporting documentation.&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;Take the corrective steps recommended in the report to secure your data.&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;Provide feedback on the data protection services you want in SQL Azure.&lt;/p&gt;     &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="#Top"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/_GdO7DQgAn3w/TFxIT_td_pI/AAAAAAAADfQ/asbwuFou3jU/image%5B36%5D.png?imgmax=800" width="160" height="43" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;&amp;quot;SQL Azure Security Services&amp;quot; is an early prototype for solving the problem of securing your data in the cloud: no matter where it is, whatever the capacity and scale. Your feedback is very valuable. We look forward to hearing from you!&lt;/p&gt;    &lt;p&gt;You will need a Windows Azure and SQL Azure subscription to use the service. If you don’t have one, click &lt;strong&gt;&lt;a href="http://www.windowsazure.com/en-us/pricing/free-trial/"&gt;here to sign up for a free trial&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;    &lt;p&gt;Click &lt;strong&gt;&lt;a href="https://labs.web.sqlsecurity.azure.com/scanner.html"&gt;here&lt;/a&gt;&lt;/strong&gt; to get started with this lab. &lt;/p&gt; &lt;/blockquote&gt;    &lt;hr /&gt;    &lt;p&gt;The &lt;strong&gt;SQL Server Team&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/SQLServer"&gt;SQLServer&lt;/a&gt;) announced &lt;a href="http://blogs.technet.com/b/dataplatforminsider/archive/2012/01/30/microsoft-sql-server-migration-assistant-5-2-is-now-available.aspx"&gt;Microsoft SQL Server Migration Assistant 5.2 is Now Available&lt;/a&gt; in a 1/30/2012 post:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-qnZCt-0Rlkk/TyiReOzw6aI/AAAAAAAAaWA/GipR5CXkWeo/s1600-h/image%25255B47%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-0hG5yEud3EA/TyiReUIQ2KI/AAAAAAAAaWI/ZFUoH3s0JHw/image_thumb%25255B17%25255D.png?imgmax=800" width="60" height="66" /&gt;&lt;/a&gt;SQL Server Migration Assistant (SSMA) v5.2 is now available. SSMA simplifies database migration process from Oracle/Sybase/MySQL and Microsoft Access to SQL Server and SQL Azure. SSMA automates all aspects of migration including migration assessment analysis, schema and SQL statement conversion, data migration as well as migration testing to reduce cost and reduce risk of your database migration project. &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;The new version of SSMA - SSMA 5.2 provides the following major enhancements: &lt;/li&gt;      &lt;li&gt;Support conversion of Oracle %ROWTYPE parameters with NULL default &lt;/li&gt;      &lt;li&gt;Support conversion of Sybase’s Rollback Trigger &lt;/li&gt;      &lt;li&gt;Better user credential security to support Microsoft Access Linked Tables &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="#Top"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/_GdO7DQgAn3w/TFxIT_td_pI/AAAAAAAADfQ/asbwuFou3jU/image%5B36%5D.png?imgmax=800" width="160" height="43" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;b&gt;Reduce Cost and Risk of Competitive Database Migration        &lt;br /&gt;&lt;/b&gt;Does your customer have Oracle, Sybase, MySQL or Access databases that you like to migrate to SQL Server or SQL Azure? SQL Server Migration Assistant (SSMA) automates all aspects of migration including migration assessment analysis, schema and SQL statement conversion, data migration as well as migration testing. The tool provides the following functionalities:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;b&gt;&lt;i&gt;Database Migration Analyzer&lt;/i&gt;&lt;/b&gt;: Assess and report complexity of the source database for migration to SQL Server. The generated report include detailed information on the database schema, percentage of the schema objects that can be converted by the tool, and hours estimate for manually migrating those schema objects that cannot be converted automatically. The information can be used for your to decide and to plan for migration. Visit &lt;a href="http://blogs.msdn.com/b/ssma/archive/2011/02/05/analyzing-database.aspx"&gt;SSMA team site&lt;/a&gt; for video demonstration of this feature. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;&lt;i&gt;Schema Converter&lt;/i&gt;&lt;/b&gt;: Automate conversion of schema objects (including programming code inside package, procedure, function) into equivalent SQL Server objects and T-SQL dialect. The tool provides ability to customize the conversion from hundreds of project setting options according to your specific business requirements. A report will be generated at the end of conversion for any object statement not supported for automated conversion. You can drill down to each of the migration issues and obtain side-by-side comparison between the original source code and the converted source code as well as make necessary modification directly from SSMA user interface. Visit &lt;a href="http://blogs.msdn.com/b/ssma/archive/2011/02/05/converting-schema.aspx"&gt;SSMA team site&lt;/a&gt; for video demonstration of this feature. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;&lt;i&gt;Data Migrator&lt;/i&gt;&lt;/b&gt;: Migrate data from the source database to the SQL Server using the same conversion logic and type mapping specified in the project setting during schema conversion. Visit &lt;a href="http://blogs.msdn.com/b/ssma/archive/2011/02/05/migrating-data.aspx"&gt;SSMA team site&lt;/a&gt; for video demonstration of this feature. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;&lt;i&gt;Migration Tester&lt;/i&gt;&lt;/b&gt;: Facilitate unit testing of converted program in SQL Server. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;Simplify Migration to SQL Azure        &lt;br /&gt;&lt;/strong&gt;Customers can&lt;b&gt; &lt;/b&gt;simplify their move to the cloud with the SSMA. You can migrate from competitive database directly to SQL Azure. The tool reports possible migration issue to SQL Azure, convert schema, and migrate data to SQL Azure database. SSMA supports SQL Azure migration from Microsoft Access, MySQL, and Sybase. &lt;/p&gt;    &lt;p&gt;&lt;b&gt;Receive FREE technical support and migration resources.        &lt;br /&gt;&lt;/b&gt;Microsoft Customer Service and Support (CSS) provides free email technical support for SSMA. &lt;a href="http://www.microsoft.com/sqlserver/en/us/product-info/migration.aspx"&gt;SSMA product web site&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/ssma/"&gt;SSMA team blog site&lt;/a&gt; provides many resources to help customer to reduce cost and risk for database migration.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;b&gt;Download SQL Server Migration Assistant (SSMA) v.5.2        &lt;br /&gt;&lt;/b&gt;&lt;a href="http://go.microsoft.com/?linkid=9771004"&gt;Launch the download of the SSMA for Oracle.&lt;/a&gt;       &lt;br /&gt;&lt;a href="http://go.microsoft.com/?linkid=9771006"&gt;Launch the download of the SSMA for Sybase.&lt;/a&gt;       &lt;br /&gt;&lt;a href="http://go.microsoft.com/?linkid=9771005"&gt;Launch the download of the SSMA for MySQL.&lt;/a&gt;       &lt;br /&gt;&lt;a href="http://go.microsoft.com/?linkid=9771007"&gt;Launch the download of the SSMA for Access.&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;    &lt;hr /&gt;      &lt;p&gt;&lt;strong&gt;Cihan Biyikoglu&lt;/strong&gt; (@&lt;a href="http://twitter.com/cihangirb"&gt;cihangirb&lt;/a&gt;) posted a brief &lt;a href="http://blogs.msdn.com/b/cbiyikoglu/archive/2012/01/29/php-and-federations-sample-code-from-brain.aspx"&gt;PHP and Federations in SQL Azure - Sample Code from Brian&lt;/a&gt; article on 1/29/2012:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-hLoR-9rF6_M/TyiRe7UOerI/AAAAAAAAaWQ/oKjTMBVmsJw/s1600-h/image%25255B44%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-VfSWLhrDV-I/TyiRfGUAujI/AAAAAAAAaWY/sajRXUYLmes/image_thumb%25255B16%25255D.png?imgmax=800" width="60" height="66" /&gt;&lt;/a&gt;Brian has a ton[n]e of samples on PHP and Federations in this post right here... Another great one!&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/silverlining/archive/2012/01/18/using-sql-azure-federations-via-php.aspx"&gt;http://blogs.msdn.com/b/silverlining/archive/2012/01/18/using-sql-azure-federations-via-php.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;    &lt;hr /&gt;      &lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="OData"&gt;MarketPlace DataMarket, Social Analytics and OData &lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;Social Analytics Team&lt;/strong&gt; announced &lt;a href="http://blogs.msdn.com/b/microsoft_codename_social_analytics/archive/2012/01/30/what-s-new-announcing-a-update-to-the-microsoft-codename-social-analytics-lab.aspx"&gt;Enhanced Analytics and Sentiment Analysis Arrive in Social Analytics&lt;/a&gt; in a 1/31/2012 post to the Microsoft Codename “Social Analytics” blog:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-CkLooVDoojw/TyiRfTtiYcI/AAAAAAAAaWg/t-GTOtJYhXU/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-hKYa8FkEIuM/TyiRfmBNGpI/AAAAAAAAaWo/YfFSjm5DOZk/image_thumb%25255B3%25255D.png?imgmax=800" width="65" height="62" /&gt;&lt;/a&gt;We are proud to announce an update to the &lt;b&gt;Microsoft Codename “Social Analytics” Lab. &lt;/b&gt;This update builds on the services we announced in October by providing the following new capabilities:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Enhanced analytics in our API &lt;/li&gt;      &lt;li&gt;Sample usage of the enhanced analytics in the Engagement Client - 5 new analytic widgets &lt;/li&gt;      &lt;li&gt;Improved sentiment analysis for Tweets &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;1. Enhanced Analytics:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_GdO7DQgAn3w/TBPrBgBH0wI/AAAAAAAABUw/yiUVlsFgFgs/s1600-h/image%5B34%5D.png"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/_GdO7DQgAn3w/TBPrBwhBVOI/AAAAAAAABU0/pg4QP5rVwqw/image_thumb%5B20%5D.png?imgmax=800" width="120" height="35" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;Our existing API now provides richer analytics views of social data. This makes it easier to find top conversations, contributors, keywords and sources related to any filter with a simple ODATA query and returns conversations related to these calculations to your application.&lt;/p&gt;    &lt;p&gt;Here’s a sample* ODATA query returning the top 5 keywords found in a filter for the past 7 days:&lt;/p&gt;    &lt;p&gt;&lt;a href="https://api.datamarket.azure.com/Vancouver/VancouverBillGates/GetTopKeywords?TimeIntervalSize='day'&amp;amp;TimeIntervalCount=7&amp;amp;TimeIntervalEnd=&amp;amp;FilterId=4&amp;amp;ResultsLimitTo=5"&gt;https://api.datamarket.azure.com/Vancouver/VancouverBillGates/GetTopKeywords?TimeIntervalSize='day'&amp;amp;TimeIntervalCount=7&amp;amp;TimeIntervalEnd=&amp;amp;FilterId=4&amp;amp;ResultsLimitTo=5&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;You can start investigating the details of the API by going to &lt;a href="https://connect.microsoft.com/BusinessPlatform/Downloads/DownloadDetails.aspx?DownloadID=39340"&gt;this link&lt;/a&gt;. If you are new to Social Analytics, check out our API overview &lt;a href="https://connect.microsoft.com/BusinessPlatform/socialanalytics"&gt;here&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;* Note: You will need to use your existing credentials for the lab to use this sample code. (Look at the API section &lt;a href="https://connect.microsoft.com/BusinessPlatform/socialanalytics"&gt;here&lt;/a&gt; for details)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;2. New Analytics Widgets in the Engagement Client:&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;See the new enhanced analytics in use in our sample Silverlight UI – &lt;a href="https://connect.microsoft.com/BusinessPlatform/content/content.aspx?ContentID=27095"&gt;the Engagement Client&lt;/a&gt;. We built these 5 analytic widgets using the new analytic enhancements to our API. These widgets provide the following analytic views for any filter:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Top Conversations &lt;/li&gt;      &lt;li&gt;Top Contributors &lt;/li&gt;      &lt;li&gt;Top Keywords &lt;/li&gt;      &lt;li&gt;Volume &lt;/li&gt;      &lt;li&gt;Sources &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;Here's an illustration of the new analytics in the sample Silverlight client:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-93/5417.UIScreenBig_2800_Updated_2900_.jpg"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-93/5417.UIScreenBig_2800_Updated_2900_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;ol&gt;&lt;/ol&gt;    &lt;p&gt;&lt;strong&gt;3. Improved Sentiment Analysis for Tweets&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;In this release, we snuck in a little bonus! We updated the sentiment engine with minor enhancements to improve the analysis of sentiment in Tweets. &lt;/p&gt;    &lt;p&gt;That's what's new in this release! In a few short months, we've made major progress on this experimental cloud service. &lt;/p&gt;    &lt;p&gt;Now it's time for you to try the updated lab and let us know what you think. We're already working on the top feature request from our fall release - giving you the ability to define your own topics. We plan on making that functionality part of a future release.&lt;/p&gt;    &lt;p&gt;For those new to this Lab, please check out &lt;a href="http://blogs.msdn.com/b/microsoft_codename_social_analytics/archive/2011/10/25/announcing-microsoft-codename-quot-social-analytics-quot-lab.aspx"&gt;our initial blog post&lt;/a&gt; for an overview of&lt;strong&gt; Microsoft Codename &amp;quot;Social Analytics&amp;quot;&lt;/strong&gt;. Here are some additional links from that post for your convenience:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=230530&amp;amp;clcid=0x409"&gt;Get started today&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;Visit our &lt;a href="http://www.microsoft.com/en-us/sqlazurelabs/labs/socialanalytics.aspx"&gt;official homepage&lt;/a&gt; and &lt;a href="https://connect.microsoft.com/BusinessPlatform/socialanalytics"&gt;Connect Site&lt;/a&gt; for more information&lt;/li&gt;      &lt;li&gt;Connect with us in our &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/category/windowsazureplatformctp"&gt;forums&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;Stay tuned to our &lt;a href="http://blogs.msdn.com/b/microsoft_codename_social_analytics/"&gt;product blog&lt;/a&gt; for future updates&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; 2/1/2012: The &lt;strong&gt;Social Analytics Team&lt;/strong&gt; promised in a &lt;a href="http://blogs.msdn.com/b/microsoft_codename_social_analytics/rsscomments.aspx?WeblogPostID=10261787"&gt;comment&lt;/a&gt; “more details for the upgrade to the sentiment engine, as well as a description of the technology/algorithm(s) behind” its upgrade to the Microsoft Research sentiment code in the next post to the team’s blog.&lt;/p&gt;  &lt;p&gt;Here’s my &lt;a href="http://pinpoint.microsoft.com/en-us/applications/microsoft-codename-%e2%80%9csocial-analytics%e2%80%9d-winforms-client-sample-12884930059"&gt;Microsoft Codename “Social Analytics” Windows Form Client&lt;/a&gt; about halfway through a test of 200,000 of the latest Tweets, posts, and other items:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-ZIwkEMH_2qg/TyiRge4sU7I/AAAAAAAAaWw/8Xy6s9QtRso/s1600-h/image%25255B13%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-LJ1e9SPAlv8/TyiRhp3JwTI/AAAAAAAAaW4/7kBtlPpf-lo/image_thumb%25255B5%25255D.png?imgmax=800" width="640" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;hr /&gt;    &lt;p&gt;&lt;strong&gt;Miguel Llopis&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/mllopis"&gt;mllopis&lt;/a&gt;) of the Microsoft Codename “Data Explorer” team posted &lt;a href="http://blogs.msdn.com/b/dataexplorer/archive/2012/01/30/crunching-big-data-with-data-explorer-and-social-analytics.aspx"&gt;Crunching Big Data &lt;/a&gt;with “Data Explorer” and “Social Analytics” on 1/30/2012:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-A73aY9w-qL8/TyiRh_6XcsI/AAAAAAAAaXA/v5iMAZNfBD8/s1600-h/image%25255B109%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-Bhtp2h0U-DI/TyiRiPqpj9I/AAAAAAAAaXI/Oy1eP6pQ5jA/image_thumb%25255B39%25255D.png?imgmax=800" width="49" height="66" /&gt;&lt;/a&gt;Last week an interesting article was published in &lt;a href="http://searchcloudcomputing.techtarget.com/"&gt;SearchCloudComputing&lt;/a&gt; which shows how to consume feeds from the &lt;a href="http://www.microsoft.com/en-us/sqlazurelabs/labs/socialanalytics.aspx"&gt;“Social Analytics” Lab&lt;/a&gt; in “Data Explorer”, then perform some filter, transform and grouping operations on this data using Data Explorer’s intuitive UI and finally publish the resulting dataset as a snapshot so the contents at a given point in time can be accessed later on. You can take a look at the article following &lt;a href="http://searchcloudcomputing.techtarget.com/tip/Microsoft-cloud-service-lets-citizen-developers-crunch-big-data"&gt;this link&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;img border="0" alt="[22ContentItemsWithToneValueLookupColumnDesktop%255B4%255D.png]" src="http://lh6.ggpht.com/-rt58PG6Xv2Y/TvozYEHLSGI/AAAAAAAAXSg/lB8S3CCbY6I/s1600/22ContentItemsWithToneValueLookupColumnDesktop%25255B4%25255D.png" width="560" height="420" /&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-LG7W6tqVIb4/TyiUXMD1YAI/AAAAAAAAaeI/yw20ic4uYmA/s1600-h/image%25255B122%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-ghyNUFgsJvs/TyiUXTEa08I/AAAAAAAAaeQ/HZYBOkwojSY/image_thumb%25255B43%25255D.png?imgmax=800" width="65" height="64" /&gt;&lt;/a&gt;The author of this article, &lt;a href="http://searchcloudcomputing.techtarget.com/expert/Roger-Jennings-Contributor"&gt;Roger Jennings&lt;/a&gt;, has also published a few other blog posts about Data Explorer on &lt;a href="http://oakleafblog.blogspot.com/"&gt;his blog&lt;/a&gt;. We particularly recommend you to follow the &lt;a href="http://oakleafblog.blogspot.com/2011/12/mashup-big-data-with-microsoft-codename.html"&gt;&lt;strong&gt;“41-step illustrated tutorial on creating a mashup”&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-5FqVYKWslSo/TyiRine1EGI/AAAAAAAAaXQ/neTIgUNMYTk/s1600-h/image%25255B112%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-mcqM_jP6wfI/TyiRiyWnbdI/AAAAAAAAaXY/pj69BSYOO3k/image_thumb%25255B40%25255D.png?imgmax=800" width="63" height="66" /&gt;&lt;/a&gt;If you still haven’t done, you can &lt;a href="https://dataexplorer-signup.sqlazurelabs.com/"&gt;&lt;strong&gt;sign up to try Data Explorer cloud service today&lt;/strong&gt;&lt;/a&gt;!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Thanks for the kind words, Miguel.&lt;/p&gt;    &lt;hr /&gt;      &lt;p&gt;&lt;strong&gt;Glenn Gailey&lt;/strong&gt; (@&lt;a href="http://twitter.com/ggailey777"&gt;ggailey777&lt;/a&gt;) posted &lt;a href="http://blogs.msdn.com/b/writingdata_services/archive/2012/01/30/more-on-the-new-odata-t4-template-service-operations.aspx"&gt;More on the New OData T4 Template: Service Operations&lt;/a&gt; on 1/30/2012:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-zkqzrStE-f8/TyiRjM_lycI/AAAAAAAAaXg/E5h9k3K8MWk/s1600-h/image%25255B16%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-CNV8hxTyI_o/TyiRjfYQ9oI/AAAAAAAAaXo/8ZamY5M0cqc/image_thumb%25255B6%25255D.png?imgmax=800" width="57" height="66" /&gt;&lt;/a&gt;I’ve long missed support for calling service operations by using the proxy client code-generated by WCF Data Services, and I’ve described some workarounds in the post &lt;a href="http://blogs.msdn.com/b/writingdata_services/archive/2011/03/28/calling-service-operations-from-the-client.aspx"&gt;Calling Service Operations from the WCF Data Services Client&lt;/a&gt;. This is why I was excited to discover that the new T4 template, which I introduced in my previous post &lt;a href="http://blogs.msdn.com/b/writingdata_services/archive/2012/01/25/new-and-improved-t4-template-for-odata-client-and-local-database.aspx"&gt;New and Improved T4 Template for OData Client and Local Database&lt;/a&gt;, now supports calling service operations as a first class behavior.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_GdO7DQgAn3w/TBPrBgBH0wI/AAAAAAAABUw/yiUVlsFgFgs/s1600-h/image%5B34%5D.png"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/_GdO7DQgAn3w/TBPrBwhBVOI/AAAAAAAABU0/pg4QP5rVwqw/image_thumb%5B20%5D.png?imgmax=800" width="120" height="35" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;For example, the following T4-generated method on the NorthwindEntities context calls a GetOrdersByCity GET service operation:&lt;/p&gt;    &lt;blockquote&gt;     &lt;pre&gt;public global::System.Data.Services.Client.DataServiceQuery&amp;lt;Order&amp;gt; 
    GetOrdersByCity(global::System.String city)
{ 
    return this.CreateQuery&amp;lt;Order&amp;gt;(&amp;quot;GetOrdersByCity&amp;quot;)
        .AddQueryOption(&amp;quot;city&amp;quot; ,&amp;quot;'&amp;quot;+city+&amp;quot;'&amp;quot;);
}&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;And, here’s another generated method that returns a collection of strings:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;public  System.Collections.Generic.IEnumerable&amp;lt;string&amp;gt; GetCustomerNames()
{ 
    return (System.Collections.Generic.IEnumerable&amp;lt;string&amp;gt;)
        this.Execute&amp;lt;string&amp;gt;(new global::System.Uri(&amp;quot;GetCustomerNames&amp;quot;,
            global::System.UriKind.Relative),
            Microsoft.Data.OData.HttpMethod.Get,false);
}&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Note that these methods use essentially the same techniques described in &lt;a href="http://blogs.msdn.com/b/writingdata_services/archive/2011/03/28/calling-service-operations-from-the-client.aspx"&gt;Calling Service Operations from the WCF Data Services Client&lt;/a&gt;.&lt;/p&gt;

  &lt;h5&gt;Before Getting Started with the T4 Template&lt;/h5&gt;

  &lt;p&gt;Before we get started, I should point out that there is currently a bug ( which I reported) in line 868, which can be fixed by changing this line of code as follows:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;parameters=string.Concat(parameters,&amp;quot;global::System.&amp;quot; + GetNameFromFullName(p.Type.FullName()));&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;(You might also want to do a global replace of &amp;quot;refrence&amp;quot; with &amp;quot;reference&amp;quot;--if you care about such things.)&lt;/p&gt;

  &lt;p&gt;Also, remember that this T4 template requires the current &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27728"&gt;Microsoft WCF Data Services October 2011 CTP&lt;/a&gt; release for the upcoming OData release. To install this new T4 template into your project:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Make sure that you have NuGet installed. You can install it from here: &lt;a href="https://nuget.org/"&gt;https://nuget.org/&lt;/a&gt;. &lt;/li&gt;

    &lt;li&gt;If you haven’t already done so, use the Add Service Reference tool Visual Studio to add a reference to the OData service. 
      &lt;br /&gt;(The template needs the service.edmx file generated by the tool). &lt;/li&gt;

    &lt;li&gt;In your project, use the NuGet &lt;a href="http://docs.nuget.org/docs/start-here/using-the-package-manager-console"&gt;Package Manager Console&lt;/a&gt; to download and install the &lt;a href="http://aka.ms/odatat4"&gt;ODataT4-CS package&lt;/a&gt;: 

      &lt;br /&gt;PM&amp;gt; Install-Package ODataT4-CS &lt;/li&gt;

    &lt;li&gt;Open the Reference.tt template file and edit the line 868 to fix the bug described above. &lt;/li&gt;

    &lt;li&gt;In the Reference.tt template file, change the value of the MetadataFilepath property in the TransformContext constructor to the location of the .edmx file generated by the service reference and update the Namespace property to a namespace that doesn’t collide with the one generated by the service reference. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;Now let’s compare the ease of using the client proxy generated by this new T4 template against the examples from the topic &lt;a href="http://msdn.microsoft.com/en-us/library/hh230677.aspx"&gt;Calling Service Operations (WCF Data Services)&lt;/a&gt;.&lt;/p&gt;

  &lt;h5&gt;Calling a Service Operation that Returns a Collection of Entities&lt;/h5&gt;

  &lt;p&gt;For example, here’s the previously difficult to compose URI-based query to call the GetOrdersByCity operation:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;string queryString = string.Format(&amp;quot;GetOrdersByCity?city='{0}'&amp;quot;, city)
    + &amp;quot;&amp;amp;$orderby=ShippedDate desc&amp;quot;
    + &amp;quot;&amp;amp;$expand=Order_Details&amp;quot;;

var results = context.Execute&amp;lt;Order&amp;gt;(
    new Uri(queryString, UriKind.Relative));&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;With the new template, this becomes a much nicer, LINQ query:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;var results = from o in context.GetOrdersByCity(city)
                   .Expand(&amp;quot;Order_Details&amp;quot;)
              orderby o.ShippedDate descending
              select o;&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Because this service operation returns an IQueryable&amp;lt;T&amp;gt; collection of entities, it can be further composed against and you get support for all the nice LINQ operations. And, as you would expect with DataServiceQuery&amp;lt;T&amp;gt;, the request to the service operation is made when the result is assigned or enumerated.&lt;/p&gt;

  &lt;h5&gt;Calling a Service Operation that Returns a Single Entity&lt;/h5&gt;

  &lt;p&gt;The benefits of this new client support for service operations are even more evident when calling a service operation that returns a single entity, which used to look like this:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;string queryString = &amp;quot;GetNewestOrder&amp;quot;;
Order order = (context.Execute&amp;lt;Order&amp;gt;(
              new Uri(queryString, UriKind.Relative)))
              .FirstOrDefault();&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Which can now be simplified to this one clean line of code:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;Order order = context.GetNewestOrder();&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Note that in this case, the request is sent when the method is called.&lt;/p&gt;

  &lt;h5&gt;Calling a Service Operation by using POST&lt;/h5&gt;

  &lt;p&gt;It was a pet peeve of many folks that you couldn’t call a POST service operation from the client, even though it’s perfectly legal in OData. In this new version, you can now call &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.execute.aspx"&gt;DataServiceContext.Execute()&lt;/a&gt; and select the request type (GET or POST). This means that the new T4 template enables you to call POST service operations directly from methods:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;// Call a POST service operation that returns a collection of customer names.
IEnumerable&amp;lt;string&amp;gt; customerNames = context.GetCustomerNamesPost();&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;(Please don’t give me grief over having a POST operation named Get…it’s just for demo purposes.) As before, you can only &lt;a href="http://blogs.msdn.com/b/writingdata_services/archive/2011/07/05/uploading-data-to-a-service-operation.aspx"&gt;upload data by using parameters&lt;/a&gt;, which is still an OData requirement.&lt;/p&gt;

  &lt;h5&gt;The Remaining Examples&lt;/h5&gt;

  &lt;p&gt;Here’s the new versions of the remaining service operation examples (called synchronously) by using the new service operation methods on the client. In a way, they become almost trivial.&lt;/p&gt;

  &lt;h6&gt;Calling a Service Operation that Returns a Collection of Primitive Types&lt;/h6&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;var customerNames = context.GetCustomerNames();&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;h6&gt;Calling a Service Operation that Returns a Single Primitive Type&lt;/h6&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;int numOrders = context.CountOpenOrders();&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;h6&gt;Calling a Service Operation that Returns Void&lt;/h6&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;context.ReturnsNoData();&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;h5&gt;Calling a Service Operation Asynchronously&lt;/h5&gt;

  &lt;p&gt;OK, so it’s now super easy to synchronously call service operations using this new template-generated proxy client, but what about asynchronous calls? Well, there is a way to do this with the generated proxy, but it only works for service operations that return a collection of entities. In this case, it works because the service operation execution is represented as a &lt;a href="http://msdn.microsoft.com/en-us/library/cc646677.aspx"&gt;DataServiceQuery&amp;lt;T&amp;gt;&lt;/a&gt; instance, which has its own async execution methods. For this kind of service operation, you can make the execution work asynchronously, like this:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre&gt;public static void GetOrdersByCityAsync()
{
    // Define the service operation query parameter.
    string city = &amp;quot;London&amp;quot;;            

    // Create the DataServiceContext using the service URI.
    NorthwindEntities context = new NorthwindEntities(svcUri);

    // Define a query for orders based on calling GetOrdersByCity.
    var query = (from o in context.GetOrdersByCity(city)
                          .Expand(&amp;quot;Order_Details&amp;quot;)
                 orderby o.ShippedDate descending
                 select o) as DataServiceQuery&amp;lt;Order&amp;gt;;

     // Asynchronously execute the service operation that returns 
     // all orders for the specified city. 
     query.BeginExecute(OnAsyncExecutionComplete, query);
 }

private static void OnAsyncExecutionComplete(IAsyncResult result)
{
    NorthwindEntities context = new NorthwindEntities(svcUri);
    
    // Get the context back from the stored state.
    var query = result.AsyncState as DataServiceQuery&amp;lt;Order&amp;gt;;            
    
    try
    {
        // Complete the exection and write out the results.
        foreach (Order o in query.EndExecute(result))
        {
            Console.WriteLine(string.Format(&amp;quot;Order ID: {0}&amp;quot;, o.OrderID));

            foreach (Order_Detail item in o.Order_Details)
            {
                Console.WriteLine(String.Format(&amp;quot;\tItem: {0}, quantity: {1}&amp;quot;,
                    item.ProductID, item.Quantity));
            }
       }
   }
   catch (DataServiceQueryException ex)
   {
        QueryOperationResponse response = ex.Response;
        Console.WriteLine(response.Error.Message);
    }
}&lt;/pre&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Since the other types of execution rely on calling the synchronous &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.execute.aspx"&gt;DataServiceContext.Execute()&lt;/a&gt; method, I’m not sure how I would make this work with the existing APIs—I need to think more about it.&lt;/p&gt;

  &lt;h5&gt;Service Operations Won’t Work on Asynchronous Clients&lt;/h5&gt;

  &lt;p&gt;And don’t even bother trying to make any of this work with the Windows Phone client. First, there isn’t currently a Windows Phone client available that supports OData v3. (In fact, I removed the service operations code altogether from &lt;a href="http://blogs.msdn.com/b/writingdata_services/archive/2012/01/25/new-and-improved-t4-template-for-odata-client-and-local-database.aspx"&gt;my hybrid T4 template&lt;/a&gt;, just to prevent any errors.) While the October CTP did include a Silverlight client, there is a bigger problem. Under the covers, most of the generated methods call &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.execute.aspx"&gt;DataServiceContext.Execute()&lt;/a&gt;, which is a synchronous method that doesn’t exist in the asynchronous clients. This means lots of errors should you encounter a service operation when using the template in a Silverlight app. The problem is that if you leave the T4 template code in place for a Silverlight client, when it comes across a service operation that requires the use of &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.execute.aspx"&gt;DataServiceContext.Execute()&lt;/a&gt;, which doesn’t exist in the Silverlight client, you will get a compiler error.&lt;/p&gt;

  &lt;p&gt;Just to be clear…on these async clients, only generated service operations methods are broken. The rest of the T4 template code works fine.&lt;/p&gt;

  &lt;p&gt;I’ve been providing feedback to the author of this excellent new template, so I have high hopes that much of this can be addressed.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;





&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="NET"&gt;Windows Azure Access Control, Service Bus and Workflow &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Mick Badran&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/mickba"&gt;mickba&lt;/a&gt;) explained &lt;a href="http://blogs.breeze.net/mickb/2012/01/31/AzureServiceBusFixingTheDreadedTheX509CertificateCNservicebuswindowsnetChainBuildingFailedError.aspx"&gt;Azure ServiceBus: Fixing the dreaded ‘The X.509 certificate CN=servicebus.windows.net chain building failed’ error&lt;/a&gt; in a 1/30/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-apW626BFtOg/TyiRjgTvOsI/AAAAAAAAaXw/64_6Cl2H36o/s1600-h/image%25255B106%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-QfRxbDLp-DM/TyiRj0DhW4I/AAAAAAAAaX4/57hPsH8i5bQ/image_thumb%25255B38%25255D.png?imgmax=800" width="41" height="51" /&gt;&lt;/a&gt;Scotty &amp;amp; myself have had this error going for over 2 weeks now, and have tried many options, settings, registry keys, reboots and so on. 

    &lt;br /&gt;(we have had this on 2 boxes now, that are *not* directly connected to the internet. They are locked down servers with only required services accessible through the firewall) &lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Generally you’ll encounter this error is you install &lt;strong&gt;Azure SDK v1.6&lt;/strong&gt; – there has been people that have revert back to &lt;strong&gt;Azure v1.5 SDK&lt;/strong&gt; when this error has been encountered and this seems to fix most of their problems. &lt;/p&gt;

  &lt;p&gt;Here I’m using &lt;strong&gt;netTcpRelayBinding,&lt;/strong&gt; &lt;strong&gt;BizTalk 2010&lt;/strong&gt; but this could just have easily have been IIS or your own app. &lt;/p&gt;

  &lt;p&gt;Finding the outbound ports and Azure datacenter address space is always the challenge. Ports 80,443,9351 and 9352 are the main ones with the remote addresses being the network segments of your Azure Datacenter. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;The problem: “Oh it’s a chain validation thing, I’ll just go and turn off Certificate checking…” &lt;/strong&gt;let me see the options. 

    &lt;br /&gt;(this is what we thought 2+ weeks ago) &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-ServiceBus_C204/image_4.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/Azure-ServiceBus_C204/image_thumb_1.png" width="553" height="584" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Here I have a BizTalk shot of the &lt;strong&gt;transportClientEndpointBehaviour&lt;/strong&gt; with &lt;strong&gt;Authentication node &lt;/strong&gt;set to &lt;strong&gt;NoCheck and None&lt;/strong&gt; (you would set these from code or a config file outside of biztalk)&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;We found that these currently have NO BEARING whatsoever…&lt;/strong&gt;2 weeks we’ll never get back.&lt;/p&gt;

  &lt;p&gt;Don’t be drawn into here, it’s a long windy path and you’ll most likely end up short. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;I am currently waiting to hear back from the folks on the product team to see what the answer is on this – BUT for now as a workaround we sat down with a network sniffer to see the characteristics.&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Work around:&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;1. Add some &lt;strong&gt;Host Entries&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;2. Create a dummy site so the checker is fooled into grabbing local CRLs. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Add these Entries to your HOSTs file&lt;/strong&gt;. &lt;/p&gt;

  &lt;p&gt;127.0.0.1 www.public-trust.com 
    &lt;br /&gt;127.0.0.1 mscrl.microsoft.com 

    &lt;br /&gt;127.0.0.1 crl.microsoft.com 

    &lt;br /&gt;127.0.0.1 corppki &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Download and extract these directories to your DEFAULT WEB SITE&lt;/strong&gt; (i.e. the one that answers to &lt;a href="http://127.0.0.1/"&gt;http://127.0.0.1/&lt;/a&gt;…..) 

    &lt;br /&gt;This is usually under &lt;strong&gt;C:\inetpub\wwwroot &lt;/strong&gt;(even if you have SharePoint installed)&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;-------------------- The nasty error -------------------&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;The Messaging Engine failed to add a receive location &amp;quot;&amp;lt;receive location&amp;gt;&amp;quot; with URL &amp;quot;sb://&amp;lt;rec url&amp;gt;&amp;quot; to the adapter &amp;quot;WCF-Custom&amp;quot;. Reason: &amp;quot;System.ServiceModel.Security.SecurityNegotiationException: &lt;strong&gt;The X.509 certificate CN=servicebus.windows.net chain building failed&lt;/strong&gt;. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. The revocation function was unable to check revocation because the revocation server was offline.&lt;/p&gt;

  &lt;p&gt;---&amp;gt; System.IdentityModel.Tokens.SecurityTokenValidationException: The X.509 certificate CN=servicebus.windows.net chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. &lt;strong&gt;The revocation function was unable to check revocation because the revocation server was offline.&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;at Microsoft.ServiceBus.Channels.Security.RetriableCertificateValidator.Validate(X509Certificate2 certificate) 
    &lt;br /&gt;at System.IdentityModel.Selectors.X509SecurityTokenAuthenticator.ValidateTokenCore(SecurityToken token) 

    &lt;br /&gt;at System.IdentityModel.Selectors.SecurityTokenAuthenticator.ValidateToken(SecurityToken token) 

    &lt;br /&gt;at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.ValidateRemoteCertificate(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 

    &lt;br /&gt;at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 

    &lt;br /&gt;at System.Net.Security.SslState.CompleteHandshake() 

    &lt;br /&gt;at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 

    &lt;br /&gt;at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 

    &lt;br /&gt;at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty&amp;amp; remoteSecurity) 

    &lt;br /&gt;--- End of inner exception stack trace --- 

    &lt;br /&gt;at System.ServiceModel.Channels.SslStreamSecurityUpgradeInitiator.OnInitiateUpgrade(Stream stream, SecurityMessageProperty&amp;amp; remoteSecurity) 

    &lt;br /&gt;at System.ServiceModel.Channels.StreamSecurityUpgradeInitiatorBase.InitiateUpgrade(Stream stream) 

    &lt;br /&gt;at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade(StreamUpgradeInitiator upgradeInitiator, IConnection&amp;amp; connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper&amp;amp; timeoutHelper) 

    &lt;br /&gt;at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper&amp;amp; timeoutHelper) 

    &lt;br /&gt;at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper&amp;amp; timeoutHelper) 

    &lt;br /&gt;at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.RelayedOnewayTcpClient.RelayedOnewayChannel.Open(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.RelayedOnewayTcpClient.GetChannel(Uri via, TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.RelayedOnewayTcpClient.ConnectRequestReplyContext.Send(Message message, TimeSpan timeout, IDuplexChannel&amp;amp; channel) 

    &lt;br /&gt;at Microsoft.ServiceBus.RelayedOnewayTcpListener.RelayedOnewayTcpListenerClient.Connect(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.RelayedOnewayTcpClient.EnsureConnected(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.Channels.RefcountedCommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.RelayedOnewayChannelListener.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.SocketConnectionTransportManager.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.Channels.TransportManager.Open(TimeSpan timeout, TransportChannelListener channelListener) 

    &lt;br /&gt;at Microsoft.ServiceBus.Channels.TransportManagerContainer.Open(TimeSpan timeout, SelectTransportManagersCallback selectTransportManagerCallback) 

    &lt;br /&gt;at Microsoft.ServiceBus.SocketConnectionChannelListener`2.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) 

    &lt;br /&gt;at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 

    &lt;br /&gt;at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint.Enable() 

    &lt;br /&gt;at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiveEndpoint..ctor(BizTalkEndpointContext endpointContext, IBTTransportProxy transportProxy, ControlledTermination control) 

    &lt;br /&gt;at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfReceiver`2.AddReceiveEndpoint(String url, IPropertyBag adapterConfig, IPropertyBag bizTalkConfig)&amp;quot;. &lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;



&lt;p&gt;&lt;strong&gt;Scott Densmore&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/scottdensmore"&gt;scottdensmore&lt;/a&gt;) announced a &lt;a href="http://scottdensmore.typepad.com/blog/2012/01/fluent-api-for-windows-azure-acs-management.html"&gt;Fluent API for Windows Azure ACS Management&lt;/a&gt; in a 1/29/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-T4m_JU9t7UE/TyiRkiah0HI/AAAAAAAAaYA/I17078EsSvs/s1600-h/image%25255B119%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-UDBr2PTYodU/TyiRk3GjkHI/AAAAAAAAaYI/hQS7Zh2aGPk/image_thumb%25255B42%25255D.png?imgmax=800" width="46" height="66" /&gt;&lt;/a&gt;The guys at SouthWorks have been hard at work again. We have been using the same setup program for our Windows Azure Projects to configure ACS for a while now. It is a bit rough around the edges but we have not had time to invest a little upgrade. Well, leave it to these guys to go above and beyond: Jorge Rowies has create a fluent API for setting things up. Looks great. &lt;a href="http://blogs.southworks.net/jrowies/2012/01/28/fluent-api-for-setting-up-windows-azure-acs/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+master-feed+%28Southworks+Master+Feed%29"&gt;Check it out&lt;/a&gt; and start forking in &lt;a href="https://github.com/jrowies/FluentACS"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="WAVN"&gt;Windows Azure VM Role, Virtual Network, Connect, RDP and CDN&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;No significant articles today.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Live"&gt;Live Windows Azure Apps, APIs, Tools and Test Harnesses&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;MarketWire&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/Marketwire"&gt;Marketwire&lt;/a&gt;) asserted “Further Investment in Microsoft's Cloud Platform Brings Greater Agility to Redknee's Cloud-Based Converged Billing Solutions” in an introduction to a &lt;a href="http://www.marketwatch.com/story/redknee-expands-cloud-offering-with-windows-azure-2012-01-31"&gt;Redknee Expands Cloud Offering With Windows Azure&lt;/a&gt; press release of 1/31/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-MfVg2qmfIds/TyiRlKeG5yI/AAAAAAAAaYQ/6nWIGm2D5lQ/s1600-h/image%25255B75%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-KbFIYNWmOQA/TyiRlaXMVrI/AAAAAAAAaYY/t4I-rMYfaIU/image_thumb%25255B27%25255D.png?imgmax=800" width="65" height="62" /&gt;&lt;/a&gt;Redknee Solutions, Inc., a leading provider of business-critical billing, charging and customer care software and solutions for communications service providers, is pleased to announce that it is expanding its strategic alliance with Microsoft Corp. to support Redknee's strategy to deliver on-premise, private cloud, and public cloud-based converged billing solutions. The integration of Redknee's real-time converged billing platform to Windows Azure will reinforce the commitment by Redknee and Microsoft to develop solutions that deliver greater scalability and agility while reducing capital expenditure for communications service providers across the world. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-xROUL0MtM1s/TyiRlhHKPJI/AAAAAAAAaYg/Q5SOQGPog-I/s1600-h/image%25255B72%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-VNcCXxvOyks/TyiRlxs-5eI/AAAAAAAAaYo/gnsmyop-9dQ/image_thumb%25255B26%25255D.png?imgmax=800" width="153" height="35" /&gt;&lt;/a&gt;Redknee's expanded cloud offering will enable service providers in competitive and fast growing markets to invest in a real-time converged billing and customer care solution based on the open and scalable Windows Azure public cloud. It will bring additional flexibility to Redknee's multi-tenant converged billing solution, which enables service providers to scale as required with a 'pay as your grow' model and minimizes risk. Redknee's cloud solution is supporting the growth of group operators, Tier 1 sub-brands, MVNOs, and MVNEs by enabling them to reduce CAPEX, standardize their billing operations, and launch into new markets quickly and effectively. &lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Lucas Skoczkowski, Redknee's CEO, commented: &amp;quot;Redknee's commitment to invest in Windows Azure reiterates our common goal with Microsoft to deliver solutions for communication service providers that empower them with greater business agility. This joint solution provides exceptional flexibility for service providers that lower the barriers to entry for next generation converged billing solutions by taking advantage of the benefits of the cloud. At Redknee, we continue to invest in developing cloud-based and on-premise monetization solutions to enable service providers to increase revenues, improve the customer experience and grow profitability.&amp;quot; &lt;/p&gt;

  &lt;p&gt;The pre-integration of Windows Azure follows earlier investment by Redknee to pre-integrate its converged billing solution with Microsoft SQL Server 2012, formerly code-named &amp;quot;Denali,&amp;quot; and Microsoft Dynamics CRM 2011. &lt;/p&gt;

  &lt;p&gt;Walid Abu-Hadba, Corporate Vice President of the Developer &amp;amp; Platform Evangelism Group at Microsoft, commented: &amp;quot;We are delighted to see Redknee launching a cloud strategy for the communications service provider community, with Windows Azure at its core. Microsoft's cloud platform delivers greater business agility to service providers, while significantly reducing capital expenditure so that they can focus on their core business. With this commitment to Windows Azure, Redknee advances its vision of creating a suite of agile, flexible solutions for communications service providers. Redknee's adoption of Windows Azure highlights the scalability, the reliability and the performance of the Microsoft cloud platform. Together we are ready to meet the most demanding needs of telecommunications service providers around the world.&amp;quot; &lt;/p&gt;

  &lt;p&gt;For more information about Redknee and its solutions, please go to www.redknee.com . &lt;/p&gt;

  &lt;p&gt;About Redknee Redknee is a leading global provider of innovative communication software products, solutions and services. Redknee's award-winning solutions enable operators to monetize the value of each subscriber transaction while personalizing the subscriber experience to meet mainstream, niche and individual market segment requirements. Redknee's revenue generating solutions provide advanced converged billing, rating, charging and policy for voice, messaging and new generation data services to over 90 network operators in over 50 countries. Established in 1999, Redknee Solutions Inc. &lt;a href="http://www.marketwatch.com/investing/stock/RKN?countrycode=CA&amp;amp;link=MW_story_quote"&gt;/quotes/zigman/38292 CA:RKN +2.00% &lt;/a&gt;is the parent of the wholly-owned operating subsidiary Redknee Inc. and its various subsidiaries. References to Redknee refer to the combined operations of those entities. For more information about Redknee and its solutions, please go to www.redknee.com . &lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;



&lt;p&gt;&lt;strong&gt;Roope Astala&lt;/strong&gt; explained &lt;a href="http://blogs.msdn.com/b/cloudnumerics/archive/2012/01/30/cloud-numerics-example-statistics-operations-to-azure-data.aspx"&gt;“Cloud Numerics” Example: Statistics Operations to Azure Data&lt;/a&gt; in a 1/30/2012 post to the Codename “Cloud Numeric” blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This post demonstrates how to use Microsoft.Numerics C# API to perform statistical operations on data in Windows Azure blob storage. We go through the steps of loading data using IParallelReader interface, performing distributed statistics operations, and saving results to blob storage. As we sequence through the steps, we highlight the code samples from the application. &lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Note!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;You will need to download and install the “Cloud Numerics” lab in order to run this example. To begin that process, click &lt;a href="http://connect.microsoft.com/site1267/SelfNomination.aspx?ProgramID=7456&amp;amp;pageType=1"&gt;here&lt;/a&gt;.&lt;/p&gt;

  &lt;h5&gt;Before You Run the Sample Application&lt;/h5&gt;

  &lt;p&gt;Before you run the sample “Cloud Numerics” statistics application, complete the instructions in the “&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/5993.microsoft-codename-cloud-numerics.aspx"&gt;Cloud Numerics” Getting Started&lt;/a&gt; wiki post to:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Create a Windows Azure account (if you do not have one already). &lt;/li&gt;

    &lt;li&gt;Install “Cloud Numerics” on your local computer where you build and develop applications with Visual Studio. &lt;/li&gt;

    &lt;li&gt;Configure and deploy a cluster in Azure (only if you have not done so already). &lt;/li&gt;

    &lt;li&gt;Submit the sample C# “Cloud Numerics” program to Windows Azure as a test that your cluster is running properly. &lt;/li&gt;

    &lt;li&gt;Download the project file and source code for the sample “Cloud Numerics” statistics application. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Blob Locations and Sample Application Download&lt;/h5&gt;

  &lt;p&gt;You can download the sample application from the Microsoft Connect site (&lt;a href="http://connect.microsoft.com/"&gt;connect.microsoft.com&lt;/a&gt;). If you have not already registered for the lab, you can do that &lt;a href="http://connect.microsoft.com/site1267/SelfNomination.aspx?ProgramID=7456&amp;amp;pageType=1"&gt;here&lt;/a&gt;. Registering for the lab provides you access to the “Cloud Numerics” lab materials (installation package, reference documentation, and sample applications).&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Note!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;If you are signed into Microsoft Connect, and you have already registered for your invitation to the “Cloud Numerics” lab, you can access the various sample applications using this &lt;a href="http://connect.microsoft.com/site1267/Downloads/DownloadDetails.aspx?DownloadID=40598"&gt;link&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;For your convenience, we have staged sample datasets of pseudorandom numbers in Windows Azure Blob Storage. You can access the small and medium datasets at their respective links:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://cloudnumericslab.blob.core.windows.net/smalldata"&gt;http://cloudnumericslab.blob.core.windows.net/smalldata&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://cloudnumericslab.blob.core.windows.net/mediumdata"&gt;http://cloudnumericslab.blob.core.windows.net/mediumdata&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;These datasets are intended merely as examples to get you started. Also, feel free to customize the sample application code to suit your own datasets.&lt;/p&gt;

  &lt;h5&gt;Choosing the Mode: Run on Local Development Machine or on Windows Azure&lt;/h5&gt;

  &lt;h5&gt;To run the application on your local workstation:&lt;/h5&gt;

  &lt;ol&gt;
    &lt;li&gt;Set &lt;strong&gt;StatisticsCloudApplication&lt;/strong&gt; as your StartUp project within Visual Studio. (From Solution Explorer in the Visual Studio IDE, right click the &lt;strong&gt;StatisticsCloudApplication&lt;/strong&gt; subproject and select &lt;strong&gt;Set as Startup Project&lt;/strong&gt;). Although, your application will run on your local workstation, the application will continue to use Windows Azure storage for data input and output. &lt;/li&gt;

    &lt;li&gt;Change Start Option paths for the project properties to reflect your local machine. 
      &lt;br /&gt;&lt;strong&gt;a.&lt;/strong&gt; Right click the &lt;strong&gt;StatisticsCloudApplication&lt;/strong&gt; subproject, and select Properties. 

      &lt;br /&gt;&lt;strong&gt;b.&lt;/strong&gt; Click the &lt;strong&gt;Debug&lt;/strong&gt; tab 

      &lt;br /&gt;&lt;strong&gt;c.&lt;/strong&gt; In the &lt;strong&gt;Start Options&lt;/strong&gt; section of the &lt;strong&gt;Debug&lt;/strong&gt; tab, edit the following fields to reflect the paths on your local development machine: 

      &lt;br /&gt;&lt;strong&gt;-&lt;/strong&gt; For the &lt;strong&gt;Command line arguments&lt;/strong&gt; field, change: 

      &lt;br /&gt;c:\users\roastala\documents\visual studio 2010\Projects… to 

      &lt;br /&gt;c:\users\&amp;lt;YourUsername&amp;gt;\documents\visual studio 2010\Projects… &lt;strong&gt;-&lt;/strong&gt; For the &lt;strong&gt;Working directory&lt;/strong&gt; field, change: 

      &lt;br /&gt;c:\users\roastala\documents\… to 

      &lt;br /&gt;c:\users\&amp;lt;YourUsername&amp;gt;\documents\… &lt;/li&gt;
  &lt;/ol&gt;

  &lt;ol&gt;--Where c:\users\&amp;lt;YourUsername&amp;gt;\ reflects the home directory of the user on the local development machine where you installed the “Cloud Numerics” software. &lt;/ol&gt;

  &lt;h5&gt;To submit the application to Windows Azure (run on Windows Azure rather than locally):&lt;/h5&gt;

  &lt;p&gt;Set &lt;strong&gt;AppConfigure&lt;/strong&gt; as the StartUp project. (From Solution Explorer in the Visual Studio IDE, right click the &lt;strong&gt;AppConfigure&lt;/strong&gt; subproject and select &lt;strong&gt;Set as Startup Project).&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Note!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;If you have already deployed your cluster or if it was pre-deployed by your site administrator, do not deploy it again. Instead, you only need to build the application and submit the main executable as a job.&lt;/p&gt;

  &lt;h5&gt;Step 1: Supply Windows Azure Storage Account Information for Output&lt;/h5&gt;

  &lt;p&gt;To build the application you must have a Windows Azure storage account for storing the output. Replace the string values “myAccountKey” and “myAccountName” with your own account key and name.&lt;/p&gt;

  &lt;pre&gt;static string outputAccountKey = &amp;quot;myAccountKey&amp;quot;;
static string outputAccountName = &amp;quot;myAccountName&amp;quot;;&lt;/pre&gt;

  &lt;p&gt;The application creates a public blob for the output under this storage account. See Step 4 for details.&lt;/p&gt;

  &lt;h5&gt;Step 2: Read in Data from Blob Storage Using IParallelReader Interface&lt;/h5&gt;

  &lt;p&gt;Let us take a look at code in AzureArrayReader.cs file.&lt;/p&gt;

  &lt;p&gt;The input array in this example is in Azure blob storage, where each blob contains a subset of columns of the full array. By using the Microsoft.Numerics.Distributed.IO.IParallelReader interface we can read the blobs in distributed fashion and concatenate the slabs of columns into a single large distributed array.&lt;/p&gt;

  &lt;p&gt;First, we implement the ComputeAssignment method, which assigns blobs to the MPI ranks of our distributed computation. &lt;/p&gt;

  &lt;pre&gt;public object[] ComputeAssignment(int nranks)&lt;br /&gt;{&lt;br /&gt;    Object[] blobs = new Object[nranks];&lt;br /&gt;&lt;br /&gt;    var blobClient = new CloudBlobClient(accountName);&lt;br /&gt;    var matrixContainer = blobClient.GetContainerReference(containerName);&lt;br /&gt;    var blobCount = matrixContainer.ListBlobs().Count();&lt;br /&gt;    int maxBlobsPerRank = (int)Math.Ceiling((double)blobCount / (double)nranks);&lt;br /&gt;    int currentBlob = 0;&lt;br /&gt;    for (int i = 0; i &amp;lt; nranks; i++)&lt;br /&gt;    {&lt;br /&gt;        int step = Math.Max(0, Math.Min(maxBlobsPerRank, blobCount - currentBlob));&lt;br /&gt;        blobs[i] = new int[] { currentBlob, step };&lt;br /&gt;        currentBlob = currentBlob + step;&lt;br /&gt;    }&lt;br /&gt;    return (object[])blobs;&lt;br /&gt;}&lt;/pre&gt;

  &lt;p&gt;Next, we implement the property DistributedDimension, which in this case is initialized to 1 so that slabs will be concatenated along the column dimension.&lt;/p&gt;

  &lt;pre&gt;public int DistributedDimension&lt;br /&gt;{&lt;br /&gt;    get { return 1; }&lt;br /&gt;    set { }&lt;br /&gt;}&lt;/pre&gt;

  &lt;p&gt;The ReadWorker method:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Reads the blob metadata that describes the number of rows and columns in a given slab. &lt;/li&gt;

    &lt;li&gt;Checks that the slabs have an equal number of rows so they can be concatenated columnwise. &lt;/li&gt;

    &lt;li&gt;Reads the binary data from blobs. &lt;/li&gt;

    &lt;li&gt;Constructs a local NumericDenseArray. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;pre&gt;public msnl.NumericDenseArray&amp;lt;double&amp;gt; ReadWorker(Object assignment)&lt;br /&gt;{&lt;br /&gt;    var blobClient = new CloudBlobClient(accountName);&lt;br /&gt;    var matrixContainer = blobClient.GetContainerReference(containerName);&lt;br /&gt;    int[] blobs = (int[])assignment;&lt;br /&gt;    long i, j, k;&lt;br /&gt;    msnl.NumericDenseArray&amp;lt;double&amp;gt; outArray;&lt;br /&gt;    var firstBlob = matrixContainer.GetBlockBlobReference(&amp;quot;slab0&amp;quot;);&lt;br /&gt;    firstBlob.FetchAttributes();&lt;br /&gt;    long rows = Convert.ToInt64(firstBlob.Metadata[&amp;quot;dimension0&amp;quot;]);&lt;br /&gt;    long[] columnsPerSlab = new long[blobs[1]];&lt;br /&gt;    if (blobs[1] &amp;gt; 0)&lt;br /&gt;    {&lt;br /&gt;        // Get blob metadata, validate that each piece has equal number of rows&lt;br /&gt;        for (i = 0; i &amp;lt; blobs[1]; i++)&lt;br /&gt;        {&lt;br /&gt;            var matrixBlob = matrixContainer.GetBlockBlobReference(&amp;quot;slab&amp;quot; + (blobs[0] + i).ToString());&lt;br /&gt;            matrixBlob.FetchAttributes();&lt;br /&gt;            if (Convert.ToInt64(matrixBlob.Metadata[&amp;quot;dimension0&amp;quot;]) != rows)&lt;br /&gt;            {&lt;br /&gt;                throw new System.IO.InvalidDataException(&amp;quot;Invalid slab shape&amp;quot;);&lt;br /&gt;            }&lt;br /&gt;            columnsPerSlab[i] = Convert.ToInt64(matrixBlob.Metadata[&amp;quot;dimension1&amp;quot;]);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        // Construct output array&lt;br /&gt;        outArray = msnl.NumericDenseArrayFactory.Create&amp;lt;double&amp;gt;(new long[] { rows, columnsPerSlab.Sum() });&lt;br /&gt;&lt;br /&gt;        // Read data&lt;br /&gt;        long columnCounter = 0;&lt;br /&gt;        for (i = 0; i &amp;lt; blobs[1]; i++)&lt;br /&gt;        {&lt;br /&gt;            var matrixBlob = matrixContainer.GetBlobReference(&amp;quot;slab&amp;quot; + (blobs[0] + i).ToString());&lt;br /&gt;            var blobData = matrixBlob.DownloadByteArray();&lt;br /&gt;            for (j = 0; j &amp;lt; columnsPerSlab[i]; j++)&lt;br /&gt;            {&lt;br /&gt;                for (k = 0; k &amp;lt; rows; k++)&lt;br /&gt;                {&lt;br /&gt;                    outArray[k, columnCounter] = BitConverter.ToDouble(blobData, (int)(j * rows + k) * 8);&lt;br /&gt;                }&lt;br /&gt;                columnCounter = columnCounter + 1;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        // If a rank was assigned zero blobs, return empty array&lt;br /&gt;        outArray = msnl.NumericDenseArrayFactory.Create&amp;lt;double&amp;gt;(new long[] { rows, 0 });&lt;br /&gt;    }&lt;br /&gt;    return outArray;&lt;br /&gt;}&lt;/pre&gt;

  &lt;p&gt;When an instance of reader is invoked by the Microsoft.Numerics.Distributed.IO.Loader.LoadData method, the ReadWorker instances are executed in parallel on each rank, and the LoadData method automatically takes care of concatenating the local pieces produced by the ReadWorkers.&lt;/p&gt;

  &lt;h5&gt;Step 3: Compute Statistics Operations on Distributed Data&lt;/h5&gt;

  &lt;p&gt;The source code in the Statistics.cs file implements the statistics operations performed on distributed data. &lt;/p&gt;

  &lt;p&gt;The sample data is stored at:&lt;/p&gt;

  &lt;pre&gt;static string inputAccountName = @&amp;quot;http://cloudnumericslab.blob.core.windows.net&amp;quot;;&lt;/pre&gt;

  &lt;p&gt;This is a storage account for our data. It contains the samples of random numbers in publicly readable containers named “smalldata” and “mediumdata.”&lt;/p&gt;

  &lt;p&gt;In the beginning of the main entry point of the application, we initialize the Microsoft.Numerics distributed runtime. This allows us to execute distributed operations by calling Microsoft.Numerics library methods.&lt;/p&gt;

  &lt;pre&gt;Microsoft.Numerics.NumericsRuntime.Initialize();&lt;/pre&gt;

  &lt;p&gt;Next, we instantiate the array reader described earlier, and read data from blob storage.&lt;/p&gt;

  &lt;pre&gt;var dataReader = new AzureArrayReader.AzureArrayReader(inputAccountName, arraySize);

var x = msnd.IO.Loader.LoadData&amp;lt;double&amp;gt;(dataReader);&lt;/pre&gt;

  &lt;p&gt;The output x is a columnwise distributed array loaded with the sample data. We then compute the statistics of the data: min, max, mean, median and percentiles, and write the results to an output string.&lt;/p&gt;

  &lt;pre&gt;// Compute summary statistics: max, min, mean, median&lt;br /&gt;output.AppendLine(&amp;quot;Summary statistics\n&amp;quot;);&lt;br /&gt;var xMin = ArrayMath.Min(x);&lt;br /&gt;output.AppendLine(&amp;quot;Minimum, &amp;quot; + xMin);&lt;br /&gt;var xMax = ArrayMath.Max(x);&lt;br /&gt;output.AppendLine(&amp;quot;Maximum, &amp;quot; + xMax);&lt;br /&gt;var xMean = Descriptive.Mean(x);&lt;br /&gt;output.AppendLine(&amp;quot;Mean, &amp;quot; + xMean);&lt;br /&gt;var xMedian = Descriptive.Median(x);&lt;br /&gt;output.AppendLine(&amp;quot;Median, &amp;quot; + xMedian);&lt;br /&gt;&lt;br /&gt;// Compute 10% quantiles&lt;br /&gt;var tenPercentQuantiles = Descriptive.QuantilesExclusive(x, 10, 0).ToLocalArray();&lt;/pre&gt;

  &lt;p&gt;As x is a distributed array, the overloaded variant of the method (QuantilesExclusive) that distributes processing over nodes of the Azure cluster is used. Note that the result of the quantiles operation is a distributed array. We copy it to a local array in order to write the result to an output string.&lt;/p&gt;

  &lt;h5&gt;Step 4: Write Results to Blob Storage as a .csv File&lt;/h5&gt;

  &lt;p&gt;The application, by default, writes the result to the file system of the virtual cluster. This storage is not permanent; the file will be removed when you delete the cluster. The application creates a public blob on the named Azure account you supplied in the beginning of the application.&lt;/p&gt;

  &lt;pre&gt;// Write output to blob storage&lt;br /&gt;var storageAccountCredential = new StorageCredentialsAccountAndKey(outputAccountName, outputAccountKey);&lt;br /&gt;var storageAccount = new CloudStorageAccount(storageAccountCredential, true);&lt;br /&gt;var blobClient = storageAccount.CreateCloudBlobClient();&lt;br /&gt;var resultContainer = blobClient.GetContainerReference(outputContainerName);&lt;br /&gt;resultContainer.CreateIfNotExist();&lt;br /&gt;var resultBlob = resultContainer.GetBlobReference(outputBlobName);&lt;br /&gt;&lt;br /&gt;// Make result blob publicly readable,&lt;br /&gt;// so it can be accessed using URI&lt;br /&gt;// https://&amp;lt;accountName&amp;gt;.blob.core.windows.net/statisticsresult/statisticsresult&lt;br /&gt;var resultPermissions = new BlobContainerPermissions();&lt;br /&gt;resultPermissions.PublicAccess = BlobContainerPublicAccessType.Blob;&lt;br /&gt;resultContainer.SetPermissions(resultPermissions);&lt;br /&gt;&lt;br /&gt;resultBlob.UploadText(output.ToString());&lt;/pre&gt;

  &lt;p&gt;You can then view and download the results by using a web browser to open the blob. For example, the syntax for the URI would be:&lt;/p&gt;

  &lt;p&gt;https://&amp;lt;accountName&amp;gt;.blob.core.windows.net/statisticsresult/statisticsresult&lt;/p&gt;

  &lt;p&gt;--Where &amp;lt;accountName&amp;gt; is the name of the cluster account you deployed to Windows Azure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For more background on Codename “Cloud Numerics,” see my &lt;a href="http://oakleafblog.blogspot.com/2012/01/introducing-microsoft-codename-cloud.html"&gt;Introducing Microsoft Codename “Cloud Numerics” from SQL Azure Labs&lt;/a&gt; and &lt;a href="http://oakleafblog.blogspot.com/2012/01/deploying-cloud-numerics-sample.html"&gt;Deploying “Cloud Numerics” Sample Applications to Windows Azure HPC Clusters&lt;/a&gt; posts of 1/28/2012.&lt;/p&gt;



&lt;hr /&gt;



&lt;p&gt;&lt;strong&gt;Scott Densmore&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/scottdensmore"&gt;scottdensmore&lt;/a&gt;) described &lt;a href="http://scottdensmore.typepad.com/blog/2012/01/creating-a-ssl-certificate-for-the-cloud-ready-packages-for-the-ios-windows-azure-toolkit.html"&gt;Creating a SSL Certificate for the Cloud Ready Packages for the iOS Windows Azure Toolkit&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-wniySpBXWVI/TyiRmo38_CI/AAAAAAAAaYw/eWZDlcWu_6E/s1600-h/image%25255B115%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-T4gkqAYn2J4/TyiRm0_WhxI/AAAAAAAAaY4/fLIAcc33sCY/image_thumb%25255B41%25255D.png?imgmax=800" width="46" height="66" /&gt;&lt;/a&gt;With the &lt;a href="https://github.com/microsoft-dpe/wa-toolkit-ios"&gt;iOS Windows Azure Toolkit&lt;/a&gt;, you can use the ready made Windows Azure Packages that use ACS or Membership to manage users to Windows Azure Storage. These packages require you to have a SSL certificate. More than likely you are running on a Mac.&lt;/p&gt;

  &lt;p&gt;This is pretty straight forward. You will need to create a certificate and then create a PKCS12 (.pfx) file for it. You can generate the certificate from terminal using &lt;a href="http://www.openssl.org/docs/apps/req.html"&gt;openssl&lt;/a&gt; with the following steps:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;open a terminal window &lt;/li&gt;

    &lt;li&gt;enter the command: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout iOSWAToolkit.pem -out iOSWAToolkit.pem 
      &lt;ul&gt;
        &lt;li&gt;iOSWAToolkit is the name of the file you want and can be anything you like. &lt;/li&gt;

        &lt;li&gt;This will create a certificate that you can use to create the PKCS12 certificate. This command will ask for all the information for your cert that you enter. &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;

    &lt;li&gt;enter the command: openssl pkcs12 -export -out iOSWAToolkit.pfx -in iOSWAToolkit.pem -name &amp;quot;iOSWAToolkit&amp;quot; 
      &lt;ul&gt;
        &lt;li&gt;iOSWAToolkit is the name of the file you want and can be anything you like. &lt;/li&gt;

        &lt;li&gt;This will ask you for a password that you need to remember so you can enter it when uploading to Windows Azure. &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;

    &lt;li&gt;enter the command: openssl x509 -outform der -in iOSWAToolkit.pem -out iOSWAToolkit.cer 
      &lt;ul&gt;
        &lt;li&gt;This will export a certificate with the public key which is what you will need for the service config file. &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;You will have two certificates that you will need to get the &lt;a href="https://github.com/microsoft-dpe/wa-toolkit-cloudreadypackages"&gt;Cloud Ready Package&lt;/a&gt;(s) deployed. This is really easy when you use the &lt;a href="https://github.com/microsoft-dpe/wa-toolkit-ios-configutility"&gt;Cloud Configuration Utility&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;







&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Light"&gt;Visual Studio LightSwitch and Entity Framework 4.1+&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Beth Massi&lt;/strong&gt; (@&lt;a href="http://twitter.com/bethmassi"&gt;bethmassi&lt;/a&gt;) described &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/30/calling-web-services-to-validate-data-in-visual-studio-lightswitch.aspx"&gt;Calling Web Services to Validate Data in Visual Studio LightSwitch&lt;/a&gt; in a 1/30/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-mgfXKgDavZo/TyiRnXpC4EI/AAAAAAAAaZA/vJzn5r1WpNw/s1600-h/image%25255B38%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-Mh8HEMmNeFw/TyiRnh4blYI/AAAAAAAAaZI/Tv4x5KS3Ljs/image_thumb%25255B14%25255D.png?imgmax=800" width="57" height="66" /&gt;&lt;/a&gt;Very often in business applications we need to validate data through another service. I’m not talking about validating the format of data entered – this is very simple to do in LightSwitch -- I’m talking about validating the &lt;strong&gt;meaning &lt;/strong&gt;of the data. For instance, you may need to validate not just the format of an email address (which LightSwitch handles automatically for you) but you also want to verify that the email address is real. Another common example is physical Address validation in order to make sure that a postal address is real before you send packages to it. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-8MKdqeRC3Q8/TyiRn_uCUFI/AAAAAAAAaZQ/V1xSmhDIOg4/s1600-h/image_thumb1%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb1" border="0" alt="image_thumb1" align="right" src="http://lh6.ggpht.com/-tzx5hddkFuM/TyiRoCKxhBI/AAAAAAAAaZY/KUmzzGRr-d4/image_thumb1_thumb%25255B1%25255D.png?imgmax=800" width="171" height="54" /&gt;&lt;/a&gt;In this post I’m going to show you how you can call web services when validating LightSwitch data. I’m going to use the &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/26/beginning-lightswitch-address-book-sample.aspx"&gt;Address Book sample&lt;/a&gt; and implement an Address validator that calls a service to verify the data. &lt;/p&gt;

  &lt;h5&gt;Where Do We Call the Service?&lt;/h5&gt;

  &lt;p&gt;In &lt;a href="http://msdn.com/lightswitch"&gt;Visual Studio LightSwitch&lt;/a&gt; there are a few places where you can place code to validate entities. There are &lt;em&gt;Property&lt;/em&gt;_Validate methods and there are &lt;em&gt;Entity&lt;/em&gt;_Validate methods. &lt;em&gt;Property&lt;/em&gt;_Validate methods run first on the client and then on the server and are good for checking the format of data entered, doing any comparisons to other properties, or manipulating the data based on conditions stored in the entity itself or its related entities. Usually you want to put your validation code here so that users get immediate feedback of any errors before the data is submitted to the server. These methods are contained on the entity classes themselves. (For more detailed information on the LightSwitch Validation Framework see: &lt;a href="http://blogs.msdn.com/b/lightswitch/archive/2010/08/30/overview-of-data-validation-in-lightswitch-applications-prem-ramanathan.aspx"&gt;Overview of Data Validation in LightSwitch Applications&lt;/a&gt;)&lt;/p&gt;

  &lt;p&gt;The &lt;em&gt;Entity&lt;/em&gt;_Validate methods only run on the server and are contained in the ApplicationDataService class. This is the perfect place to call an external validation service because it avoids having clients calling external services directly -- instead the LightSwitch middle-tier makes the call. This gives you finer control over your network traffic. Client applications may only be allowed to connect to your intranet internally but you can allow external traffic to the server managing the external connection in one place. &lt;/p&gt;

  &lt;h5&gt;Calling Web Services&lt;/h5&gt;

  &lt;p&gt;There are a lot of services out there for validating all sorts of data and each service has a different set of requirements. Typically I prefer &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST-ful services&lt;/a&gt; so that you can make a simple http request (GET) and get some data back. However, you can also add service references like ASMX and WCF services as well. It’s all going to depend on the service you use so you’ll need to refer to their specific documentation. &lt;/p&gt;

  &lt;p&gt;To add a service reference to a LightSwitch application, first flip to File View in the Solution Explorer, right-click on the Server project and then select Add Service Reference…&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/8168.image_5F00_2.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/2783.image_5F00_thumb.png" width="555" height="460" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Enter the service URL and the service proxy classes will be generated for you. You can then call these from server code you write on the ApplicationDataService just like you would in any other application that has a service reference. In the case of calling REST-ful services that return XML feeds, you can simply construct the URL to call and examine the results. Let’s see how to do that.&lt;/p&gt;

  &lt;h5&gt;Address Book Example&lt;/h5&gt;

  &lt;p&gt;In &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/26/beginning-lightswitch-address-book-sample.aspx"&gt;this sample&lt;/a&gt; we have an Address table where we want to validate the physical address when the data is saved. There are a few address validator services out there to choose from that I could find, but for this example I chose to sign up for a free trial of an &lt;a href="http://www.serviceobjects.com/lookups/address/address-validation-us"&gt;address validation service from ServiceObjects&lt;/a&gt;. They’ve got some &lt;a href="http://trial.serviceobjects.com/av/AddressValidate.asmx?op=ValidateAddress"&gt;nice, simple APIs&lt;/a&gt; and support REST web requests. Once you sign up they give you a License Key that you need to pass into the service.&lt;/p&gt;

  &lt;p&gt;A sample request looks like this:&lt;/p&gt;

  &lt;p&gt;http://trial.serviceobjects.com/av/AddressValidate.asmx/ValidateAddress?Address=One+Microsoft+Way&amp;amp;Address2=&amp;amp;City=Redmond&amp;amp;State=WA&amp;amp;PostalCode=98052&amp;amp;LicenseKey=12345&lt;/p&gt;

  &lt;p&gt;Which gives you back the result:&lt;/p&gt;

  &lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;Address xmlns=&amp;quot;http://www.serviceobjects.com/&amp;quot;
  xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;
  xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;
  &amp;lt;Address&amp;gt;1 Microsoft Way&amp;lt;/Address&amp;gt;
    &amp;lt;City&amp;gt;Redmond&amp;lt;/City&amp;gt;
    &amp;lt;State&amp;gt;WA&amp;lt;/State&amp;gt;
    &amp;lt;Zip&amp;gt;98052-8300&amp;lt;/Zip&amp;gt;
    &amp;lt;Address2/&amp;gt;
    &amp;lt;BarcodeDigits&amp;gt;980528300997&amp;lt;/BarcodeDigits&amp;gt;
    &amp;lt;CarrierRoute&amp;gt;C012&amp;lt;/CarrierRoute&amp;gt;
    &amp;lt;CongressCode&amp;gt;08&amp;lt;/CongressCode&amp;gt;
    &amp;lt;CountyCode&amp;gt;033&amp;lt;/CountyCode&amp;gt;
    &amp;lt;CountyName&amp;gt;King&amp;lt;/CountyName&amp;gt;
    &amp;lt;Fragment/&amp;gt;
  &amp;lt;/Address&amp;gt;&lt;/pre&gt;

  &lt;p&gt;If you enter a bogus address or forget to specify the City+State or PostalCode then you will get an error result:&lt;/p&gt;

  &lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;Address xmlns=&amp;quot;http://www.serviceobjects.com/&amp;quot;
  xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;
  xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;
  &amp;lt;Error&amp;gt;
    &amp;lt;Desc&amp;gt;Please input either zip code or both city and state.&amp;lt;/Desc&amp;gt;
    &amp;lt;Number&amp;gt;2&amp;lt;/Number&amp;gt;
    &amp;lt;Location/&amp;gt;
  &amp;lt;/Error&amp;gt;
&amp;lt;/Address&amp;gt;&lt;/pre&gt;

  &lt;p&gt;So in order to interact with this service we’ll first need to add some assembly references to the Server project. Right-click on the Server project (like shown above) and select “Add Reference” and import System.Web and System.Xml.Linq.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/4035.image_5F00_4.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/8156.image_5F00_thumb_5F00_1.png" width="560" height="551" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Next, flip back to Logical View and open the Address entity in the Data Designer. Drop down the Write Code button to access the Addresses_Validate method. (You could also just open the Server\UserCode\ApplicationDataService code file if you are in File View). &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/3872.image_5F00_6.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/3060.image_5F00_thumb_5F00_2.png" width="277" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;First we need to import some namespaces as well as the default XML namespace that is returned in the response. (For more information on XML in Visual Basic please see: &lt;a href="http://msdn.microsoft.com/en-us/library/bb384460.aspx"&gt;Overview of LINQ to XML in Visual Basic&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/tags/xml/article/"&gt;articles here on my blog&lt;/a&gt;.) Then we can construct the URL based on the entity’s Address properties and query the result XML for either errors or the corrected address. If we find an error, we tell LightSwitch to display the validation result to the user on the screen. &lt;/p&gt;

  &lt;pre&gt;Imports System.Xml.Linq
Imports System.Web.HttpUtility
Imports &amp;lt;xmlns=&amp;quot;http://www.serviceobjects.com/&amp;quot;&amp;gt;

Namespace LightSwitchApplication
  Public Class ApplicationDataService

    Private Sub Addresses_Validate(entity As Address, results As EntitySetValidationResultsBuilder)
      Dim isValid = False
      Dim errorDesc = &amp;quot;&amp;quot;

      'Construct the URL to call the web service
      Dim url = String.Format(&amp;quot;http://trial.serviceobjects.com/av/AddressValidate.asmx/ValidateAddress?&amp;quot; &amp;amp;
                              &amp;quot;Address={0}&amp;amp;Address2={1}&amp;amp;City={2}&amp;amp;State={3}&amp;amp;PostalCode={4}&amp;amp;LicenseKey={5}&amp;quot;,
                              UrlEncode(entity.Address1),
                              UrlEncode(entity.Address2),
                              UrlEncode(entity.City),
                              UrlEncode(entity.State),
                              UrlEncode(entity.ZIP),
                              &amp;quot;12345&amp;quot;)

      Try
          'Call the service and load the XML result &lt;br /&gt;          Dim addressData = XElement.Load(url)

          'Check for errors first
          Dim err = addressData...&amp;lt;Error&amp;gt;
          If err.Any Then
              errorDesc = err.&amp;lt;Desc&amp;gt;.Value
          Else
              'Fill in corrected address values returned from service
              entity.Address1 = addressData.&amp;lt;Address&amp;gt;.Value
              entity.Address2 = addressData.&amp;lt;Address2&amp;gt;.Value
              entity.City = addressData.&amp;lt;City&amp;gt;.Value
              entity.State = addressData.&amp;lt;State&amp;gt;.Value
              entity.ZIP = addressData.&amp;lt;Zip&amp;gt;.Value
              isValid = True
          End If

      Catch ex As Exception
          Trace.TraceError(ex)
      End Try

      If Not (isValid) Then
          results.AddEntityError(&amp;quot;This is not a valid US address. &amp;quot; &amp;amp; errorDesc)
      End If
    End Sub
  End Class
End Namespace&lt;/pre&gt;

  &lt;h5&gt;Run it!&lt;/h5&gt;

  &lt;p&gt;Now that I’ve got this code implemented let’s enter some addresses on our contact screen. Here I’ve entered three addresses, the first two are legal and the last one is not. Also notice that I’ve only specified partial addresses.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/6014.image_5F00_8.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/4454.image_5F00_thumb_5F00_3.png" width="560" height="263" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;If I try to save this screen, an error will be returned from the service on the last row. LightSwitch won’t let us save until the address is fixed.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/3056.image_5F00_10.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/5444.image_5F00_thumb_5F00_4.png" width="560" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;If I delete the bogus address and save again, you will see that the other addresses were verified and all the fields are updated with complete address information.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/23602.image_5F00_12.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-88-metablogapi/3872.image_5F00_thumb_5F00_5.png" width="560" height="243" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;h5&gt;&lt;/h5&gt;

  &lt;h5&gt;Wrap Up&lt;/h5&gt;

  &lt;p&gt;I hope this gives you a good idea on how to implement web service calls into the LightSwitch validation pipeline. Even though each service you use will have different requirements on how to call them and what they return, the LightSwitch validation pipeline gives you the necessary hooks to implement complex entity validation easily. &lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;



&lt;p&gt;&lt;strong&gt;Jan Van der Haegen&lt;/strong&gt; (@&lt;a href="http://twitter.com/janvanderhaegen"&gt;janvanderhaegen&lt;/a&gt;) asked &lt;a href="http://janvanderhaegen.wordpress.com/2012/01/31/dude-wheres-my-vb-net-code/"&gt;Dude, where’s my VB.Net code?&lt;/a&gt; on 1/30/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-xMWQVYZ1IZg/TyiRoaAlvLI/AAAAAAAAaZg/t9BdJ2LI9jU/s1600-h/image%25255B82%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-wPcXV36H9ik/TyiRopYrzkI/AAAAAAAAaZo/7pfpyBzu170/image_thumb%25255B30%25255D.png?imgmax=800" width="65" height="62" /&gt;&lt;/a&gt;It came to my attention that a large part of the LightSwitch community prefers VB.NET over C#. I always thought that C# and VB.NET are close enough together in semantics that any VB.NET developer can read C# and vica versa. However, I must admit that I looked at the VB.NET version of my own samples, and once there’s generics &amp;amp; optional parameters involved, the VB.NET version becomes significantly different compared to its C# brother. To overcome this language barrier, thank god there’s tools online like “Google Translate”, which for .NET code, &lt;a href="http://converter.telerik.com/"&gt;is provided to us for free by Telerik&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-w2IAjVPsCZc/TyiRo3N5mcI/AAAAAAAAaZw/NZM09wvZWSU/s1600-h/image_thumb1%25255B10%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb1" border="0" alt="image_thumb1" align="right" src="http://lh5.ggpht.com/-LxxBC3jv-K8/TyiRpJYQpFI/AAAAAAAAaZ4/BlrrVk5DFwU/image_thumb1_thumb%25255B2%25255D.png?imgmax=800" width="171" height="54" /&gt;&lt;/a&gt;A special thanks to Telerik, Todd Anglin in particular, for providing us with this awesome translating power!&lt;/p&gt;

  &lt;p&gt;I’ll promise to do my best to post my samples in both C# and VB.Net in the future.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Infra"&gt;Windows Azure Infrastructure and DevOps&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;InformationWeek::Reports&lt;/strong&gt; posted &lt;a href="http://reports.informationweek.com/abstract/5/8644/cloud-computing/wall-street-technology-february-2012.html"&gt;Wall Street &amp;amp; Technology: February 2012&lt;/a&gt; on 1/31/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://reports.informationweek.com/user/index/profile1?iframe=true&amp;amp;width=88%&amp;amp;height=80%"&gt;Download&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: inline; float: right" title="EMBRACING CLOUD: Facing declining revenues and increasing  pressure on capital expenditures, many Wall Street organizations are  warming up to semi-public cloud offerings." alt="EMBRACING CLOUD: Facing declining revenues and increasing  pressure on capital expenditures, many Wall Street organizations are  warming up to semi-public cloud offerings." align="right" src="http://reports.informationweek.com/assetimages/images/wall-street-technology-february-2012_1626.jpg" /&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;EMBRACING CLOUD:&lt;/strong&gt; Facing declining revenues and increasing pressure on capital expenditures, many Wall Street organizations are warming up to semi-public cloud offerings.&lt;/p&gt;

  &lt;h5&gt;Table of Contents&lt;/h5&gt;

  &lt;ul&gt;
    &lt;p&gt;&lt;strong&gt;Cloud Watching: &lt;/strong&gt;As Wall Street continues its wild ride, capital markets firms are looking to cut spending in order to prop up the bottom line. Targeting the enormous costs of building and maintaining data centers and server farms, more and more Wall Street organizations are looking to outsource parts of their infrastructures to the cloud. And increasingly, financial services firms are warming up to private clouds run outside their firewalls.&lt;/p&gt;

    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-N2tEP14E6so/TyiRpfo7NCI/AAAAAAAAaaA/Sd3Zv_vysgI/s1600-h/image%25255B79%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-kw2HN68BYxA/TyiRpr5jnMI/AAAAAAAAaaI/Toq_bJDuc6Q/image_thumb%25255B29%25255D.png?imgmax=800" width="160" height="34" /&gt;&lt;/a&gt;&lt;strong&gt;What Went Wrong? Breaking Down Thomson Reuters Eikon: &lt;/strong&gt;Tabbed as the future of the company, Thomson Reuters' next-generation market data platform, Eikon, has been off to a sluggish start, and several executives have paid the price. But Philip Brittan, the man in charge of the Eikon group, says the company's commitment to the product has never waned.&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Anatomy of A Data Center (Photo Gallery): &lt;/strong&gt;DFT's NJ1 facility in Piscataway, N.J., comprises 360,000 square feet of LEEDcertified, energy-efficient data center space. Home to a growing number of financial industry clients, including the NYSE, the data center is designed to lower costs to tenants. WS&amp;amp;T takes you along for a behind-the-scenes look at the facility.&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Securing Advent's Legacy:&lt;/strong&gt; Founder Stephanie DiMarco will step down at the end of June as Advent's CEO. In an exclusive interview, she explains why she's stepping down, reflects on the company's impact on the investment management industry over the past 30 years and discusses her plans for the future.&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;PLUS:&lt;/strong&gt; 

      &lt;br /&gt;Wall Street IT Pros In Strong Demand 

      &lt;br /&gt;How to Measure IT Productivity 

      &lt;br /&gt;Larry Tabb's Suggestions for Fixing the Futures Market 

      &lt;br /&gt;The Cloud's Time Is Now 

      &lt;br /&gt;And more ... &lt;/p&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Lori MacVittie&lt;/strong&gt; (@&lt;a href="http://twitter.com/lmacvittie"&gt;lmacvittie&lt;/a&gt;) asserted &lt;em&gt;While web applications aren’t sensitive to jitter, business processes are&lt;/em&gt; in an introduction to her &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2012/01/30/performance-in-the-cloud-business-jitter-is-bad.aspx"&gt;Performance in the Cloud: Business Jitter is Bad&lt;/a&gt; post of 1/30/2012 to F5’s DevCentral blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-OprWiv2aNvA/TyiRp5i4rDI/AAAAAAAAaaQ/BA7ti4b2MgI/s1600-h/image%25255B103%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-_tDZPhJkR6Y/TyiRqLe6inI/AAAAAAAAaaY/QHHS6f2WoH8/image_thumb%25255B37%25255D.png?imgmax=800" width="63" height="66" /&gt;&lt;/a&gt;One of the benefits of web applications is that they are generally transported via TCP, which is a connection-oriented protocol designed to assure delivery. TCP has a variety of native mechanisms through which delivery issues can be addressed – from window sizes to selective acks to idle time specification to ramp up parameters. All these technical knobs and buttons serve as a way for operators and administrators to tweak the protocol, often at run time, to ensure the exchange of requests and responses upon which web applications rely. This is unlike UDP, which is more of a “fire and forget” protocol in which the server doesn’t really care if you receive the data or not. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Performance-in-the-Cloud-Business-Jitter_33E4/biz%20jitter_2.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="biz jitter" border="0" alt="biz jitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Performance-in-the-Cloud-Business-Jitter_33E4/biz%20jitter_thumb.png" width="444" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Now, voice and streaming video and audio over the web has always leveraged UDP and thus it has always been highly sensitive to jitter. Jitter is, without getting into layer one (physical) jargon, an undesirable delay in the otherwise consistent delivery of packets. It causes the delay of and sometimes outright loss of packets that are experienced by users as pauses, skips, or jumps in multi-media content. &lt;/p&gt;

  &lt;p&gt;While the same root causes of delay – network congestion, routing changes, time out intervals – have an impact on TCP, it generally only &lt;em&gt;delays &lt;/em&gt;the communication and other than an uncomfortable wait for the user, does not negatively impact the content itself. The content is eventually delivered because TCP guarantees that, UDP does not. &lt;/p&gt;

  &lt;p&gt;However, this does not mean that there are no negative impacts (other than trying the patience of users) from the performance issues that may plague web applications and particularly those that are more and more often out there, in the nebulous “cloud”. Delays are effectively business jitter and have a real impact on the ability of the business to perform its critical functions – and that includes generating revenue. &lt;/p&gt;

  &lt;h6&gt;BUSINESS JITTER and the CLOUD &lt;/h6&gt;

  &lt;p&gt;David Linthicum summed up the issue with performance of cloud-based applications well and actually used the terminology “jitter” to describe the unpredictable pattern of delay: &lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Are cloud services slow? Or fast? Both, it turns out -- and that reality could cause unexpected problems if you rely on public clouds for part of your IT services and infrastructure. &lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;blockquote&gt;
    &lt;p&gt;When I log performance on cloud-based processes -- some that are I/O intensive, some that are not -- I get results that vary randomly throughout the day. In fact, they appear to have the pattern of a very jittery process. Clearly, the program or system is struggling to obtain virtual resources that, in turn, struggle to obtain physical resources. Also, I suspect this &amp;quot;jitter&amp;quot; is not at all random, but based on the number of other processes or users sharing the same resources at that time. &lt;/p&gt;

    &lt;p&gt;-- David Linthicum, “&lt;a href="http://www.infoworld.com/d/cloud-computing/face-the-facts-cloud-performance-isnt-always-stable-170066"&gt;Face the facts: Cloud performance isn't always stable&lt;/a&gt;” &lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;But what the multitude of articles coming out over the past year or so with respect to performance of cloud services has largely ignored is the very real and often measurable impact on business processes. That jitter that occurs at the protocol and application layers trickles up to become jitter in the business process; a process that may be critical to servicing customers (and thus impacts satisfaction and brand) as well as on the bottom line. Unhappy customers forced to wait for “slow computers”, as it is so often called by the technically less adept customer service representatives employed by many organizations, may take to the social media airwaves to express displeasure, or cancel an order, or simply refuse to do business in the future with the organization based on delays experienced because of unpredictable cloud performance. &lt;/p&gt;

  &lt;p&gt;Business jitter can also manifest as decreased business productivity measures, which it &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/04/a-formula-for-quantifying-productivity-of-web-applications.aspx"&gt;turns out can be measured mathematically if you put your mind to it&lt;/a&gt;. &lt;/p&gt;

  &lt;p&gt;Understanding the variability of cloud performance is important for two reasons: &lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;You need to understand the impact on the business and quantify it before embarking on any cloud initiative so it can be factored in to the overall cost-benefit analysis. It may be that the cost savings from public cloud are much greater than the potential loss of revenue and/or productivity, and thus the benefits of a cloud-based solution outweigh the risks. &lt;/li&gt;

    &lt;li&gt;Understanding the variability and from where it comes will have an impact and help guide you to choosing not only the right provider, but the right solutions that may be able to normalize or mitigate the variability. If the primary source of business jitter is your WAN, for example, then it may be that choosing a provider that supports your ability to deploy WAN optimization solutions would be an appropriate strategy. Similarly, if the variability in performance stems from capacity issues, then choosing a provider that allows greater latitude in &lt;a href="http://www.f5.com/glossary/load-balancing.html"&gt;load balancing&lt;/a&gt; algorithms or the deployment of a virtual (soft) ADC would likely be the best strategy. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Performance-in-the-Cloud-Business-Jitter_33E4/cloud%20performance%20battle_2.png"&gt;&lt;img title="cloud performance battle" border="0" alt="cloud performance battle" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Performance-in-the-Cloud-Business-Jitter_33E4/cloud%20performance%20battle_thumb.png" width="240" height="215" /&gt;&lt;/a&gt;It seems clear from testing and empirical (as well as anecdotal) evidence that cloud performance is highly variable and, as David puts it, unstable. This should not necessarily be seen as a deterrent to adopting cloud services – unless your business is so highly sensitive to latency that even milliseconds can be financially damaging – but rather it should be a reality that factors into your decision making process with respect to your choice of provider and the architecture of the solution you’ll be deploying (or subscribing to, in the case of SaaS) in the cloud. &lt;/p&gt;

  &lt;p&gt;Knowing is half the battle to leveraging cloud successfully. The other half is strategy and architecture. &lt;/p&gt;

  &lt;hr width="100%" /&gt;

  &lt;p&gt;&lt;a href="http://www.cloudconnectevent.com/"&gt;&lt;img title="CC_logo_CMYK" border="0" alt="CC_logo_CMYK" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Enterprise-Apps-are-Not-Written-for-Spee_2FD1/cc_logo_265x126_3.jpg" width="86" height="41" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;I’ll be at CloudConnect 2012 and we’ll discuss the subject of cloud and performance a whole lot more at the show! &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://www.cloudconnectevent.com/santaclara/2012/speaker-list/?speaker=lori-mac-vittie"&gt;Sessions&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;





&lt;p&gt;&lt;strong&gt;Abel B. Cruz&lt;/strong&gt; reported &lt;a href="http://abelcruz04.wordpress.com/2012/01/30/cloud-computing-fueling-global-economic-growth-london-school-of-economics-study/"&gt;Cloud Computing Fueling Global Economic Growth: London School of Economics study&lt;/a&gt; on 1/30/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-eeSGJbwf_nw/TyiRqRn1wyI/AAAAAAAAaag/FT4MdCcEWkY/s1600-h/image%25255B35%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-VyhOiCfN93k/TyiRqlcFhGI/AAAAAAAAaao/0jszXz9Itqc/image_thumb%25255B13%25255D.png?imgmax=800" width="50" height="66" /&gt;&lt;/a&gt;The development of cloud computing will promote economic growth, increase productivity and shift the type of jobs and skills required by businesses, according to a new study by the London School of Economics and Political Science.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://www.forbes.com/sites/joemckendrick/2012/01/27/cloud-computing-fueling-global-economic-growth-london-school-of-economics-study/"&gt;http://www.forbes.com/sites/joemckendrick/2012/01/27/cloud-computing-fueling-global-economic-growth-london-school-of-economics-study/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;



&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="WAPA"&gt;Windows Azure Platform Appliance (WAPA), Hyper-V and Private/Hybrid Clouds&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;David Linthicum&lt;/strong&gt; (@&lt;a href="http://twitter.com/DavidLinthicum"&gt;DavidLinthicum&lt;/a&gt;) asserted “Amazon Storage Gateway is a prime example of using an old-fashioned data center approach in the cloud -- which seems to miss the point” in a deck for his &lt;a href="http://www.infoworld.com/d/cloud-computing/cloud-appliances-the-cloud-isnt-the-cloud-185256"&gt;Cloud appliances: The cloud that isn't the cloud&lt;/a&gt; post of 1/31/2012 to InfoWorld’s Cloud Computing blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-zeSQ8iGmfXA/TyiRrBvTz1I/AAAAAAAAaaw/H-6C2psO2gY/s1600-h/image%25255B50%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-xdcgFmsIwpE/TyiRreyPu0I/AAAAAAAAaa4/xm-nMBwOLcY/image_thumb%25255B18%25255D.png?imgmax=800" width="64" height="66" /&gt;&lt;/a&gt;Last week Amazon.com let it be known that it has launched a public beta test of Amazon Storage Gateway -- my colleague Matt Prigge has done an &lt;a href="http://www.infoworld.com/t/cloud-computing/hands-amazon-storage-gateway-185241"&gt;in-depth, hands-on look of it&lt;/a&gt;. This software appliance stores data on local hardware and uploads backup instances to Amazon Web Services' S3 (Simple Storage Service). The idea is to provide low-latency access to local data while keeping snapshots of that data in the AWS cloud.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-J5KrKSWsUnM/TyiRrQnPHvI/AAAAAAAAabA/EUg2w2gTTcE/s1600-h/image%25255B54%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-6wg89BR_GZI/TyiRrhGSyUI/AAAAAAAAabI/cMx1dz2T8p0/image_thumb%25255B20%25255D.png?imgmax=800" width="102" height="25" /&gt;&lt;/a&gt;Cloud appliances are nothing new -- we've been using them for years to maintain software control within the firewall. Their applications include caching data as it moved to and from the cloud to enhance performance, local storage that is replicated to the cloud (as is the case with AWS gateway), and providing protocol mediation services to systems that are not port 80-compliant.&lt;/p&gt;

  &lt;p&gt;However, the larger question here is obvious: If cloud computing is really around eliminating the cost of local hardware and software, why are cloud computing providers selling hardware and software?&lt;/p&gt;

  &lt;p&gt;There are practical reasons for using cloud appliances, such as those I just cited. However, the larger advantage may be more perceptual than technical. IT managers want their data in some box in their data center that they can see and touch. They also want to tell people that they are moving to cloud computing. The cloud appliance provides the best of both worlds, and I suspect that we'll see other IaaS providers follow if Amazon.com is successful.&lt;/p&gt;

  &lt;p&gt;However, I can't help thinking that we're just trading an internal path to complexity and increasing costs for a cloud path to complexity and increasing costs. That's antithetical to the cloud's notions of reducing costs through efficiency and scale and of reducing complexity through abstraction. But yet here we are.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;





&lt;p&gt;The &lt;strong&gt;Windows Server and Cloud Platform Team&lt;/strong&gt; reported &lt;a href="http://blogs.technet.com/b/server-cloud/archive/2012/01/30/system-center-cloud-services-management-pack-rc-now-available.aspx"&gt;System Center Cloud Services Management Pack RC Now Available!&lt;/a&gt; on 1/30/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-uTMxqXmiZ-I/TyiRrw-LuYI/AAAAAAAAabQ/LpRnJ5klsig/s1600-h/image%25255B19%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-UYEanmsaUkE/TyiRsCgjNaI/AAAAAAAAabY/pJnF9TJmwL8/image_thumb%25255B7%25255D.png?imgmax=800" width="35" height="34" /&gt;&lt;/a&gt;Check out &lt;a href="http://bit.ly/wOxiG1"&gt;Travis Wright’s blog&lt;/a&gt; and learn more about the System Center Cloud Services Management Pack Release Candidate that is now available for download.&lt;/p&gt;

  &lt;p&gt;The System Center Cloud Services Process Pack offers a self-service experience to facilitate private cloud capacity requests from your business unit IT application owners and end users, including the flexibility to request additional capacity as business demands increase. &lt;a href="http://bit.ly/yh6y4n"&gt;Download&lt;/a&gt; the Management Pack today!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Security"&gt;Cloud Security and Governance&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Chris Hoff&lt;/strong&gt; (@&lt;a href="http://twitter.com/Beaker"&gt;Beaker&lt;/a&gt;) posted &lt;a href="http://www.rationalsurvivability.com/blog/?p=3415"&gt;Building/Bolting Security In/On – A Pox On the Audit Paradox!&lt;/a&gt; on 1/31/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-02b6ONzhHq4/TyiRsqg1XqI/AAAAAAAAabg/Q3MbiSp-K6c/s1600-h/image%25255B41%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-kkjkcp-YB2Y/TyiRs3f4XwI/AAAAAAAAabo/QNhP3s8fGQA/image_thumb%25255B15%25255D.png?imgmax=800" width="65" height="61" /&gt;&lt;/a&gt;My friend and skilled raconteur Chris Swan (@cpswan) wrote an excellent piece a few days ago titled “&lt;a href="http://blog.thestateofme.com/2012/01/28/building-security-in-the-audit-paradox/"&gt;Building security in – the audit paradox&lt;/a&gt;.”&lt;/p&gt;

  &lt;p&gt;This thoughtful piece was constructed in order to point out the challenges involved in providing auditability, visibility, and transparency in service — specifically cloud computing — in which the notion of building in or bolting on security is debated.&lt;/p&gt;

  &lt;p&gt;I think this is timely. I have thought about this a couple of times with one piece aligned heavily with Chris’ thoughts:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.rationalsurvivability.com/blog/?p=2850"&gt;Revisiting virtualization and cloud stack security — Back to the future (baked in or bolted on)&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Chris’ discussion really contrasted the delivery/deployment models against the availability and operationalization of controls:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;&lt;em&gt;If we’re building security in, then how do we audit the controls?&lt;/em&gt; &lt;/li&gt;

    &lt;li&gt;&lt;em&gt;Will platform as a service (PaaS) give us a way to build security in such that it can be evaluated independently of the custom code running on it?&lt;/em&gt; &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;Further, as part of some good examples, he points out the notion that with separation of duties, the ability to apply “defense in depth” (hate that term,) and the ability to respond to new threats, the “bolt-on” approach is useful — if not siloed:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;There lies the issue – bolt on security is easy to audit. There’s a separate thing, with a separate bit of config (administered by a separate bunch of people) that stands alone from the application code.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;…versus building secure applications:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Code security is hard. We know that from the constant stream of vulnerabilities that get found in the tools we use every day. Auditing that specific controls implemented in code are present and effective is a big problem, and that is why I think we’re still seeing so much bolting on rather than building in.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;I don’t disagree with this at all. Code security is hard. People look for gap-fillers. The notion that Chris finds limited options for bolting security on versus integrating security (building it in) programmatically as part of the security development lifecycle leaves me a bit puzzled.&lt;/p&gt;

  &lt;p&gt;This identifies both the skills and cultural gap between where we are with security and how cloud changes our process, technology, and operational approaches but there are many options we should discuss.&lt;/p&gt;

  &lt;p&gt;Thus what was interesting (read: I disagree with) is what came next wherein Chris maintained that one “can’t bolt on in the cloud”:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;One of the challenges that cloud services present is an inability to bolt on extra functionality, including security, beyond that offered by the service provider. Amazon, Google etc. aren’t going to let me or you show up to their data centre and install an XML gateway, so if I want something like schema validation then I’m obliged to build it in rather than bolt it on, and I must confront the audit issue that goes with that.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;While it’s true that CSP’s may not enable/allow you to show up to their DC and “…install and XML gateway,” they are pushing the security deployment model toward the virtual networking hooks, the guest based approach within the VMs and leveraging both the security and service models of cloud itself to solve these challenges.&lt;/p&gt;

  &lt;p&gt;I allude to this below, but as an example, there are now cloud services which can sit “in-line” or in conjunction with your cloud application deployments and deliver security as a service…application, information (and even XML) security as a service are here today and ramping!&lt;/p&gt;

  &lt;p&gt;While immature and emerging in some areas, I offer the following suggestions that the “bolt-on” approach is very much alive and kicking. Given that the “code security” is hard, this means that the cloud providers harden/secure their platforms, but the app stacks that get deployed by the customers…that’s the customers’ concerns and here are some options:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Introspection APIs (VMsafe) &lt;/li&gt;

    &lt;li&gt;Security as a Service (Cloudflare, Dome9, CloudPassage) &lt;/li&gt;

    &lt;li&gt;Auditing frameworks (CloudAudit, STAR, etc) &lt;/li&gt;

    &lt;li&gt;Virtual networking overlays &amp;amp; virtual appliances (vGW, VSG, Embrane) &lt;/li&gt;

    &lt;li&gt;Software defined networking (Nicira, BigSwitch, etc.) &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;Yes, some of them are platform specific and I think Chris was mostly speaking about “Public Cloud,” but “bolt-on” options are most certainly available an are aggressively evolving.&lt;/p&gt;

  &lt;p&gt;I totally agree that from the PaaS/SaaS perspective, we are poised for many wins that can eliminate entire classes of vulnerabilities as the platforms themselves enforce better security hygiene and assurance BUILT IN. This is just as emerging as the BOLT ON solutions I listed above.&lt;/p&gt;

  &lt;p&gt;In a prior post “&lt;a href="http://www.rationalsurvivability.com/blog/?p=1523"&gt;Silent Lucidity: IaaS – Already a Dinosaur. Rise of PaaSasarus Rex&lt;/a&gt;”&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;As I mention in my Cloudifornication presentation, I think that from a security perspective, PaaS offers the potential of eliminating entire classes of vulnerabilities in the application development lifecycle by enforcing sanitary programmatic practices across the derivate works built upon them. I look forward also to APIs and standards that allow for consistency across providers. I think PaaS has the greatest potential to deliver this.&lt;/p&gt;

    &lt;p&gt;There are clearly trade-offs here, but as we start to move toward the two key differentiators (at least for public clouds) — management and security — I think the value of PaaS will really start to shine.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;My opinion is that given the wide model of integration between various delivery and deployment models, we’re gonna need both for quite some time.&lt;/p&gt;

  &lt;p&gt;Back to Chris’ original point, the notion that auditors will in any way be able to easily audit code-based (built-in) security at the APPLICATION layer or the PLATFORM layer versus the bolt-on layer is really at the whim on the skillset of the auditors themselves and the checklists they use which call out how one is audited:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Infrastructure as a service shows us that this can be done e.g. the AWS firewall is very straightforward to configure and audit (without needing to reveal any details of how it’s actually implemented). What can we do with PaaS, and how quickly?&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;This is a very simplistic example (more infrastructure versus applistructure perspective) but represents the very interesting battleground we’ll be entrenched in for years to come.&lt;/p&gt;

  &lt;p&gt;In the related posts below, you’ll see I’ve written a bunch about this and am working toward ensuring that as really smart folks work to build it in, the ecosystem is encouraged to provide bolt ons to fill those gaps.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;



&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Events"&gt;Cloud Computing Events&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Adron Hall&lt;/strong&gt; (@&lt;a href="http://twitter.com/adron"&gt;adron&lt;/a&gt;) reported on 1/30/2012 &lt;a href="http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/jvWzlm3FgUI/"&gt;Aaron Stannard Presenting “Building Node.JS Applications on Windows Azure” @ #NodePDX&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://nodepdx.github.com/"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://adronhall.smugmug.com/Software/Meetups/PDX-Nodejs-Conference/i-tSdnGqv/0/O/nodepdx.png" width="256" height="128" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Aaron Stannard&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/--IF4O3IwAT8/TyiRtANupOI/AAAAAAAAabw/6edga6JPn9s/s1600-h/image%25255B32%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-XQbUv2m_9SA/TyiRtWWLX4I/AAAAAAAAab4/cyKCALJeBw4/image_thumb%25255B12%25255D.png?imgmax=800" width="60" height="66" /&gt;&lt;/a&gt;Aaron is coming at us from southern California, but don’t hold that against him. He’s going to shed some light on the Windows Azure support around Node.js. Yup, you read that right, Microsoft is all googly over open source these days. Aaron describes his presentation thus:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;&lt;img style="display: inline; float: right" alt="" align="right" src="http://adronhall.smugmug.com/Software/Misc-Images/Just-Icons-and-Bits/i-TnQWzfH/0/S/azure-S.png" width="86" height="86" /&gt;Microsoft is moving towards making Windows Azure a PaaS cloud capable of hosting applications of any shape, size, framework, and programming language, and Node.JS is one of the first non-.NET technologies we’ve made a first-class citizen on Windows Azure.&lt;/p&gt;

    &lt;p&gt;In this talk you’ll get a brief overview of Windows Azure itself, iisnode, and what the dev / test / production lifecycle looks like for Node.JS applications built for Windows Azure.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;If you’d like to come and check out this presentation and the other kick ass presentations lined up, get involved in some coding, hear what Node.js is all about, or just hang out please &lt;a href="http://lanyrd.com/2012/nodepdx/"&gt;RSVP&lt;/a&gt; and get the event on your calendar! Besides, what better reason to come visit the amazing city of Portland, Oregon than to come hack some node.js and chill for the weekend!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Other"&gt;Other Cloud Computing Platforms and Services&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Chris Czarnecki&lt;/strong&gt; posted &lt;a href="http://cloud-computing.learningtree.com/2012/01/31/amazon-announces-trusted-advisor/"&gt;Amazon Announces Trusted Advisor&lt;/a&gt; to the Learning Tree blog on 1/31/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-BNVvWAfgWrc/TyiRtuyKTdI/AAAAAAAAacA/OXagfDLDCJ0/s1600-h/image%25255B85%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-QiSw92v6bM0/TyiRt5W7TXI/AAAAAAAAacI/bpBlfIciCsA/image_thumb%25255B31%25255D.png?imgmax=800" width="56" height="66" /&gt;&lt;/a&gt;When considering using cloud computing services, one of the major factors is the level of support that can be provided by the cloud vendor. In particular, when using Infrastructure as a Service, it is vital to ensure that cloud resources are not only appropriately secured but are also running at their most cost effective. Who better to provide this information than the cloud provider.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-B0-dtEyjx_8/TyiRuLsnnJI/AAAAAAAAacQ/ZKpg1h7jBE0/s1600-h/image%25255B96%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-lmA9VNOiqcU/TyiRumdm3-I/AAAAAAAAacY/SFby6RxAcJE/image_thumb%25255B34%25255D.png?imgmax=800" width="160" height="64" /&gt;&lt;/a&gt;In the case of Amazon Web Services, where the range of services is so wide (consider storage: SimpleDB, Simple Storage Service, Relational Data Service, Elastic Block Storage, DynamoDb) with many alternatives, it is not always easy to make the correct choice. When buying infrastructure, the purchase model is no longer straightforward either, with options for on-demand, reserved and spot instances. When deploying high availability systems, instances are typically spread across availability zones. Are these balanced and evenly distributed ?&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-KABlKW88zDw/TyiRuy_lclI/AAAAAAAAacg/TncWv0vj5sI/s1600-h/image%25255B88%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-nalYvGwy_fY/TyiRuxGt71I/AAAAAAAAaco/Ju4RdKzS48Q/image_thumb%25255B32%25255D.png?imgmax=800" width="65" height="50" /&gt;&lt;/a&gt;To help better support deployed systems making use of Amazon infrastructure, Amazon have today announced &lt;a href="http://aws.typepad.com/aws/2012/01/new-aws-premium-support-features-third-party-software-support-and-aws-trusted-advisor.html"&gt;AWS Trusted Advisor&lt;/a&gt;. This service, which uses the experience of supporting hundreds of thousands of Amazon customers, will inspect a customer’s AWS environment and, if appropriate, will make recommendations on improving security, performance and cost reduction. All of this is automated and makes use of a large knowledge base built up by Amazon over the last few years.&lt;/p&gt;

  &lt;p&gt;The Trusted Advisor is an example of the way in which Amazon continues to innovate in providing services that not only provide great new functionality, but also in the monitoring and control of these services. If you would like to know more about Amazon Web Services and how they can benefit your organisation, consider attending Learning Tree’s comprehensive course, &lt;a href="http://www2.learningtree.com/r/resp.aspx?cat=crs&amp;amp;m=us&amp;amp;c=1205&amp;amp;f=blog_cc"&gt;Cloud Computing with Amazon Web Services™&lt;/a&gt;, in which you’ll learn from an expert instructor about the major services and how they can be integrated to form a coherent scalable reliable infrastructure.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;





&lt;p&gt;&lt;strong&gt;Adalberto Foresti&lt;/strong&gt; reported &lt;a href="http://blogs.msdn.com/b/interoperability/archive/2012/01/30/beta-of-aws-sdk-for-windows-phone-released.aspx"&gt;Beta of Amazon Web Services SDK for Windows Phone released&lt;/a&gt; on 1/30/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-UslUK0MrOnI/TyiRvVIZGzI/AAAAAAAAac0/NwzTCbcMKow/s1600-h/image%25255B92%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-N7TSwVKfFn4/TyiRwPm_i8I/AAAAAAAAac8/xHeWgGuDdVU/image_thumb%25255B33%25255D.png?imgmax=800" width="160" height="64" /&gt;&lt;/a&gt;I am pleased to announce the beta release of the Amazon Web Services (AWS) SDK for Windows Phone. Built by Microsoft as an open source project, this SDK provides developers with a speed dial that lets them quickly connect and integrate Windows Phone applications with AWS (S3, SimpleDB, and SQS Cloud Services)&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-ZY8Ak-s5G_s/TyiRwaZyWaI/AAAAAAAAadE/sXO8khcMU9Q/s1600-h/image%25255B100%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-vvPMdoFCMiQ/TyiRwv4l87I/AAAAAAAAadM/Fx6Doi6w2o8/image_thumb%25255B36%25255D.png?imgmax=800" width="160" height="59" /&gt;&lt;/a&gt;To create cloud-connected mobile applications, developers want to have choice and be able to reuse their assets and skills. For developers familiar with AWS, whether they’ve been developing for Android, iOS or any other technology, this SDK will allow them to comfortably port their applications to the Windows Phone Platform.&lt;/p&gt;

  &lt;p&gt;Terry Wise, Director of Business Development for Amazon Web Services, welcomes the release of the Amazon Web Services SDK for Windows Phone to the Developer community.&lt;/p&gt;

  &lt;p&gt;&lt;i&gt;“Our approach with AWS is to provide developers with choice and flexibility to build applications the way they want and give them unlimited storage, bandwidth and computing resources, while paying only for what they use. We welcome Windows Phone developers to the AWS community and look forward to providing customers with new ways to build and deploy Windows Phone applications,” he says.&lt;/i&gt;&lt;/p&gt;

  &lt;p&gt;Jean Paoli, General Manager of Interoperability Strategy at Microsoft, adds that Windows Phone was engineered from the get-go to be a Cloud-friendly phone.&lt;/p&gt;

  &lt;p&gt;&lt;i&gt;“The release of the AWS SDK for Windows Phone Beta proves that Microsoft’s goal of building a Cloud-friendly phone is true across vendor boundaries. It literally takes minutes to create a Cloud-ready application in C# with this SDK. We look forward to this SDK eventually resulting in many more great apps in the rapidly growing Windows Phone marketplace,” he said.&lt;/i&gt;&lt;/p&gt;

  &lt;p&gt;Developers can download the &lt;a href="https://github.com/downloads/Microsoft-Interop/AWS-SDK-for-WP/AWSWP7Setup.msi"&gt;SDK&lt;/a&gt; , along with the complete &lt;a href="https://github.com/Microsoft-Interop/AWS-SDK-for-WP"&gt;source code&lt;/a&gt; under the Apache license. A Getting Started guide can be found on the &lt;a href="http://windowsphone.interoperabilitybridges.com/articles/getting-started-with-the-beta-of-amazon-web-services-sdk-for-windows-phone"&gt;Windows Phone Interoperability Bridges site&lt;/a&gt; along with other resources.&lt;/p&gt;

  &lt;p&gt;And as always your feedback on how to improve this beta is welcome!&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;





&lt;p&gt;&lt;strong&gt;Jeff Barr&lt;/strong&gt; (@&lt;a href="http://twitter.com/jeffbarr"&gt;jeffbarr&lt;/a&gt;) reported &lt;a href="http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/-YfCKJbkGpg/amazon-s3-growth-for-2011-now-762-billion-objects.html"&gt;Amazon S3 Growth for 2011 - Now 762 Billion Objects&lt;/a&gt; in a 1/30/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-uGjeFV8tLMc/TyiRxI8C6SI/AAAAAAAAadU/u3eli3VJDe0/s1600-h/image%25255B25%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-2FU4mVphf7E/TyiRxadt0JI/AAAAAAAAadc/gSMKJJCBu0c/image_thumb%25255B9%25255D.png?imgmax=800" width="65" height="65" /&gt;&lt;/a&gt;As of the end of 2011, there are 762 billion (762,000,000,000) objects in Amazon S3. We process over 500,000 requests per second for these objects at peak times.&lt;/p&gt;

  &lt;p&gt;Here's the annual growth chart:&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://media.amazonwebservices.com/blog/s3_growth_2011_3.png" /&gt;&lt;/p&gt;

  &lt;p&gt;This represents year-over-year growth of 192%; S3 grew faster last year than it did in any year since it launched in 2006.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-GjpHP9Clj_A/TyiRxo5KmpI/AAAAAAAAadk/q6DT6_ucLkY/s1600-h/image%25255B29%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-xE2UMneW7B8/TyiRyCWG3oI/AAAAAAAAads/JxQNyawH_xo/image_thumb%25255B11%25255D.png?imgmax=800" width="160" height="64" /&gt;&lt;/a&gt;Where are all of these objects coming from? Although we definitely made it easier for you to delete objects using &lt;a href="http://aws.typepad.com/aws/2011/12/amazon-s3-multi-object-deletion.html"&gt;Multi-Object Deletion &lt;/a&gt;and &lt;a href="http://aws.typepad.com/aws/2011/12/amazon-s3-object-expiration.html"&gt;Object Expiration&lt;/a&gt;, we also gave you plenty of ways to upload new objects using &lt;a href="http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html"&gt;Multipart upload&lt;/a&gt;, &lt;a href="http://aws.amazon.com/directconnect/"&gt;AWS Direct Connect&lt;/a&gt;, and &lt;a href="http://aws.amazon.com/importexport/"&gt;AWS Import/Export&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d83352db-5ca6-43fe-aba1-4a8c0fa350b0" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+Azure" rel="tag"&gt;Windows Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure+Platform" rel="tag"&gt;Windows Azure Platform&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Services+Platform" rel="tag"&gt;Azure Services Platform&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Storage+Services" rel="tag"&gt;Azure Storage Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Table+Services" rel="tag"&gt;Azure Table Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Blob+Services" rel="tag"&gt;Azure Blob Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Drive+Services" rel="tag"&gt;Azure Drive Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Queue+Services" rel="tag"&gt;Azure Queue Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Service+Broker" rel="tag"&gt;Azure Service Broker&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Access+Services" rel="tag"&gt;Azure Access Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Azure+Database" rel="tag"&gt;SQL Azure Database&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Azure+Federations" rel="tag"&gt;SQL Azure Federations&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open+Data+Protocol" rel="tag"&gt;Open Data Protocol&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OData" rel="tag"&gt;OData&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Computing" rel="tag"&gt;Cloud Computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio+LightSwitch" rel="tag"&gt;Visual Studio LightSwitch&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LightSwitch" rel="tag"&gt;LightSwitch&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Amazon+Web+Services" rel="tag"&gt;Amazon Web Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AWS" rel="tag"&gt;AWS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Codename+%e2%80%9cSocial+Analytics%e2%80%9d" rel="tag"&gt;Codename “Social Analytics”&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Codename+%e2%80%9cData+Explorer%e2%80%9d" rel="tag"&gt;Codename “Data Explorer”&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Codename+%e2%80%9cCloud+Numerics%e2%80%9d" rel="tag"&gt;Codename “Cloud Numerics”&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Node.js" rel="tag"&gt;Node.js&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Apache+Hadoop+on+Windows+Azure" rel="tag"&gt;Apache Hadoop on Windows Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Hadoop+on+Azure" rel="tag"&gt;Hadoop on Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Hadoop" rel="tag"&gt;Hadoop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Phone" rel="tag"&gt;Windows Phone&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iOS" rel="tag"&gt;iOS&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11646261-1143930505878465291?l=oakleafblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oakleafblog.blogspot.com/feeds/1143930505878465291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11646261&amp;postID=1143930505878465291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/1143930505878465291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/1143930505878465291'/><link rel='alternate' type='text/html' href='http://oakleafblog.blogspot.com/2012/01/windows-azure-and-cloud-computing-posts_31.html' title='Windows Azure and Cloud Computing Posts for 1/30/2012+'/><author><name>Roger Jennings (--rj)</name><uri>http://www.blogger.com/profile/01700526164060680385</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0GeAX5t9PtI/TocwxoAK69I/AAAAAAAAQos/p5d6F13mkiw/s220/OakLeafLogoMVP100px.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-OsoKl-OJ6tQ/TgtZhIThImI/AAAAAAAAMWc/azK-WT3s8xY/s72-c/image2222.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11646261.post-496394549611548406</id><published>2012-01-31T12:48:00.000-08:00</published><updated>2012-01-31T17:27:37.336-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop on Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon S3'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Mining'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Blob Storage Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><category scheme='http://www.blogger.com/atom/ns#' term='Astoria'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache Hadoop on Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Marketplace DataMarket'/><category scheme='http://www.blogger.com/atom/ns#' term='OData'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Data Protocol'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache Hadoop'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Introducing Apache Hadoop Services for Windows Azure</title><content type='html'>&lt;p&gt;The &lt;strong&gt;SQL Server Team&lt;/strong&gt; (@&lt;a href="http://twitter.com/SQLServer"&gt;SQLServer&lt;/a&gt;) announced &lt;a href="https://www.hadooponazure.com/"&gt;Apache Hadoop Services for Windows Azure&lt;/a&gt;, a.k.a. &lt;em&gt;Apache Hadoop on Windows Azure&lt;/em&gt; or &lt;em&gt;Hadooop on Azure&lt;/em&gt;, at the Profesional Association for SQL Server (PASS) Summit in October 2011.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; 1/31/2011: Added steps 15 and 16 with Job History and Cluster Management for the TeraSort job.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; 1/30/2011: Added TeraSort job, steps 10 through 14, and TeraValidate job, steps 17 through 19. Waiting for response regarding interpretation of TeraValidate results.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Introduction&lt;/li&gt;    &lt;li&gt;Tutorial: Running the 10GB GraySort Sample’s TeraGen Job&lt;/li&gt;    &lt;li&gt;Tutorial: Running the 10GB GraySort Sample’s TeraSort Job&lt;/li&gt;    &lt;li&gt;Tutorial: Running the 10GB GraySort Sample’s TeraValidate Job&lt;/li&gt;    &lt;li&gt;Apache Hadoop on Windows Azure Resources&lt;/li&gt; &lt;/ul&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;strong&gt;Introduction &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Val Fontama&lt;/strong&gt;’s &lt;a href="http://blogs.technet.com/b/dataplatforminsider/archive/2011/12/14/availability-of-community-technology-preview-ctp-of-hadoop-based-service-on-windows-azure.aspx"&gt;Availability of Community Technology Preview (CTP) of Hadoop based Service on Windows Azure&lt;/a&gt; post of 12/14/2011 described Apache Hadoop on Windows Azure and how to obtain an invitation to the CTP:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-EIKuoi6Rx8o/TycRICArk8I/AAAAAAAAaNs/34H6LuiCork/s1600-h/image%25255B52%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-myun72CXo84/TycRIdM6tyI/AAAAAAAAaN0/tx8jZrSRyx4/image_thumb%25255B30%25255D.png?imgmax=800" width="53" height="66" /&gt;&lt;/a&gt;In October at the PASS Summit 2011, &lt;a href="http://blogs.technet.com/b/dataplatforminsider/archive/2011/10/13/microsoft-s-big-data-roadmap-amp-approach.aspx"&gt;Microsoft announced expanded investments in “Big Data”,&lt;/a&gt; including a new &lt;a href="http://hadoop.apache.org/"&gt;Apache Hadoop™&lt;/a&gt; based distribution for Windows Server and service for Windows Azure. In doing so, we extended Microsoft’s leadership in BI and Data Warehousing, enabling our customers to glean and manage insights for any data, any size, anywhere. We delivered on our promise this past Monday, when we announced the release of the Community Technology Preview (CTP) of our Hadoop based service for Windows Azure. &lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-dKpgz3QQVts/TycRItO-1kI/AAAAAAAAaN8/GKGGAmP10Ak/s1600-h/image%25255B49%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-jQ4fohcE6Zg/TycRI8oeZeI/AAAAAAAAaOE/BkID4JF6kwY/image_thumb%25255B29%25255D.png?imgmax=800" width="62" height="66" /&gt;&lt;/a&gt;Today this preview is available to an initial set of customers. Those interested in joining the preview may request to do so by filling out &lt;a href="http://connect.microsoft.com/SQLServer/Survey/Survey.aspx?SurveyID=13697"&gt;this survey&lt;/a&gt;. Microsoft will issue a code that will be used by the selected customers to access the Hadoop based Service. We look forward to making it available to the general public in early 2012. Customers will gain the following benefits from this preview:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://lh4.ggpht.com/-PgEm3QzHZSY/TyhI5Ox7iNI/AAAAAAAAaSQ/d7xxz8B1kzk/s1600-h/image%25255B127%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-bWZImsmpQKc/TyhI5kv0aHI/AAAAAAAAaSY/FsGhd0v9YLQ/image_thumb%25255B72%25255D.png?imgmax=800" width="65" height="57" /&gt;&lt;/a&gt;&lt;b&gt;Broader access to Hadoop&lt;/b&gt; through simplified deployment and programmability. Microsoft has simplified setup and deployment of Hadoop, making it possible to setup and configure Hadoop on Windows Azure in a few hours instead of days. Since the service is hosted on Windows Azure, customers only download a package that includes the Hive Add-in and Hive ODBC Driver. In addition, Microsoft has introduced new JavaScript libraries to make JavaScript a first class programming language in Hadoop. Through this library JavaScript programmers can easily write MapReduce programs in JavaScript, and run these jobs from simple web browsers. These improvements reduce the barrier to entry, by enabling customers to easily deploy and explore Hadoop on Windows. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/-jNp8AXfFGUY/TycRJUHsVlI/AAAAAAAAaRY/ZoFjogK_OII/s1600-h/image%25255B94%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-3OPpfyFLNUc/TycRJm9YCmI/AAAAAAAAaRc/4074wT7Rha8/image_thumb%25255B53%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;Breakthrough insights&lt;/b&gt; through integration Microsoft Excel and BI tools. This preview ships with a new Hive Add-in for Excel that enables users to interact with data in Hadoop from Excel. With the Hive Add-in customers can issue Hive queries to pull and analyze unstructured data from Hadoop in the familiar Excel. Second, the preview includes a Hive ODBC Driver that integrates Hadoop with Microsoft BI tools. This driver enables customers to integrate and analyze unstructured data from Hadoop using award winning Microsoft BI tools such as PowerPivot and PowerView. As a result customers can gain insight on all their data, including unstructured data stored in Hadoop. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Elasticity&lt;/b&gt;, thanks to Windows Azure. This preview of the Hadoop based service runs on Windows Azure, offering an elastic and scalable platform for distributed storage and compute. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;We look forward to your feedback! Learn more at &lt;a href="http://www.microsoft.com/bigdata"&gt;www.microsoft.com/bigdata&lt;/a&gt;.       &lt;br /&gt;      &lt;br clear="all" /&gt;Val Fontama       &lt;br /&gt;Senior Product Manager       &lt;br /&gt;SQL Server Product Management&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Mary Jo Foley&lt;/strong&gt; (@&lt;a href="http://twitter.com/maryjofoley"&gt;maryjofoley&lt;/a&gt;) ranked Apache Hadoop on Windows Azure #9 of her &lt;a href="http://m.zdnet.com/blog/microsoft/the-10-sexiest-microsoft-business-teases-for-2012/11492"&gt;10 sexiest Microsoft business teases for 2012&lt;/a&gt; on 12/29/2011:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;…&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-cX2TFe_RXg4/TycV0o0BwYI/AAAAAAAAaRE/6lgdsec8tP0/s1600-h/image%25255B92%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-DWEv9F0A0NI/TycV0-32BlI/AAAAAAAAaRM/9uDMh1CQbZA/image_thumb%25255B52%25255D.png?imgmax=800" width="60" height="66" /&gt;&lt;/a&gt;9. &lt;strong&gt;AzureHadoop (or is it HadoopAzure?): &lt;/strong&gt;Microsoft made available the preview bits for the Hadoop distribution for Windows Azure in December 2011. The &lt;a href="http://www.zdnet.com/blog/microsoft/understanding-microsofts-big-picture-plans-for-hadoop-and-project-isotope/11466"&gt;final release is slated for March 2012&lt;/a&gt;. (Microsoft and partner Hortonworks are also working on an &lt;a href="http://www.zdnet.com/blog/microsoft/microsoft-to-develop-hadoop-distributions-for-windows-server-and-azure/10958"&gt;on-premises Hadoop on Windows Server distribution&lt;/a&gt;.)&lt;strong&gt; &lt;/strong&gt;Hadoop on Windows Azure is interesting because it combines Microsoft’s big-data plans and products with its cloud platform. The idea Microsoft will be pushing in 2012 is that Hadoop on Azure will give users of Microsoft’s analytics tools, including plain-old Excel, a way to make use of the growing number of data sets stored on Windows Azure.&lt;/p&gt;    &lt;p&gt;…&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;   &lt;hr /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tutorial: Running the 10GB GraySort Sample’s TeraGen Job&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Following is a step-by-step tutorial for running the first process of the 10GB GraySort sample project:&lt;/p&gt;  &lt;p&gt;1. After you receive your invitation code, navigate to &lt;a title="https://www.hadooponazure.com/" href="https://www.hadooponazure.com/"&gt;https://www.hadooponazure.com/&lt;/a&gt; and log-in with your Windows Live ID and invitation code to open the Account page with the Request a New Cluster content active. Type a globally unique DNS Name for your cluster, &lt;em&gt;hadoop1&lt;/em&gt; for this example, select a Cluster Size (Large for this example), and type a administrative Username, Password and password confirmation:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/-W5fnGl8pfJc/TycRKXULphI/AAAAAAAAaOc/y1ha-iquobQ/s1600-h/image%25255B57%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-RCzUqeooW4E/TycRLQ-qu2I/AAAAAAAAaOk/gcJInDaOYro/image_thumb%25255B33%25255D.png?imgmax=800" width="642" height="743" /&gt;&lt;/a&gt;Click screen captures for a full-size (1024x768-px) image.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: There is no charge for Windows Azure resources used during the CTP, so you don’t need to provide a credit card to create your cluster. &lt;/p&gt;  &lt;p&gt;2. When your cluster is provisioned, the Account page’s content changes to include tiles to create a new job as well as access your cluster by different methods:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-rvlEVORvZxY/TycRMCGH8OI/AAAAAAAAaOs/j58IWxscssk/s1600-h/image%25255B11%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-5ZIhUjUPA34/TycRNNc_LEI/AAAAAAAAaO0/ZWx_rgDbfXk/image_thumb%25255B7%25255D.png?imgmax=800" width="642" height="694" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: You must renew your cluster every three days. It’s clear that that faux-Metro UIs are &lt;em&gt;de rigueur&lt;/em&gt; at Microsoft these days.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3. Click the Samples tile to open the Account/Samples page, which describes the currently available samples.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-fVCSB_w_GuM/TycRN_Yy9zI/AAAAAAAAaO8/UNX2fOquJN0/s1600-h/image%25255B16%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-2MsoqP1qoNA/TycROrRZVzI/AAAAAAAAaPE/Omwfh4hcGy0/image_thumb%25255B10%25255D.png?imgmax=800" width="642" height="455" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. The GraySort MapReduce sample is a useful starting point because it runs in a reasonably short time (about 4 minutes with a Large cluster), so click the 10GB GraySort tile to open its Account/SampleDetails page, which describes the sample:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-UTM22D-5BzM/TycRPbNTSII/AAAAAAAAaPM/LfxajHUHJNo/s1600-h/image%25255B21%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-7i2RvwIS_D8/TycRQLoKpGI/AAAAAAAAaPU/poupXM2SrfE/image_thumb%25255B13%25255D.png?imgmax=800" width="642" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Click the Deploy to Your Cluster button to automatically populate text boxes with values for the TeraGen program, which generates 10 GB of data:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-aXa6GXFzyxw/TycRRI_72AI/AAAAAAAAaPc/xPFHAMS_mJI/s1600-h/image%25255B26%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-9Guzgh7E594/TycRSDKDCZI/AAAAAAAAaPk/94UG-AQ4fEc/image_thumb%25255B16%25255D.png?imgmax=800" width="642" height="622" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you have tried SQL Azure Labs’ Microsoft Codename “Data Numerics” CTP, you’ll notice that the process for creating the Hadoop cluster and executing the first MapReduce job is much more automated that that described in my &lt;a href="http://oakleafblog.blogspot.com/2012/01/deploying-cloud-numerics-sample.html"&gt;Deploying “Cloud Numerics” Sample Applications to ...&lt;/a&gt; post of 1/28/2012 (updated 1/30/2012).&lt;/p&gt;  &lt;p&gt;5. Click the Execute Job button to run the TeraGen program, which initially displays this Job Info page:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/--DiWqV_lDjI/TycRS48_G-I/AAAAAAAAaPs/Ox0KXnrSII8/s1600-h/image%25255B31%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-CajWc2gvrJw/TycRThGptSI/AAAAAAAAaP0/b3yJC5E3Ck0/image_thumb%25255B19%25255D.png?imgmax=800" width="642" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;6. After a few seconds, the program begins adding lines of Debut Output for the 50 maps in increments close to 1 percent:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://sites.google.com/site/rogerjenn/home/Hadoop1ErrorFig7-907px.png" width="640" height="2357" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Hadoop automatically repairs the failures reported above, but it’s surprising that lines for 78 and 79 percent are missing.&lt;/p&gt;  &lt;p&gt;7. When processing completes, click the left-arrow button to return to the Account page with a tile for the TeraGen process added:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://sites.google.com/site/rogerjenn/home/Hadoop1ErrorFig7-907px.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-WrzRLU0efaw/TycRa54f9UI/AAAAAAAAaRU/BBSU5G8C27A/image%25255B93%25255D.png?imgmax=800" width="642" height="694" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;8. Click the Job History tile to display a summary of the preceding operation, which confirms successful completion with an Exit Code = Ok cell:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-GA02Nxn8YKU/TycRbnLW3iI/AAAAAAAAaQc/_iiANjrQjMI/s1600-h/image%25255B46%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-Kg0Xx0kP9BE/TycRcXTX94I/AAAAAAAAaQk/ySh1Hrzen1I/image_thumb%25255B28%25255D.png?imgmax=800" width="642" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;9. Click the left-arrow button to return to the main Accounts page and click the Manage Cluster tile to display total storage used (30 GB) and other data source options (Data Market, Windows Azure blob storage, and Amazon S3):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-ZOgDIfa7ZeQ/TycRczqQopI/AAAAAAAAaQs/5Al68QPfjOg/s1600-h/image%25255B72%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-mtSv8KJFZ_8/TycRdnlifwI/AAAAAAAAaQ0/fpPp0-_DSNU/image_thumb%25255B42%25255D.png?imgmax=800" width="642" height="386" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;hr /&gt;   &lt;p&gt;&lt;strong&gt;Tutorial: Running the 10GB GraySort Sample’s TeraSort Job&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;10. Return to the Account page, click the Samples tile to open the Account/Samples page (see step 3), click the 10GB GraySort tile to open its Account/SampleDetails page (see step 4), and click the Deploy to Your Cluster button to open the Create Job page. &lt;/p&gt;  &lt;p&gt;11. Replace teragen with &lt;strong&gt;terasort&lt;/strong&gt; in the Parameter 1 text box, add a space and =Dmapred.reduce.tasks=25 as a suffix to the existing Parameter 2 text box value, and change the Parameter 3 text box’s value to &lt;strong&gt;/example/data/10GB-sort-input /example/data/10GB-sort-out&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-S-PwhJTDrWY/TydN9AyLCYI/AAAAAAAAaRg/EGHGLyxwfRY/s1600-h/image%25255B104%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-OBJXwzNwOLo/TydN9-uQ5lI/AAAAAAAAaRo/a_kcTf3_XOg/image_thumb%25255B59%25255D.png?imgmax=800" width="642" height="622" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;12. Click the top, middle, and bottom arrow symbols adjacent to the three text boxes to validate the three parameter values:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-AVs_tzZZZEc/TydN_HXgifI/AAAAAAAAaRw/nSYJsuju3bU/s1600-h/image%25255B114%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-kK2qPjVR_RM/TydN_xvTWSI/AAAAAAAAaR4/Y-4ZlLebRXA/image_thumb%25255B65%25255D.png?imgmax=800" width="642" height="622" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you receive &lt;strong&gt;&lt;font color="#ff0000"&gt;Invalid&lt;/font&gt;&lt;/strong&gt; instead of &lt;strong&gt;&lt;font color="#00aa2b"&gt;OK&lt;/font&gt;&lt;/strong&gt; for any of the parameter values and you’ve verified the content is identical to the above, click the garbage can symbols next to the offending text boxes to remove them, click Add Parameter button three times to recreate them, retype the parameter values shown above, and click the validation arrows again.&lt;/p&gt;  &lt;p&gt;The Final Command should read:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Hadoop jar hadoop-examples-0.20.203.1-SNAPSHOT.jar terasort &amp;quot;-Dmapred.map.tasks=50 -Dmapred.reduce.tasks=25&amp;quot; /example/data/10GB-sort-input /example/data/10GB-sort-out&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;13. Click the Execute Job button to start the sorting process:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-i6Wplq2hHQI/TydOAlwOBwI/AAAAAAAAaSA/8NWRQLBUjYs/s1600-h/image%25255B119%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-3VCfAe2WOSQ/TydOBWfBwuI/AAAAAAAAaSI/OdDots3JRhE/image_thumb%25255B68%25255D.png?imgmax=800" width="642" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;14. About 45 minutes after you start the job, the StdOutput and StdError results appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://sites.google.com/site/rogerjenn/home/Hadoop1SortExecuteDoneFig14-907px.png"&gt;&lt;img src="https://sites.google.com/site/rogerjenn/home/Hadoop1SortExecuteDoneFig14-907px.png" width="640" height="3009" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Notice that Reduce operations don’t occur until Mapping is ~80% complete.&lt;/p&gt;  &lt;p&gt;15. Click the Job History tile to display the summary for the TeraSort option:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-jLidiyvs9s4/TyhI6IVOYYI/AAAAAAAAaSg/LFdlFCQWbWY/s1600-h/image%25255B124%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-CEtXDTh3iZI/TyhI7NDi-xI/AAAAAAAAaSo/COUKeYhOF-8/image_thumb%25255B71%25255D.png?imgmax=800" width="642" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;16. Return to the Account page and click the Manage Cluster tile to determine the additional storage space used (10 GB) by the TeraSort operation:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-OTs6-wp7QaQ/TyhI7316sWI/AAAAAAAAaSw/7FZbxx-f-XM/s1600-h/image%25255B132%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-uE-eI1R2bU0/TyhI8e2rVsI/AAAAAAAAaS4/sEEIsJF_u78/image_thumb%25255B75%25255D.png?imgmax=800" width="642" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tutorial: Running the 10GB GraySort Sample’s TeraSort Job&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;17. Return to the Account page, click the Samples tile to open the Account/Samples page (see step 3), click the 10GB GraySort tile to open its Account/SampleDetails page (see step 4), and click the Deploy to Your Cluster button to open the Create Job page. &lt;/p&gt;  &lt;p&gt;18. Delete the parameters and add three new empty parameters. Type &lt;strong&gt;teravalidate&lt;/strong&gt; in the Parameter 1 text box, click the arrow to validate the parameter, type &lt;strong&gt;&amp;quot;-Dmapred.map.tasks=50 -Dmapred.reduce.tasks=25&amp;quot;&lt;/strong&gt; in the Parameter 2 text box value and validate it, and &lt;strong&gt;type /example/data/10GB-sort-out /example/data/10GB-sort-validate&lt;/strong&gt; in the Parameter 3 text box’s value and validate it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-k-56de4hRyU/TyhI9p-i9WI/AAAAAAAAaTA/wr4aH8ykDAg/s1600-h/image%25255B150%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-RrEzerpjZD4/TyhI-VXa4SI/AAAAAAAAaTI/xvOx9vLyHbg/image_thumb%25255B85%25255D.png?imgmax=800" width="642" height="622" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The final command should read:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;Hadoop jar hadoop-examples-0.20.203.1-SNAPSHOT.jar teravalidate &amp;quot;-Dmapred.map.tasks=50 -Dmapred.reduce.tasks=25&amp;quot; /example/data/10GB-sort-out /example/data/10GB-sort-validate&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;19. Click the Execute Job button to start the task:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-bISl7Ntx4oI/TyhI_BmpovI/AAAAAAAAaTQ/oUWNgo9NRCg/s1600-h/image%25255B155%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-TWQqOGjJouQ/TyhI__b-zBI/AAAAAAAAaTY/qq5IKPQxRLc/image_thumb%25255B88%25255D.png?imgmax=800" width="642" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;20. After about five minutes, the task completes with the following (partial) Debug Output:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://sites.google.com/site/rogerjenn/home/Hadoop1TeraValidateDebugOutputFig20-1024px.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" border="0" src="https://sites.google.com/site/rogerjenn/home/Hadoop1TeraValidateDebugOutputFig20-1024px.png" width="640" height="1000" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: It’s not clear from the debug output above how to determine the result of the validation task.&lt;/p&gt;  &lt;p&gt;21. Return to the Account page and click the Job history tile to verify the outcome:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-8ks6t8x9thk/TyhOhByJx5I/AAAAAAAAaTw/nbDezzVmMx4/s1600-h/image%25255B165%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-zi4KUEqj-34/TyhOiF8nMrI/AAAAAAAAaT4/vxZ6m0V0ODw/image_thumb%25255B94%25255D.png?imgmax=800" width="642" height="465" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Job #3’s failure was due to a mismatch in the input file name, as emphasized above.&lt;/p&gt;  &lt;p&gt;   &lt;hr /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Apache Hadoop on Windows Azure Resources&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt; the &lt;u&gt;Apache Hadoop-based &lt;/u&gt;&lt;u&gt;Services for Windows Azure How-To and FAQ&lt;/u&gt; whitepaper in &lt;a href="http://isoprodstore.blob.core.windows.net/isotopectp/docs/Apache%20Hadoop-based%20Services%20for%20Windows%20Azure%20How-To%20and%20FAQ.pdf"&gt;PDF&lt;/a&gt; or &lt;a href="http://isoprodstore.blob.core.windows.net/isotopectp/docs/Apache%20Hadoop-based%20Services%20for%20Windows%20Azure%20How-To%20and%20FAQ.docx"&gt;*.docx&lt;/a&gt; format.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Wesley McSwain&lt;/strong&gt; posted a &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6206.apache-hadoop-based-services-for-windows-azure-how-to-guide.aspx"&gt;Apache Hadoop Based Services for Windows Azure How To Guide&lt;/a&gt;, which is similar (but not identical) to the above document, to the TechNet wiki on 12/13/2011. The latest update when this post was written was 1/18/2012. Here’s its content:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;This content is a work in progress for the benefit of the Hadoop Community. &lt;strong&gt;Please feel free&lt;/strong&gt; to contribute to this wiki page based on your expertise and experience with Hadoop.&lt;/p&gt;    &lt;p&gt;If you have any questions, please use the groups DL &lt;a href="http://tech.groups.yahoo.com/group/hadooponazurectp/"&gt;http://tech.groups.yahoo.com/group/hadooponazurectp/ &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/p&gt;    &lt;h5&gt;Table of Contents&lt;/h5&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/#How-Tos"&gt;How-Tos&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/#FAQs"&gt;FAQs&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/#More_Information"&gt;More Information&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/#Blogs_Twitter_to_Follow"&gt;Blogs / Twitter to Follow&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;h5&gt;&lt;a name="How-Tos"&gt;&lt;/a&gt;How-Tos&lt;/h5&gt;    &lt;ol&gt;     &lt;li&gt;Setup your Hadoop cluster        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6225.aspx"&gt;Provision a temporary Hadoop cluster on Microsoft's Elastic Map Reduce Portal&lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-azure-deployment-of-apache-hadoop-for-windows.aspx"&gt;Provision a new Hadoop cluster on your Windows Azure subscription.&lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6220.aspx"&gt;Provision a new Hadoop Cluster on your on-premise hardware.&lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Running Sample Jobs        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/how-to-run-a-job-on-a-provisioned-hadoop-on-windows-azure-cluster.aspx"&gt;How to run Sample Pi Estimator Job&lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/29/apache-hadoop-on-windows-azure-part-3-creating-a-word-count-hadoop-job-with-a-few-twists.aspx"&gt;Running Sample WordCount Hadoop Job with a few twists &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/30/apache-hadoop-on-windows-azure-part-5-running-10gb-sort-hadoop-job-with-teragen-terasort-and-teravalidate-options.aspx"&gt;Running 10GB Sort Hadoop Job with Teragen, TeraSort and TeraValidate Options &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&amp;#160;&lt;strong&gt;*&lt;/strong&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Writing your own Job and running on Cluster        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/31/apache-hadoop-on-windows-azure-part-7-writing-your-very-own-wordcount-hadoop-job-in-java-and-deploying-to-windows-azure-cluster.aspx"&gt;Writing your very own WordCount Hadoop Job in Java and deploying to Windows Azure Cluster &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/03/apache-hadoop-on-windows-azure-part-10-running-a-javascript-map-reduce-job-from-interactive-javascript-console.aspx"&gt;Running a JavaScript Map/Reduce Job&lt;/a&gt;&lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Job Administration        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/30/apache-hadoop-on-windows-azure-part-6-running-10gb-sort-hadoop-job-with-terasort-option-and-understanding-mapreduce-job-administration.aspx"&gt;Understanding MapReduce Job administration by running 10GB Sort Hadoop Job with TeraSort Option &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Interactive Console:        &lt;ul&gt;         &lt;li&gt;Tasks with the Interactive JavaScript Console            &lt;ul&gt;             &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/03/apache-hadoop-on-windows-azure-part-10-running-a-javascript-map-reduce-job-from-interactive-javascript-console.aspx"&gt;How to create and run a JavaScript Map Reduce Job &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;           &lt;/ul&gt;         &lt;/li&gt;          &lt;li&gt;Tasks with Hive on the Interactive Console            &lt;ul&gt;             &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/09/apache-hadoop-on-windows-azure-running-hive-scripts-from-interactive-hive-console.aspx"&gt;How to run Hive Queries from the Interactive Console &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;           &lt;/ul&gt;         &lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Remote Desktop        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/29/apache-hadoop-on-windows-azure-part-4-remote-login-to-hadoop-node-for-mapreduce-job-and-hdfs-administration.aspx"&gt;How to remote login to Hadoop Cluster &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/01/apache-hadoop-on-windows-azure-part-8-hadoop-map-reduce-administration-from-command-line-in-cluster.aspx"&gt;Using The Hadoop Command Shell &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/29/apache-hadoop-on-windows-azure-part-4-remote-login-to-hadoop-node-for-mapreduce-job-and-hdfs-administration.aspx"&gt;View the Job Tracker &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/12/29/apache-hadoop-on-windows-azure-part-4-remote-login-to-hadoop-node-for-mapreduce-job-and-hdfs-administration.aspx"&gt;View Hdfs &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Connecting Windows Azure Blob Storage from Hadoop Cluster        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/05/apache-hadoop-on-windows-azure-connecting-to-windows-azure-storage-your-hadoop-cluster.aspx"&gt;Configuring Hadoop Cluster to connect with Azure Storage &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/05/using-windows-azure-blob-storage-asv-for-input-data-and-storing-results-in-hadop-map-reduce-job-on-windows-azure.aspx"&gt;Running a Hadoop job using Azure Storage as Input and Output paramteres &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Open Ports        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/how-to-connect-excel-to-hadoop-on-azure-via-hiveodbc.aspx"&gt;How to connect Excel to Hadoop on Azure via HiveODBC&lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/how-to-ftp-data-to-hadoop-on-windows-azure.aspx"&gt;How to FTP data to Hadoop on Azure&lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6779.how-to-sftp-data-to-hadoop-on-windows-azure.aspx"&gt;How to SFTP data to Hadoop on Azure&lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Manage Data        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6857.how-to-import-data-to-hadoop-on-windows-azure-from-data-market.aspx"&gt;Import Data from Data Market&lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/05/apache-hadoop-on-windows-azure-connecting-to-windows-azure-storage-your-hadoop-cluster.aspx"&gt;Setup ASV - Use your Windows Azure Blob Storage Account &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;Setup S3 - Use your Amazon S3 account&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Apache Hadoop on Windows Azure:        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/06/apache-hadoop-on-windows-azure-few-tips-and-tricks-to-manage-your-hadoop-cluster-in-windows-azure.aspx"&gt;Tips and Tricks to manage your Hadoop Cluster &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;          &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/10/running-apache-pig-pig-latin-at-apache-hadoop-on-windows-azure.aspx"&gt;Running Apache Pig (Pig Latin) at Apache Hadoop on Windows Azure &lt;img title="This link is external to TechNet Wiki. It will open in a new window." border="0" src="http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-components-sitefiles/10_5F00_external.png" /&gt; &lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Scenarios        &lt;ul&gt;         &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/6628.aspx"&gt;Querying a Web Log File via HiveQL&lt;/a&gt;&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;   &lt;/ol&gt; &lt;/blockquote&gt;  &lt;h5&gt;*&lt;font style="font-weight: normal"&gt; Does not include details for TeraSort or TeraValidate options&lt;/font&gt;&lt;/h5&gt;  &lt;blockquote&gt;   &lt;h5&gt;FAQs&lt;/h5&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/hadoop-on-azure-faq.aspx"&gt;Frequently asked questions with Hadoop on Windows Azure&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;h5&gt;&lt;a name="More_Information"&gt;&lt;/a&gt;More Information&lt;/h5&gt;    &lt;ul&gt;     &lt;li&gt;See &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/apache-hadoop-on-windows.aspx"&gt;Apache Hadoop On Windows&lt;/a&gt;.&lt;/li&gt;   &lt;/ul&gt;    &lt;h5&gt;&lt;a name="Blogs_Twitter_to_Follow"&gt;&lt;/a&gt;Blogs / Twitter to Follow&lt;/h5&gt;    &lt;p&gt;Below are some blogs to follow on Hadoop on Azure [links added]&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Alexander Stojanovic&lt;/strong&gt; (Founder and [General Manager]) of Hadoop on Azure and Windows), @&lt;a href="http://twitter.com/stojanovic"&gt;stojanovic&lt;/a&gt;, &lt;a title="http://conceptualorigami.blogspot.com/" href="http://conceptualorigami.blogspot.com/"&gt;http://conceptualorigami.blogspot.com/&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Dave Vronay&lt;/strong&gt;, @&lt;a href="http://twitter.com/davevr"&gt;davevr&lt;/a&gt;, &lt;a title="http://dvronay.blogspot.com/2011/12/design-of-portal-for-hadooponazurecom.html" href="http://dvronay.blogspot.com/2011/12/design-of-portal-for-hadooponazurecom.html"&gt;http://dvronay.blogspot.com/2011/12/design-of-portal-for-hadooponazurecom.html&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Brad Sarsfield&lt;/strong&gt;, @&lt;a href="http://twitter.com/bradoop"&gt;bradoop&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Denny Lee&lt;/strong&gt;, @&lt;a href="http://twitter.com/dennylee"&gt;dennylee&lt;/a&gt;, &lt;a title="http://dennyglee.com/" href="http://dennyglee.com/"&gt;http://dennyglee.com/&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Avkash Chauhan&lt;/strong&gt;, @&lt;a href="http://twitter.com/avkashchauhan"&gt;avkashchauhan&lt;/a&gt;, &lt;a title="http://blogs.msdn.com/b/avkashchauhan/" href="http://blogs.msdn.com/b/avkashchauhan/"&gt;http://blogs.msdn.com/b/avkashchauhan/&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;hr /&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4d167e6a-1531-458e-8746-04c1d5fdd88f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+Azure" rel="tag"&gt;Windows Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Apache+Hadoop+on+Windows+Azure" rel="tag"&gt;Apache Hadoop on Windows Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Apache+Hadoop" rel="tag"&gt;Apache Hadoop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Hadoop" rel="tag"&gt;Hadoop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MapReduce" rel="tag"&gt;MapReduce&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Computing" rel="tag"&gt;Cloud Computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Big+Data" rel="tag"&gt;Big Data&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Big+Data+Analytics" rel="tag"&gt;Big Data Analytics&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure+Marketplace+DataMarketDataMarket" rel="tag"&gt;Windows Azure Marketplace DataMarketDataMarket&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure+Blobs" rel="tag"&gt;Windows Azure Blobs&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Amazon+S3" rel="tag"&gt;Amazon S3&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11646261-496394549611548406?l=oakleafblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oakleafblog.blogspot.com/feeds/496394549611548406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11646261&amp;postID=496394549611548406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/496394549611548406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/496394549611548406'/><link rel='alternate' type='text/html' href='http://oakleafblog.blogspot.com/2012/01/introducing-apache-hadoop-services-for.html' title='Introducing Apache Hadoop Services for Windows Azure'/><author><name>Roger Jennings (--rj)</name><uri>http://www.blogger.com/profile/01700526164060680385</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0GeAX5t9PtI/TocwxoAK69I/AAAAAAAAQos/p5d6F13mkiw/s220/OakLeafLogoMVP100px.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-myun72CXo84/TycRIdM6tyI/AAAAAAAAaN0/tx8jZrSRyx4/s72-c/image_thumb%25255B30%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11646261.post-8891267344813571530</id><published>2012-01-29T11:57:00.000-08:00</published><updated>2012-01-29T12:00:46.308-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows AppFabric'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop on Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Codename &quot;Cloud Numerics&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.NET Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Blob Storage Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Node.js'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Team Foundation Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><category scheme='http://www.blogger.com/atom/ns#' term='Astoria'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Table Storage Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows HPC Server 2008 R2'/><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Data Protocol'/><category scheme='http://www.blogger.com/atom/ns#' term='OData'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Windows Azure and Cloud Computing Posts for 1/27/2012+</title><content type='html'>&lt;p&gt;   &lt;table border="0" cellspacing="0" cellpadding="0" width="640"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="320"&gt;A compendium of Windows Azure, Service Bus, EAI &amp;amp; EDI Access Control, Connect, SQL Azure Database, and other cloud-computing articles. &lt;/td&gt;          &lt;td valign="top" width="320"&gt;&lt;img title="image222" border="0" alt="image222" align="right" src="http://lh5.ggpht.com/-OsoKl-OJ6tQ/TgtZhIThImI/AAAAAAAAMWc/azK-WT3s8xY/image2222.png?imgmax=800" width="291" height="47" /&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="image433" border="0" alt="image433" src="http://lh3.ggpht.com/-wfwZuoYbLys/TgtZhzIkKKI/AAAAAAAAMWg/XcCB0z8djPs/image4333.png?imgmax=800" width="640" height="270" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;• Updated&lt;/strong&gt; 1/29/2012 with new articles marked &lt;strong&gt;•&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a name="Top"&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/a&gt; This post is updated daily or more frequently, depending on the availability of new articles in the following sections:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="#BTQ"&gt;Windows Azure Blob, Drive, Table, Queue and Hadoop Services&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#SDS"&gt;SQL Azure Database, Federations and Reporting&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#OData"&gt;Marketplace DataMarket, Social Analytics and OData &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="#NET"&gt;Windows Azure Access Control, Service Bus, and Workflow&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#WAVN"&gt;Windows Azure VM Role, Virtual Network, Connect, RDP and CDN&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Live"&gt;Live Windows Azure Apps, APIs, Tools and Test Harnesses&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Light"&gt;Visual Studio LightSwitch and Entity Framework v4+&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Infra"&gt;Windows Azure Infrastructure and DevOps&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#WAPA"&gt;Windows Azure Platform Appliance (WAPA), Hyper-V and Private/Hybrid Clouds&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Security"&gt;Cloud Security and Governance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Events"&gt;Cloud Computing Events&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="#Other"&gt;Other Cloud Computing Platforms and Services&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;hr /&gt;  &lt;h4&gt;&lt;a name="BTQ"&gt;Azure Blob, Drive, Table, Queue and Hadoop Services&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;• &lt;/strong&gt;&lt;strong&gt;Avkash Chauhan&lt;/strong&gt; (@&lt;a href="http://twitter.com/avkashchauhan"&gt;avkashchauhan&lt;/a&gt;) described &lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/28/creating-your-own-hadoop-cluster-on-windows-azure-by-using-your-own-windows-azure-subscription-account.aspx"&gt;Creating your own Hadoop cluster on Windows Azure by using your own Windows Azure Subscription account&lt;/a&gt; in a 1/28/2012 post:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-dDQKlzmaCVQ/TyWk3tiHCgI/AAAAAAAAaLM/C0SPGAxmt0I/s1600-h/image%25255B48%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-34Bwyyv69GA/TyWk30aNmgI/AAAAAAAAaLU/3EuLjQOSR7s/image_thumb%25255B18%25255D.png?imgmax=800" width="65" height="62" /&gt;&lt;/a&gt;[The] Apache Hadoop distribution (currently in CTP) allows you to setup your own Hadoop cluster in Windows Azure cloud. This is article is written keeping those users in mind, who are very new to “Windows Azure” and “Hadoop on Windows Azure”. To have it running you would need the following:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://lh5.ggpht.com/-XcrQauXvPPQ/TyWk4FlndMI/AAAAAAAAaLc/tv59hJX42tY/s1600-h/image%25255B56%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-NOd1iW0RKQs/TyWk4e6FAjI/AAAAAAAAaLk/oB21qrP3W1U/image_thumb%25255B21%25255D.png?imgmax=800" width="160" height="27" /&gt;&lt;/a&gt;Active Windows Azure Subscription        &lt;ul&gt;         &lt;li&gt;Preconfigured Windows Azure Storage service&lt;/li&gt;          &lt;li&gt;About 16 available cores           &lt;ul&gt;             &lt;li&gt;You would need Extra Large instance – 8 Core for the head node&lt;/li&gt;              &lt;li&gt;The default installer creates 4 worker node each with medium instance – 2 core[s for] each medium instance&lt;/li&gt;              &lt;li&gt;So, to start the default creation, you would need 8 + 8 = 16 empty cores&lt;/li&gt;              &lt;li&gt;You &lt;strike&gt;sure&lt;/strike&gt; can change the number of worker node later to a desired number&lt;/li&gt;           &lt;/ul&gt;         &lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;The machine you will use to deploy IsotopeEMR mu&lt;u&gt;st&lt;/u&gt;&lt;strike&gt;ch&lt;/strike&gt; have direct connectivity to Azure Management Portal        &lt;ul&gt;         &lt;li&gt;You would need the management certificate thumbprint &lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-WSMW1pBVRkk/TyWk4wimRTI/AAAAAAAAaLs/Mn76Loc3NQk/s1600-h/image%25255B41%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-ZsHbt5JcoVE/TyWk54hVGuI/AAAAAAAAaL0/lvUhisC3VKw/image_thumb%25255B16%25255D.png?imgmax=800" width="163" height="42" /&gt;&lt;/a&gt;Get IsotopeEMR package and unzip it on your development machine which has connectivity to Azure Portal. After that edit IsotopEMR.exe.config as below:&lt;/p&gt;    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;SubscriptionId&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Your_Azure_Subscription_ID&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;StorageAccount&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot; Your_Azure_Storage_Key&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CertificateThumbprint&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot; Your_Azure_Management_Certificate_Thumbprint&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ServiceVersion&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CTP&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ServiceAccount&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UserName_To_Login_Cluster&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ServicePassword&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot; Password_To_Login_Cluster &amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;key&lt;/span&gt;=”&lt;span class="attr"&gt;DeploymentLocation&lt;/span&gt;” &lt;span class="attr"&gt;value&lt;/span&gt;=”&lt;span class="attr"&gt;Chooce_Any_Datacenter_location&lt;/span&gt;(&lt;span class="attr"&gt;Do_Not_Use_Any&lt;/span&gt;*)”&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;After that launch the following command:&lt;/p&gt;

  &lt;p&gt;&amp;gt;isotopeEMR prep&lt;/p&gt;

  &lt;p&gt;This command [will] access you[r] Windows Azure storage and drop the package which will be used to build you[r] head node and worker node machine within [the] Hadoop Cluster.&lt;/p&gt;

  &lt;pre&gt;C:\Azure\isotopeNew\isotopeEMR&amp;gt;isotopeemr prep&lt;br /&gt;PrepStorageService&lt;br /&gt;Done&lt;/pre&gt;

  &lt;p&gt;Once prep command is completed successfully now you can start the cluster creation. Try to consider a unique name for your cluster because this name will be used as &amp;lt;your_hadoop_cluster_name&amp;gt;.cloudapp.net. Now launch the following command to start the cluster creation:&lt;/p&gt;

  &lt;p&gt;&amp;gt;&amp;gt; isotopeEMR create hadoopultra&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/6607.hadoop121.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/400x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/6607.hadoop121.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Within a few seconds you will see a new service crated at your Windows Azure management portal as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4336.hadoop122.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4336.hadoop122.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;After a little while, you will see one full IIS Web Role as Headnode and 4 worker nodes are being created as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3276.hadoop123.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3276.hadoop123.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Then you will see some progress on your command windows as below explaining Bootstrapping is completed:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4314.hadoop124.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/400x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4314.hadoop124.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Now you will see “Creating VM” message on command prompt:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/2388.hadoop125.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/2388.hadoop125.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;.. which shows that your roles are initializing and all the nodes are starting…&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3426.hadoop126.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3426.hadoop126.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Finally you will see “Starting VM” message ….&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3051.hadoop127.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3051.hadoop127.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;And then you might find status showing “RoleStateUnknown” which is possible while your instance is getting ready:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4760.hadoop128.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4760.hadoop128.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;While looking at your Windows Azure Management portal you will see roles are in transitioning state:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/6378.hadoop129.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/6378.hadoop129.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;For those who are very well known to Windows Azure role status they may see the familiar ‘Busy” status..&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3617.hadoop130.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/3617.hadoop130.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Portal will back the command windows status as well:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/0636.hadoop131.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/0636.hadoop131.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Finally the command windows will show the Hadoop cluster creation is completed:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5700.hadoop132.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5700.hadoop132.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;And you will see all of you[r] roles are running fine in “Ready” state:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4786.hadoop133.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4786.hadoop133.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Now you can take a look [at your] Azure service details and you will find all the endpoint[s] in your service as well as how you &lt;strike&gt;use&lt;/strike&gt; access most of cluster functionalities which are available in any Hadoop cluster:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4034.hadoop134.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4034.hadoop134.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Now you can open your browser and open your service at &lt;a href="https://%3cyourservicename%3e.cloudapp.net/"&gt;https://&amp;lt;yourservicename&amp;gt;.cloudapp.net&lt;/a&gt;. Opening the page will ask you to enter credentials which you have used in IsotopeEMR.exe.config:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4186.hadoop135.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4186.hadoop135.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;And finally the web page will be open where you could explore all the Hadoop cluster management functions:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/7776.hadoop136.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/7776.hadoop136.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;In my next blog entry I will dig further and provide more info on how to use your cluster and run map/reduce jobs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don’t forget that 16 cores will cost you US$0.12 per hour each = US$1.92/hour = US$46.08/day. I ran up a US$75.00 bill trying to get Microsoft Codename “Cloud Numerics” to run a job on 18 cores. (See the &lt;a href="#Live"&gt;Live Windows Azure Apps, APIs, Tools and Test Harnesses&lt;/a&gt; section below for more details.)&lt;/p&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;• &lt;/strong&gt;&lt;strong&gt;Denny Lee&lt;/strong&gt; (@&lt;a href="http://twitter.com/dennylee"&gt;dennylee&lt;/a&gt;) described &lt;a href="http://dennyglee.com/2012/01/21/connecting-powerpivot-to-hadoop-on-azure-self-service-bi-to-big-data-in-the-cloud/"&gt;Connecting PowerPivot to Hadoop on Azure – Self Service BI to Big Data in the Cloud&lt;/a&gt; in a 1/21/2012 post (missed when published):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-i1uQ9t88HOA/TyWk6FEWy_I/AAAAAAAAaL8/SpR2a3qhxYc/s1600-h/image%25255B37%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-wLjGsAWQld8/TyWk6leVnJI/AAAAAAAAaME/0j3Nfy3zivk/image_thumb%25255B14%25255D.png?imgmax=800" width="61" height="66" /&gt;&lt;/a&gt;During the &lt;a href="http://www.sqlpass.org/summit/2011/Live/LiveStreaming/LiveStreamingWednesday.aspx"&gt;PASS 2011 Keynote&lt;/a&gt; (back in October 2011), I had the honor to demo Hadoop on Windows / Azure. One of the key showcases during that presentation was to show how to connect PowerPivot to Hadoop on Windows. In this post, I show the steps on how to connect PowerPivot to Hadoop on Azure.&lt;/p&gt;

  &lt;h5&gt;Pre-requisites&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://lh3.ggpht.com/-1wY8XmmLn3U/TyWk6zRKvtI/AAAAAAAAaMM/8MzE5D6gHt0/s1600-h/image%25255B45%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-B6oUO1byGOI/TyWk7Gtp-PI/AAAAAAAAaMU/kQT_H9vlz5A/image_thumb%25255B17%25255D.png?imgmax=800" width="163" height="42" /&gt;&lt;/a&gt;&lt;a href="http://powerpivot.com"&gt;PowerPivot for Excel&lt;/a&gt; (as of this post, using SQL Server 2012 RC1 version) &lt;/li&gt;

    &lt;li&gt;Access to &lt;a href="http://hadooponazure.com"&gt;Hadoop on Azure CTP&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Configuration Steps&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-fKYhNVVjbH4/TyWk7fi05OI/AAAAAAAAaMc/HolUOsd-L_k/s1600-h/image%25255B52%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-h_U3yW8JMrE/TyWk7iRrrcI/AAAAAAAAaMk/948CudKpqug/image_thumb%25255B20%25255D.png?imgmax=800" width="160" height="27" /&gt;&lt;/a&gt;&lt;strong&gt;1) Reference the following steps from &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/how-to-connect-excel-to-hadoop-on-azure-via-hiveodbc.aspx"&gt;How To Connect Excel to Hadoop on Azure via HiveODBC&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;The steps to follow are the:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Install the HiveODBC Driver (we will configure the DSN later) &lt;/li&gt;

    &lt;li&gt;Steps 1 – 3 from Using the Excel Hive Add-In to open the ports in Hadoop on Azure&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image7.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb7.png?w=428&amp;amp;h=343" width="428" height="343" /&gt;&lt;/a&gt;

    &lt;br /&gt;.

    &lt;br /&gt;.

    &lt;br /&gt;&lt;strong&gt;2) Create a Hive ODBC Data Source &amp;gt; File DSN&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Here, we will go about creating a File DSN Hive ODBC Data Source.&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Thanks to &lt;strong&gt;Andrew Brust (@andrewbrust)&lt;/strong&gt;, the better way to make a connection from PowerPivot to Hadoop on Azure is to create a File DSN. This allows the full connection string to be stored directly within the PowerPivot workbook instead of relying on an existing DSN.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;To do this:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Go to the &lt;strong&gt;ODBC Data Sources Administrator&lt;/strong&gt; and click on the &lt;strong&gt;File DSN&lt;/strong&gt; tab.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image8.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb8.png?w=325&amp;amp;h=297" width="325" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Click on &lt;strong&gt;Add, &lt;/strong&gt;Choose &lt;strong&gt;HIVE, &lt;/strong&gt;Click&lt;strong&gt; Next, &lt;/strong&gt;Click &lt;strong&gt;Browse&lt;/strong&gt; to choose a location of the file; click &lt;strong&gt;Finish&lt;/strong&gt;.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image9.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb9.png?w=325&amp;amp;h=258" width="325" height="258" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Open the File DSN you just created and click &lt;strong&gt;Configure&lt;/strong&gt;. The &lt;strong&gt;ODBC Hive Setup&lt;/strong&gt; and configure the host (e.g. [clustername].cloudapp.net) and authentication information (the username is what you had specified when you had created the cluster)&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image10.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb10.png?w=323&amp;amp;h=388" width="323" height="388" /&gt;&lt;/a&gt;

    &lt;br /&gt;.

    &lt;br /&gt;.

    &lt;br /&gt;&lt;strong&gt;3) Connect PowerPivot to Hadoop on Azure via the HiveODBC File DSN&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Open up the PowerPivot ribbon and click on the &lt;strong&gt;Get External Data from Other Sources&lt;/strong&gt;.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image11.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb11.png?w=287&amp;amp;h=160" width="287" height="160" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;From the &lt;strong&gt;Table Import Wizard&lt;/strong&gt;, click on the &lt;strong&gt;Others (OLEDB/ODBC) &lt;/strong&gt;and click&lt;strong&gt; Next.&lt;/strong&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image12.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb12.png?w=387&amp;amp;h=320" width="387" height="320" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;From here, click &lt;strong&gt;Build&lt;/strong&gt; and the &lt;strong&gt;Data Link Properties, &lt;/strong&gt;click on &lt;strong&gt;Provider&lt;/strong&gt;, and ensure the &lt;strong&gt;Microsoft OLEDB Provider for ODBC Drivers&lt;/strong&gt; is selected.&lt;strong&gt; &lt;/strong&gt;Click &lt;strong&gt;Next.&lt;/strong&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
    &lt;li&gt;In the &lt;strong&gt;Data Link Properties&lt;/strong&gt; dialog, choose “&lt;strong&gt;Use connection string&lt;/strong&gt;”, and click &lt;strong&gt;Build &lt;/strong&gt;and choose the File DSN you had created from Step #2. Enter in the password to your Hadoop on Azure cluster. Click OK.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image13.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb13.png?w=355&amp;amp;h=412" width="355" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;The &lt;strong&gt;Data Link Properties&lt;/strong&gt; now contains a &lt;em&gt;connection string&lt;/em&gt; do the Hadoop on Azure cluster.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image14.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb14.png?w=264&amp;amp;h=343" width="264" height="343" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;Note, after this dialog, verify that the password has been entered into the connection string that that has been built into the &lt;strong&gt;Table Import Wizard&lt;/strong&gt;. Note, the blue arrow points to a lack of a PWD=&amp;lt;password&amp;gt; clause. If the password isn’t specified, make sure to add it back in.&lt;/p&gt;

    &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image15.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb15.png?w=406&amp;amp;h=289" width="406" height="289" /&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;ul&gt;
    &lt;li&gt;Click OK, click Next. From here you will get the &lt;strong&gt;Table Import Wizard&lt;/strong&gt; and we are back to the usual PowerPivot steps.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
    &lt;li&gt;Click on “Select from a list of tables and views to choose the data to import”&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image16.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb16.png?w=258&amp;amp;h=308" width="258" height="308" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Choose your table (e.g. hivesampletable) and import the data in.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://dennyglee.files.wordpress.com/2012/01/image17.png"&gt;&lt;img title="image" border="0" alt="image" src="http://dennyglee.files.wordpress.com/2012/01/image_thumb17.png?w=437&amp;amp;h=338" width="437" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;It looks like a lot of steps but once you get into the flow of things, it’s actually a relatively easy flow.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;
  &lt;hr /&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bruce Kyle&lt;/strong&gt; explained &lt;a href="http://blogs.msdn.com/b/usisvde/archive/2012/01/27/how-to-choose-between-windows-azure-queues-windows-azure-service-bus-queues.aspx"&gt;How to Choose Between Windows Azure Queues, Windows Azure Service Bus Queues&lt;/a&gt; in a 1/27/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-vIlOba8qLXs/TyRY0IucjSI/AAAAAAAAZ_U/HjVEORO7lTE/s1600-h/image%25255B82%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-P4kaDI7kj58/TyRY0bcjQjI/AAAAAAAAZ_c/j7HBIxcvAEk/image_thumb%25255B27%25255D.png?imgmax=800" width="53" height="66" /&gt;&lt;/a&gt;One of the key patterns in building scalable applications is queues. Let’s say you have a Website or Web Service (in your Web Role) that responds quickly to a user request, but there’s another process that takes longer. It might be a long data base inquiry or video encoding or extensive calculation would be in a Worker Role. You may want to spin up more processors to work on those long term items too. The way the Web Role talks to your Worker Role is through queues.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;You could choose Windows Azure Queues as a dedicated queue storage mechanism built on top of the Windows Azure storage services. You add an item on the queue, and the Worker Role checks the queue and performs the work.&lt;/p&gt;

  &lt;p&gt;Of you might choose to use a Service Bus Queue when you want to run process messages in a particular order (guaranteed first-in-first-out. Or maybe you need to hold the item in a queue and store it for a while. Or maybe you need automatic duplicate detection.&lt;/p&gt;

  &lt;p&gt;A new article on MSDN analyzes the differences and similarities between the two types of queues offered by &lt;a href="http://windowsazure.com"&gt;Windows Azure&lt;/a&gt; today.&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Windows Azure Queues. &lt;/li&gt;

    &lt;li&gt;Windows Azure Service Bus Queues. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;The article helps you compare and contrast the respective technologies and be able to make a more informed decision about which solution best meets your needs.&lt;/p&gt;

  &lt;p&gt;While both queuing technologies exist concurrently, Windows Azure Queues were introduced first, as a dedicated queue storage mechanism built on top of the Windows Azure storage services. Service Bus Queues, introduced with the latest release of the Service Bus, are built on top of the broader “brokered messaging” infrastructure designed to integrate applications or application components that may span multiple communication protocols, data contracts, trust domains, and/or network environments.&lt;/p&gt;

  &lt;p&gt;See &lt;a href="http://msdn.microsoft.com/en-us/library/hh767287(VS.103).aspx"&gt;Windows Azure Queues and Windows Azure Service Bus Queues - Compared and Contrasted&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;The article describes scenarios and does a feature by feature comparison.&lt;/p&gt;

  &lt;h5&gt;About Queuing in Windows Azure&lt;/h5&gt;

  &lt;p&gt;Both Windows Azure Queues and Service Bus Queues are implementations of the message queuing service currently offered on Windows Azure. Each has a slightly different feature set, which means you can choose one or the other, or use both, depending on the needs of your particular solution or business/technical problem you are solving.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Windows Azure Queues&lt;/strong&gt;, which are part of the &lt;a href="http://www.windowsazure.com/en-us/home/tour/storage"&gt;Windows Azure storage&lt;/a&gt; infrastructure, feature a simple REST-based Get/Put/Peek interface, providing reliable, persistent messaging within and between services.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Service Bus Queues&lt;/strong&gt; are part of a broader &lt;a href="http://www.windowsazure.com/en-us/home/tour/service-bus/"&gt;Windows Azure messaging&lt;/a&gt; infrastructure that supports queuing as well as publish/subscribe, Web service remoting, and integration patterns.&lt;/p&gt;

  &lt;h5&gt;In the Article&lt;/h5&gt;

  &lt;p&gt;Compares Windows Azure Queues and Service Bus Queues:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Ordering guarantee &lt;/li&gt;

    &lt;li&gt;Delivery guarantee &lt;/li&gt;

    &lt;li&gt;Transaction support &lt;/li&gt;

    &lt;li&gt;Receive behavior &lt;/li&gt;

    &lt;li&gt;Receive mode &lt;/li&gt;

    &lt;li&gt;Exclusive access mode &lt;/li&gt;

    &lt;li&gt;Lease/Lock duration and granularity &lt;/li&gt;

    &lt;li&gt;Batched send and receive &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Overviews&lt;/h5&gt;

  &lt;h5&gt;Service Bus Queues&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-862T"&gt;Building loosely-coupled apps with Windows Azure Service Bus Topics and Queues (video)&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/appfabric/archive/2011/05/17/an-introduction-to-service-bus-queues.aspx"&gt;An Introduction to Service Bus Queues&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh689723(VS.103).aspx"&gt;Creating Applications that Use Service Bus Queues&lt;/a&gt; in &lt;a href="http://msdn.microsoft.com/en-us/library/gg456500.aspx"&gt;Windows Azure Developer Guidance&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh699844(VS.103).aspx"&gt;Creating Applications that Use Service Bus Topics and Subscriptions&lt;/a&gt; in &lt;a href="http://msdn.microsoft.com/en-us/library/gg456500.aspx"&gt;Windows Azure Developer Guidance&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Windows Azure Queues&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd179363.aspx"&gt;Queue Service REST API&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/gg271294"&gt;Exercise 3: Working with Queues&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Getting Started with Code&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=8396"&gt;Windows Azure Training Kit - December Refresh&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Nuno Godinho&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/NunoGodinho"&gt;NunoGodinho&lt;/a&gt;) described &lt;a href="http://acloudyplace.com/2012/01/8-essential-best-practices-in-windows-azure-blob-storage/"&gt;8 Essential Best Practices in Windows Azure Blob Storage&lt;/a&gt; in a 1/27/20 post to Red Gate Software’s ACloudyPlace blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-nlnVWZNWsmM/TyRY0nHw8JI/AAAAAAAAZ_k/g8k5pfMeIJ0/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-DT6HryxYVzA/TyRY02aDGoI/AAAAAAAAZ_s/e85clvR-N7E/image_thumb%25255B3%25255D.png?imgmax=800" width="65" height="64" /&gt;&lt;/a&gt;The Windows Azure platform has been growing rapidly, both in terms of functionality and number of active users. Key to this growth is Windows Azure Storage, which allows users to store several different types of data for a very low cost. However, this is not the only benefit as it also provides a means to auto scale data to deliver seamless availability with minimal effort.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Windows Azure Storage provides a way to store 3 types of data:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Files, inside Blob Storage ( as either Block or Page Blobs) &lt;/li&gt;

    &lt;li&gt;Data, inside Table Storage &lt;/li&gt;

    &lt;li&gt;Messages, inside Queue Storage &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Additionally, the Cloud Drive (a special form of ‘Blob’) provides a means to store NTFS VHDs inside Blob Storage; however, this won’t be covered in this article.&lt;/p&gt;

  &lt;p&gt;When using Windows Azure Storage, users are billed for 3 components: traffic (outbound), storage space and transactions (operations performed on storage contents). All of these influence the costs and the availability of the contents. Throughout this article I’ll discuss 8 essential best practices to support you in maintaining and controlling both cost and availability. In this article I’ll look only at the best practices for the Public Containers inside Blob Storage and in future articles we’ll talk about the other types of storage.&lt;/p&gt;

  &lt;h5&gt;Best Practices for Blob Storage&lt;/h5&gt;

  &lt;p&gt;&lt;strong&gt;1. Always define content-type of each element&lt;/strong&gt; 

    &lt;br /&gt;It’s crucial to correctly define the content type of each Storage Blob in order for the client to correctly handle the contents being sent. 

    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;2. Always define the Cache-Control header for each element&lt;/strong&gt; 

    &lt;br /&gt;The Cache-Control header is very important as it allows you to improve the availability of a Blob and at the same time decrease significantly the number of transactions that are made in each storage control. For example, imagine you have a static website placed inside the Blob Storage, if the Cache-Control header is configured correctly; the cache can be placed on the client-side in order to decrease the traffic being served as the Blob already exists on the client side. 

    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;3. Always upload contents to Blob Storage in parallel&lt;/strong&gt; 

    &lt;br /&gt;Uploading contents data to Blob Storage can be time consuming. Obviously, performance depends on the volume of data being sent, however it is possible to perform this operation faster by uploading data in parallel, which is supported by both Page and Block Blobs (I’ll discuss these below). This way you can reduce the amount of time needed to upload Blob contents. For example, I uploaded 70GB of data to Windows Azure Storage the other day using a third-party tool, and suddenly it was telling me that it would take over 1700 hours to complete! However, when I performed a parallel upload, I was able to upload everything in just approximately 8 hours. 

    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;4. Choose the right type of Blob&lt;/strong&gt; 

    &lt;br /&gt;Windows Azure Blob Storage comes in two varieties: Block and Page Blobs, both with differing characteristics. It is crucial to select the correct type of Blob in order to get the best results. Choose Block Blob if you want to stream your contents, as it can be consumed in blocks, rendering it easier and simpler for streaming solutions; it’s also crucial to parallel the upload and downloads of those blobs. Choose Page Blob if you need to write intensively to the Blob; for example a VHD (Cloud Drive is a Page Blob), as Page Blobs allow you to write to a particular part, or ‘page’ of the Blob. As a result this leaves all other contents unaffected if they are being accessed. 

    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;5. Use ‘Get Blob Properties’ or ‘Get Blob Metadata’ whenever you only need that specific information&lt;/strong&gt; 

    &lt;br /&gt;Blobs have distinct information in properties and metadata. Properties are defined by default by Windows Azure, and Metadata are additional properties you can add to the Blob. In order to avoid unnecessary usage of the Blob, use the correct GET method, as well as not getting the entire Blob if we only require its metadata or property information. 

    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;6. Take snapshots to improve availability and caching&lt;/strong&gt; 

    &lt;br /&gt;To increase the availability of Storage Blobs, it’s possible to create a snapshot of the Blob. This will allow you to have a kind of ‘copy’ of the Blob without needing to pay extra for it, as long as the snapshot does not differ from the original. Consequently snapshots may be used to increase the availability of the system since we can have several ‘copies’ of the same Blob and serve them to the customer. Furthermore, and more importantly snapshots may be used as a way to improve availability by assigning them as the default Storage Blob to be accessed by all clients performing read operations, leaving the original Blob only for writes. Overall snapshots allow the user to perform caching of data at the Blob level, thus increasing the availability of the Blob. 

    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;7. Enable the ‘Content Delivery Network’ for better availability&lt;/strong&gt; 

    &lt;br /&gt;Another very important part of improving availability and reducing latency is the usage of the Content Delivery Network (CDN). The CDN reduces latency and increases availability by placing a duplicate of your Blob closer to the client. Accordingly each client is redirected to the closest CDN node, of the Blobs. It is important to note that since a copy of the Blob will be placed on a CDN Node closest to the client, the costs will increase, however you will not be charged for Storage transaction costs for each client access to the Blob since the client is hitting the CDN node and not the Storage. This happens because the “copy” already exists in the CDN. But let’s explain this more in terms of cost when using CDN. Once you enable CDN your blob will be automatically replicated to all CDN nodes, so there will be costs in terms of Storage Transactions and Transfer (From Storage to each CDN node) since the blob is being downloaded, but after that every client that accesses it will be served with the “copy” that exists in the CDN node closest to him. Only Traffic costs will be charged due to the download. The process will restart once the “copy” that exists in the CDN node expires due to the TTL.&lt;/p&gt;

  &lt;p&gt;Quick Note: CDN is in Windows Azure Storage and is only available for public containers, so the process will be different for private containers. 
    &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;8. Serve static contents directly from Blob Storage&lt;/strong&gt; 

    &lt;br /&gt;Windows Azure Blob Storage is ideal for hosting static websites, since it doesn’t require any scaling work in order to improve availability, because this will be done automatically by the platform. It’s also possible to reduce your costs if the best practices presented previously are followed. Consequently this is an effective and economical way to host a static website.&lt;/p&gt;

  &lt;h5&gt;Summary&lt;/h5&gt;

  &lt;p&gt;In summary, how Blob Storage is managed is a very important consideration while using Windows Azure as it not only provides storage, but also delivers better availability through an auto scaling environment. Blob Storage also allows you to focus on your applications and data as opposed to infrastructure, and even provides a way to host simple or, static websites in a very cost effective manner.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Full disclosure&lt;/strong&gt;: I’m a paid contributor to ACloudyPlace.com&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Avkash Chauhan&lt;/strong&gt; (@&lt;a href="http://twitter.com/avkashchauhan"&gt;avkashchauhan&lt;/a&gt;) described &lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/27/setting-windows-amazon-s3-s3-as-data-source-directly-at-hadoop-on-azure-hadooponazure-com-portal.aspx"&gt;Setting Windows Amazon S3 (s3n://) as data source directly at Hadoop on Azure (hadooponazure.com) portal&lt;/a&gt; in a 1/27/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-hGiazm3AF1M/TyRY1VkgVpI/AAAAAAAAZ_0/llGlR0-d0Zc/s1600-h/image%25255B22%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-dPxEt9yx7Uc/TyRY1kmBbnI/AAAAAAAAZ_8/4MuwD7LJyL4/image_thumb%25255B7%25255D.png?imgmax=800" width="65" height="62" /&gt;&lt;/a&gt;To get your Amazon S3 account setup with Apache Hadoop cluster on Windows Azure you just need your AWS security credentials, which pretty much look like as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/6622.hadoop111.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/6622.hadoop111.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-NFrTvqLH_Qs/TyRY17dz4sI/AAAAAAAAaAE/3g6jNyY3PUw/s1600-h/image_thumb3_thumb%25255B10%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh3.ggpht.com/-HE_RUFcd4a4/TyRY2MKWvFI/AAAAAAAAaAM/sPD_89MYlBc/image_thumb3_thumb_thumb%25255B2%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;After you completed creating Hadoop cluster in Windows Azure, you can log into your Hadoop Portal. In the portal, you can select “Manage Data” tile as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/0830.hadoop112.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/0830.hadoop112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-KtanQkr7bDI/TyRY2e0ZKkI/AAAAAAAAaAU/FtbnWzW-iEw/s1600-h/image%25255B30%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/--C2qDhA4eEI/TyRY2l65BjI/AAAAAAAAaAc/SLWyW56H_YM/image_thumb%25255B9%25255D.png?imgmax=800" width="160" height="62" /&gt;&lt;/a&gt;On the next screen you can select:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;“Set up ASV” to set your Windows Azure Blob Storage as data source &lt;/li&gt;

    &lt;li&gt;“Set up S3” to set your Amazon S3 Storage as data source &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5125.hadoop113.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5125.hadoop113.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;When you select “Set up S3”, in the next screen you would need to enter your Amazon S3 credentials as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4606.hadoop114.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/4606.hadoop114.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;After you select “Save Settings”, if you Amazon S3 Storage credentials are correct you will get the following message:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/1057.hadoop115.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/1057.hadoop115.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Now your Amazon S3 Storage is set up to use with Interactive JavaScript shell or you can remote into your cluster to access from there as well. You can test it directly at from Hadoop Command shell in your cluster as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/1121.hadoop116.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/1121.hadoop116.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Just to verify you can look your Amazon S3 storage in any S3 explorer tool as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5417.hadoop117.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5417.hadoop117.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Note: If you really want to know how Amazon S3 Storage was configured with Hadoop cluster, it was done by adding proper Amazon S3 Storage credentials into core-site.xml as below (Open C:\Apps\Dist\conf\core-site.xml you will see the following parameters related with Amazon S3 Storage access from Hadoop Cluster):&lt;/p&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml-stylesheet&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/xsl&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;configuration.xsl&amp;quot;&lt;/span&gt;?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="rem"&gt;&amp;lt;!-- Put site-specific property overrides in this file. --&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;hadoop.tmp.dir&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;/hdfs/tmp&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;A base for other temporary directories.&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;description&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;fs.default.name&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;hdfs://10.26.104.57:9000&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;io.file.buffer.size&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;131072&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;fs.s3n.awsAccessKeyId&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;YOUR_S3_ACCESS_KEY&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;fs.s3n.awsSecretAccessKey&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; YOUR_S3_SECRET_KEY &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;property&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

  &lt;p&gt;Resources:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/apache-hadoop-on-windows.aspx"&gt;Apache Hadoop on Windows Azure Technet WiKi&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;The &lt;strong&gt;Datanami Team&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/datanami"&gt;datanami&lt;/a&gt;) reported &lt;a href="http://www.datanami.com/datanami/2012-01-27/hadoop_events_crowd_2012_calendar.html"&gt;Hadoop Events Crowd 2012 Calendar&lt;/a&gt; on 1/27/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-q-HGi09oljg/TyRY2wpnzDI/AAAAAAAAaAk/MV9JNK6V1dE/s1600-h/image%25255B57%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-w4qBQm7mEl4/TyRY3ODQ__I/AAAAAAAAaAs/HcZZ5ZXiZZM/image_thumb%25255B19%25255D.png?imgmax=800" width="65" height="41" /&gt;&lt;/a&gt;If this is indeed the “year of Hadoop” then it’s only fitting that the technology events lineup for the year is going to focus on the big data platform. While few events can match the size and scope of Hadoop World, a number of events are cropping up to offer training, user experiences and of course, plenty of excited vendor chatter.&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: inline; float: right" alt="" align="right" src="http://media2.hpcwire.com/datanami/hadoopsumfront.jpg" width="219" height="219" /&gt;And speaking of Hadoop World, this week quite a bit of buzz was generated when Cloudera &lt;a href="http://www.marketwatch.com/story/cloudera-teams-with-oreilly-media-to-merge-hadoop-world-and-strata-conferences-2012-01-23"&gt;announced&lt;/a&gt; that it would be partnering with O’Reilly media to take over the Hadoop World franchise. The popular event, which sold out completely in 2011, will now be a featured part of the overall program at the 2012 Strata Conference, set to take place in October in New York.&lt;/p&gt;

  &lt;p&gt;For those who fail in scrambling for early tickets to the Hadoop World event, never fear—a host of other events promise some fulfilling sessions on all aspects of Hadoop. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-zBljEbwItD0/TyRY3QlyriI/AAAAAAAAaA0/GElq1T8H0Wo/s1600-h/image_thumb3_thumb%25255B14%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh5.ggpht.com/-EE1tjuGAs7w/TyRY3i36bYI/AAAAAAAAaA8/LuVvtoEVgOA/image_thumb3_thumb_thumb%25255B3%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;For instance, in the near term, those in the Denver area will be pleased to hear about a &lt;a href="http://www.cloudera.com/company/events/hadoop-and-big-data-seminar-denver/#agenda"&gt;free seminar&lt;/a&gt; on February 2, sponsored by Dell and Cloudera that covers Hadoop and big data. The day-long event features an introduction to Hadoop tutorial for the morning, followed by sessions from Doug Cutting, Apache Chairman and co-founder of Hadoop, Cloudera’s CEO and co-founder, Mike Olson, Matt Newom from Dell and speakers from Comcast to offer a user view of how Hadoop is being used to manage next-generation video capabilities.&lt;/p&gt;

  &lt;p&gt;Also around the corner is the &lt;a href="http://strataconf.com/strata2012/public/schedule/detail/22360"&gt;O’Reilly Strata Conference&lt;/a&gt; from February 28-March 1 in Santa Clara, CA. While this is not the Hadoop World event by any means, the lineup for this event puts great emphasis on big data and its enabling technologies, both on the user group and session side. Those present will hear from vendors, including HPCC Systems, Cloudera, MarkLogic, Microsoft and others and can find deep-dive sessions on Hadoop and all of its many moving parts (Pig, HBase, HDFS and so on).&lt;/p&gt;

  &lt;p&gt;March is a big month for Hadoop conference, with the &lt;a href="http://event.gigaom.com/structuredata/"&gt;Structure&lt;/a&gt; event from GigaOm taking over New York for two days. While the emphasis here is on big data generally, the role of the Hadoop ecosystem is expected to be of great importance.&lt;/p&gt;

  &lt;p&gt;Additionally, &lt;a href="http://summit.hortonworks.com/"&gt;Hadoop Summit 2012&lt;/a&gt;, which is sponsored by Hortonworks and Yahoo, will be coming to Silicon Valley for two days in mid-June. According to organizers, the event will outline the evolution of Hadoop into a next-generation data platform by featuring presentations from the developer, administrator and user ends of the Hadoop spectrum.&lt;/p&gt;

  &lt;p&gt;The program currently is set to contain over 60 sessions with six separate tracks backed by case studies, user experiences, and technology insights from developers and administrators. The organizers say the tracks will cover the future of Hadoop; deployment and operations; enterprise data architecture; applications and data science; and a track dedicated to “Hadoop in Action” featuring examples of how the platform is being leveraged in a number of settings.&lt;/p&gt;

  &lt;p&gt;Hadoop Summit 2012 will also feature a Hadoop training and certification program offered by Hortononworks, which will take place during the same week as the summit.&lt;/p&gt;

  &lt;p&gt;Also during the same week, Cloudera will be taking advantage of the interested crowd in town for the conference with its own week full of &lt;a href="http://www.cloudera.com/company/events/cloudera-training-surrounding-hadoop-summit/"&gt;training sessions&lt;/a&gt;, including a developer “bootcamp” and Hadoop training programs for managers and administrators. The Cloudera training week also will include Cloudera training for Hive, Pig and HBase as well as exam possibilities for those seeking to become Cloudera Certified Developers and Cloudera Certified Administrators.&lt;/p&gt;

  &lt;p&gt;More events will emerge as the year goes on and of course, this is a small sampling of what’s available. We’ll do our best to keep you up to date via our &lt;a href="http://www.datanami.com/events/topic/dnmevents"&gt;events listings&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Edd Dumbill&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/edd"&gt;edd&lt;/a&gt;) asserted “Hadoop is a central part of Microsoft's data strategy” in an introduction to his &lt;a href="http://radar.oreilly.com/2012/01/microsoft-big-data.html"&gt;Microsoft's plan for Hadoop and big data&lt;/a&gt; post of 1/25/2012 to the O’Reilly Radar blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-OC2YKFJMQm4/TyRY31QdtoI/AAAAAAAAaBE/qs52Yu5TZRo/s1600-h/image%25255B88%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-g9XJjG-4PgU/TyRY4MJ3IAI/AAAAAAAAaBM/Okmo_-raR3Y/image_thumb%25255B29%25255D.png?imgmax=800" width="47" height="66" /&gt;&lt;/a&gt;Microsoft has placed &lt;a href="http://hadoop.apache.org/"&gt;Apache Hadoop&lt;/a&gt; at the core of its big data strategy. It's a move that might seem surprising to the casual observer, being a somewhat enthusiastic adoption of a significant open source product.&lt;/p&gt;

  &lt;p&gt;The reason for this move is that Hadoop, by its sheer popularity, has become the de facto standard for distributed data crunching. By embracing Hadoop, Microsoft allows its customers to access the rapidly-growing Hadoop ecosystem and take advantage of a growing talent pool of Hadoop-savvy developers.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-mpWRlLyyxDQ/TyRY4IMuPwI/AAAAAAAAaBU/ZXFRsosx9wQ/s1600-h/image_thumb3_thumb%25255B22%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh3.ggpht.com/-Q3ANaAI5mqs/TyRY4bwJFRI/AAAAAAAAaBc/J96ePU_VZf0/image_thumb3_thumb_thumb%25255B5%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;Microsoft's goals go beyond integrating Hadoop into Windows. It intends to contribute the adaptions it makes back to the Apache Hadoop project, so that anybody can run a purely open source Hadoop on Windows.&lt;/p&gt;

  &lt;h5&gt;Microsoft's Hadoop distribution&lt;/h5&gt;

  &lt;p&gt;The Microsoft &lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/business-intelligence/big-data-solution.aspx"&gt;distribution of Hadoop&lt;/a&gt; is currently in &amp;quot;Customer Technology Preview&amp;quot; phase. This means it is undergoing evaluation in the field by groups of customers. The expected release time is toward the middle of 2012, but will be influenced by the results of the technology preview program.&lt;/p&gt;

  &lt;p&gt;Microsoft's Hadoop distribution is usable either on-premise with Windows Server, or in Microsoft's cloud platform, Windows Azure. The core of the product is in the MapReduce, HDFS, Pig and Hive components of Hadoop. These are certain to ship in the 1.0 release.&lt;/p&gt;

  &lt;p&gt;As Microsoft's aim is for 100% Hadoop compatibility, it is likely that additional components of the Hadoop ecosystem such as Zookeeper, HBase, HCatalog and Mahout will also be shipped.&lt;/p&gt;

  &lt;p&gt;Additional components integrate Hadoop with Microsoft's ecosystem of business intelligence and analytical products:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Connectors for Hadoop, integrating it with SQL Server and SQL Sever Parallel Data Warehouse. &lt;/li&gt;

    &lt;li&gt;An ODBC driver for Hive, permitting any Windows application to access and run queries against the Hive data warehouse. &lt;/li&gt;

    &lt;li&gt;An Excel Hive Add-in, which enables the movement of data directly from Hive into Excel or PowerPivot. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;On the back end, Microsoft offers Hadoop performance improvements, integration with Active Directory to facilitate access control, and with System Center for administration and management.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/business-intelligence/big-data-solution.aspx"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="How Hadoop integrates with the Microsoft ecosystem" src="http://radar.oreilly.com/2012/01/25/0112-ms-hadoop.png" width="560" height="377" /&gt;&lt;/a&gt; 

    &lt;br /&gt;&lt;em&gt;How Hadoop integrates with the Microsoft ecosystem. (Source: &lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/business-intelligence/big-data-solution.aspx"&gt;microsoft.com&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;

  &lt;h5&gt;Developers, developers, developers&lt;/h5&gt;

  &lt;p&gt;One of the most interesting features of Microsoft's work with Hadoop is the addition of a JavaScript API. Working with Hadoop at a programmatic level can be tedious: this is why higher-level languages such as Pig emerged.&lt;/p&gt;

  &lt;p&gt;Driven by its focus on the software developer as an important customer, Microsoft chose to add a &lt;a href="http://strataconf.com/strata2012/public/schedule/detail/22669"&gt;JavaScript layer&lt;/a&gt; to the Hadoop ecosystem. Developers can use it to create MapReduce jobs, and even interact with Pig and Hive from a browser environment.&lt;/p&gt;

  &lt;p&gt;The real advantage of the JavaScript layer should show itself in integrating Hadoop into a business environment, making it easy for developers to create intranet analytical environments accessible by business users. Combined with Microsoft's focus on bringing server-side JavaScript to Windows and Azure &lt;a href="http://www.zdnet.com/blog/microsoft/microsoft-joyent-deliver-first-stable-build-of-nodejs-on-windows/11178"&gt;through Node.js&lt;/a&gt;, this gives an interesting glimpse into Microsoft's view of where developer enthusiasm and talent will lie.&lt;/p&gt;

  &lt;p&gt;It's also good news for the broader Hadoop community, as Microsoft intends to contribute its JavaScript API to the Apache Hadoop open source project itself.&lt;/p&gt;

  &lt;p&gt;The other half of Microsoft's software development environment is of course the .NET platform. With Microsoft's Hadoop distribution, it will be possible to create MapReduce jobs from .NET, though using the Hadoop APIs directly. It is likely that higher-level interfaces will emerge in future releases. The same applies to Visual Studio, which over time will get increasing levels of Hadoop project support.&lt;/p&gt;

  &lt;h5&gt;Streaming data and NoSQL&lt;/h5&gt;

  &lt;p&gt;Hadoop covers part of the big data problem, but what about streaming data processing or NoSQL databases? The answer comes in two parts, covering existing Microsoft products and future Hadoop-compatible solutions.&lt;/p&gt;

  &lt;p&gt;Microsoft has some established products: Its streaming data solution called &lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/business-intelligence/complex-event-processing.aspx"&gt;StreamInsight&lt;/a&gt;, and for NoSQL, Windows Azure has a product called &lt;a href="http://www.windowsazure.com/en-us/home/tour/storage/"&gt;Azure Tables&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;Looking to the future, the commitment of Hadoop compatibility means that streaming data solutions and NoSQL databases designed to be part of the Hadoop ecosystem should work with the Microsoft distribution — HBase itself will ship as a core offering. It seems likely that solutions such as &lt;a href="http://incubator.apache.org/s4/"&gt;S4&lt;/a&gt; will prove compatible.&lt;/p&gt;

  &lt;h5&gt;Toward an integrated environment&lt;/h5&gt;

  &lt;p&gt;Now that Microsoft is on the way to integrating the major components of big data tooling, does it intend to join it all together to provide an integrated data science platform for businesses?&lt;/p&gt;

  &lt;p&gt;That's certainly the vision, according to Madhu Reddy, senior product planner for Microsoft Big Data: &amp;quot;Hadoop is primarily for developers. We want to enable people to use the tools they like.&amp;quot;&lt;/p&gt;

  &lt;p&gt;The strategy to achieve this involves entry points at multiple levels: for developers, analysts and business users. Instead of choosing one particular analytical platform of choice, Microsoft will focus on interoperability with existing tools. Excel is an obvious priority, but other tools are also important to the company.&lt;/p&gt;

  &lt;p&gt;According to Reddy, data scientists represent a spectrum of preferences. While Excel is a ubiquitous and popular choice, other customers use Matlab, SAS, or R, for example.&lt;/p&gt;

  &lt;h5&gt;The data marketplace&lt;/h5&gt;

  &lt;p&gt;One thing unique to Microsoft as a big data and cloud platform is its data market, &lt;a href="https://datamarket.azure.com/"&gt;Windows Azure Marketplace&lt;/a&gt;. Mixing external data, such as geographical or social, with your own, can generate revealing insights. But it's hard to find data, be confident of its quality, and purchase it conveniently. That's where data marketplaces meet a need.&lt;/p&gt;

  &lt;p&gt;The availability of the Azure marketplace integrated with Microsoft's tools gives analysts a ready source of external data with some guarantees of quality. Marketplaces are in their infancy now, but will play a &lt;a href="http://radar.oreilly.com/2011/12/5-big-data-predictions-2012.html"&gt;growing role&lt;/a&gt; in the future of data-driven business.&lt;/p&gt;

  &lt;h5&gt;Summary&lt;/h5&gt;

  &lt;p&gt;The Microsoft approach to big data has ensured the continuing relevance of its Windows platform for web-era organizations, and makes its cloud services a competitive choice for data-centered businesses.&lt;/p&gt;

  &lt;p&gt;Appropriately enough for a company with a large and diverse software ecosystem of its own, the Microsoft approach is one of interoperability. Rather than laying out a golden path for big data, as suggested by the appliance-oriented approach of others, Microsoft is focusing heavily on integration.&lt;/p&gt;

  &lt;p&gt;The guarantee of this approach lies in Microsoft's choice to embrace and work with the Apache Hadoop community, enabling the migration of new tools and talented developers to its platform.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Michael Kopp&lt;/strong&gt; posted &lt;a href="http://blog.dynatrace.com/2012/01/25/about-the-performance-of-map-reduce-jobs/"&gt;About the Performance of Map Reduce Jobs&lt;/a&gt; to the DynaTrace blog on 1/25/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-xfk1ZJvGtEg/TyRY4kWNzcI/AAAAAAAAaBk/jLtBaVDg364/s1600-h/image%25255B16%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-EX9NoP9fQ40/TyRY45Cc5DI/AAAAAAAAaBs/V8EWMno9Yy4/image_thumb%25255B5%25255D.png?imgmax=800" width="52" height="66" /&gt;&lt;/a&gt;One of the big topics in the BigData community is Map/Reduce. There are a lot of good blogs that explain what Map/Reduce does and how it works logically, so I won’t repeat it (look &lt;a href="http://developer.yahoo.com/hadoop/tutorial/module4.html"&gt;here&lt;/a&gt;, &lt;a href="http://ayende.com/blog/4435/map-reduce-a-visual-explanation"&gt;here&lt;/a&gt; and &lt;a href="http://ksat.me/map-reduce-a-really-simple-introduction-kloudo/"&gt;here&lt;/a&gt; for a few). Very few of them however explain the technical flow of things, which I at least need, to understand the performance implications. You can always throw more hardware at a map reduce job to improve the overall time. I don’t like that as a general solution and many Map/Reduce programs can be optimized quite easily, if you know what too look for. And optimizing a large map/reduce jobs can be instantly translated into ROI!&lt;/p&gt;

  &lt;h5&gt;The Word Count Example&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-CdqW1arVH0Q/TyRY5LH1jpI/AAAAAAAAaB0/MuCboKRPgUs/s1600-h/image_thumb3_thumb%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh5.ggpht.com/-8J9eNYCIx2Q/TyRY5QQnB1I/AAAAAAAAaB8/LdexozbUPmI/image_thumb3_thumb_thumb%25255B1%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;I went over some blogs and tutorials about performance of Map/Reduce. &lt;a href="http://www.cloudera.com/blog/2009/12/7-tips-for-improving-mapreduce-performance/"&gt;Here&lt;/a&gt; is one that I liked. While there are a lot of good tips out there, none, except the one mentioned, talk about the Map/Reduce program itself. Most dive right into the various hadoop options to improve distribution and utilization. While this is important, I think we should start the actual problem we try to solve, that means the Map/Reduce Job.&lt;/p&gt;

  &lt;p&gt;To make things simple I am using Amazons Elastic Map Reduce. In my setup I started a new Job Flow with multiple steps for every execution. The Job Flow consisted of one master node and two task nodes. All of them were using the Small Standard instance.&lt;/p&gt;

  &lt;p&gt;While AWS Elastic Map/Reduce has its drawbacks in terms of startup and file latency (Amazon S3 has a high volatility), it is a very easy and consistent way to execute Map/Reduce jobs without needing to setup your own hadoop cluster. And you only pay for what you need! I started out with the word count example that you see in every map reduce documentation, tutorial or Blog. The result of the job always produces files that look something like this:&lt;/p&gt;

  &lt;p&gt;the: 5967 
    &lt;br /&gt;all: 611 

    &lt;br /&gt;a: 21586&lt;/p&gt;

  &lt;p&gt;That idea is to count the occurrence of every word in a large number of text files. I processed around 30 files totaling somewhere around 200MB in size. I ran the original python version and then made a very small change to it. Without touching the configuration of hadoop I cut the execution time in half:&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;The Original Code:&lt;/strong&gt;&lt;/p&gt;

  &lt;pre&gt;&lt;code&gt;#!/usr/bin/python
import sys
import re
def main(argv):
  line = sys.stdin.readline()
  pattern = re.compile(&amp;quot;[a-zA-Z][a-zA-Z0-9]*&amp;quot;)
  try:
    while line:
      for word in pattern.findall(line):
        print &amp;quot;LongValueSum:&amp;quot; + word.lower() + &amp;quot;\t&amp;quot; + &amp;quot;1&amp;quot;
      line = sys.stdin.readline()
  except &amp;quot;end of file&amp;quot;:
    return None
if __name__ == &amp;quot;__main__&amp;quot;:
  main(sys.argv)&lt;/code&gt;&lt;/pre&gt;

  &lt;p&gt;&lt;strong&gt;The Optimized Code:&lt;/strong&gt;&lt;/p&gt;

  &lt;pre&gt;&lt;code&gt;#!/usr/bin/python
import sys
import re
def main(argv):
  line = sys.stdin.readline()
  pattern = re.compile(&amp;quot;[a-zA-Z][a-zA-Z0-9]*&amp;quot;)
  map = dict()
  try:
    while line:
      for word in pattern.findall(line):
	&lt;strong&gt;map[word.lower()] = map.get(word.lower(), 0) + 1
      if ( len(map) &amp;gt; 10000 ):
        for item in map.iteritems():
	  print &amp;quot;LongValueSum:&amp;quot; + item[0] + &amp;quot;\t&amp;quot; + str(item[1])
	map.clear()&lt;/strong&gt;
      line = sys.stdin.readline()
    &lt;strong&gt;for item in map.iteritems():
      print &amp;quot;LongValueSum:&amp;quot; + item[0] + &amp;quot;\t&amp;quot; + str(item[1])&lt;/strong&gt;
  except &amp;quot;end of file&amp;quot;:
    return None
if __name__ == &amp;quot;__main__&amp;quot;:
  main(sys.argv)&lt;/code&gt;&lt;/pre&gt;

  &lt;p&gt;Instead of “emitting” every word with value 1 to the OutputCollector, I did an internal reduce before emitting it. The result is that instead of emitted the word ‘a’ 1000 times with value 1, I emitted it 1 time with value 1000. The end result of the job is the same, but in half the time. To understand this we need to look at the execution flow of map reduce.&lt;/p&gt;

  &lt;h5&gt;Execution Path and Distribution&lt;/h5&gt;

  &lt;p&gt;Look at the following Flow Diagram taken from the “Hadoop Tutorial from Yahoo!” (&lt;a href="http://developer.yahoo.com/hadoop/"&gt;Yahoo! Inc.&lt;/a&gt;) / &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;CC BY 3.0&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://developer.yahoo.com/hadoop/tutorial/module4.html#dataflow"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Map Reduce Flow" alt="Map Reduce Flow" src="http://cdn.dynatrace.com/blog/wp-content/Map-Reduce-Flow-600x388.png" width="560" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Map Reduce Flow&lt;/p&gt;

  &lt;p&gt;Elastic Map Reduce first schedules a Map Task task per file (or parts of the file). It then feeds each line of the file into the map function. The map function will emit each key/value, in this case each word of the line, to the OutputCollector. Each emitted key/value will be written to an intermediate file for later reduce. The Shuffle Process will make sure that each key, in this case each word, will be sent to the same reduce task (meaning hadoop node) for aggregation. If we emit the same word multiple times it also needs to be written and sent multiple times, which results in more I/O (disk and network). The logical conclusion is that we should „pre-reduce“ this on a per task node basis and send the minimal amount of data. This is what the Combiner is for, which is really a Reducer that is run locally on the same node after the Mapping. So we should be fine, right? Not really.&lt;/p&gt;

  &lt;h5&gt;Inside of Amazons Elastic Map Reduce&lt;/h5&gt;

  &lt;p&gt;To get a better idea of where I spent the time, I deployed dynaTrace into Amazons Map Reduce environment. This can be done fully automated with a simple bootstrap action (I will publish the result as a Fastpack on our community at a later time).&lt;/p&gt;

  &lt;p&gt;The original python run lasted roughly 5 minutes each run (between 290 and 320 seconds), while the optimized ran around 3 minutes (160-170 seconds). I used dynaTrace to split those run times into their different components to get a feel for where we spend time. Some numbers have a rather high volatility which, as I found out, is due to Amazon S3 and to a smaller degree garbage collection. I executed it several times and the volatility did not have a big impact on the overall job execution time.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/mapreduce1.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Map Reduce Job Business Transaction that details where we spend our time" alt="Map Reduce Job Business Transaction that details where we spend our time" src="http://cdn.dynatrace.com/blog/wp-content/mapreduce1-600x89.png" width="560" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Map Reduce Job Business Transaction that details where we spend our time&lt;/p&gt;

  &lt;p&gt;Click on the picture to analyze the details and you will see dramatic improvements on the mapping, combine and sort times. The Total Mapping time in this example is the overall execution time of all scheduled map tasks. The optimized code executed in less than 60% of the time. To a large degree this is due the map function itself (Map Only Time), which is actually quite surprising, after all we were not doing anything less really?&lt;/p&gt;

  &lt;p&gt;The next thing we see is that the combine time has dropped dramatically, we could say it nearly vanished! That makes sense after all we were making sure that we emitted less duplicates, thus less to combine. In fact it might make sense to stop combining at all as we will see later on. Another item that has dramatically improved is the sort. Again that makes a lot of sense, less data to sort. While the majority of the combine and sort happens in a separate thread, it still saves a lot of CPU and I/O time!&lt;/p&gt;

  &lt;p&gt;On the other hand neither shuffle nor reduce time itself have changed really. I identified the fluctuations the table does show, as being AWS S3 volatility issues via a hotspot analysis, so I ignored them. The fact that we see no significant improvements here makes sense. The resulting intermediate files of each map task do not look much different, whether we combine or use the optimized code.&lt;/p&gt;

  &lt;p&gt;So it really was the optimization of the map operation itself, that lead to overall improvement in job run time. While I might have achieved the same goal by doubling the number of map nodes, it would cost me more to do so. &lt;/p&gt;

  &lt;h5&gt;What happens during mapping&lt;/h5&gt;

  &lt;p&gt;To understand why that simple change has such a large impact we need to look at what happens to emitted keys in a Map Job.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/Map-Reduce-Combine2.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="flow of the data from the mapper to memory buffer, sort&amp;amp;combine and finally the merge" alt="flow of the data from the mapper to memory buffer, sort&amp;amp;combine and finally the merge" src="http://cdn.dynatrace.com/blog/wp-content/Map-Reduce-Combine2.png" width="500" height="455" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;flow of the data from the mapper to memory buffer, sort&amp;amp;combine and finally the merge&lt;/p&gt;

  &lt;p&gt;What most Map/Reduce tutorials forget to mention is that the collect method called by the Mapper serializes the key/value directly to an in-memory buffer, as can be seen in the diagram above and the hotspot below.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/map-reduce-map-function-write.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="When the Mapper emits a key via collect, it gets written to an in memory buffer" alt="When the Mapper emits a key via collect, it gets written to an in memory buffer" src="http://cdn.dynatrace.com/blog/wp-content/map-reduce-map-function-write-600x211.png" width="560" height="197" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;When the Mapper emits a key via collect, it gets written to an in memory buffer&lt;/p&gt;

  &lt;p&gt;Once that buffer has reached a certain saturation, the Spill Thread kicks in and writes the data to an intermediate file (this is controlled by several &lt;em&gt;io.sort.spill. options&lt;/em&gt;). Map/Reduce normally deals with a large amount of potentially never repeating data, so it has to spill to file eventually.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/map-reduce-spill-thread.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="The Spill Thread sorts, combines and writes the data to file in parallel to the mapping" alt="The Spill Thread sorts, combines and writes the data to file in parallel to the mapping" src="http://cdn.dynatrace.com/blog/wp-content/map-reduce-spill-thread-600x285.png" width="560" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;The Spill Thread sorts, combines and writes the data to file in parallel to the mapping&lt;/p&gt;

  &lt;p&gt;It is not enough to simple dump the data to file, the content has to be sorted and combined first. The sort is a preparation for the shuffle process and relative efficient (it sorts based on binary bytes, because the actual order is not important). The combine however needs to de-serialize the key and values again prior to writing.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/map-reduce-combine-deserialize.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="The combine in the spill thread needs to deserialize the data again" alt="The combine in the spill thread needs to deserialize the data again" src="http://cdn.dynatrace.com/blog/wp-content/map-reduce-combine-deserialize-600x211.png" width="560" height="197" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;The combine in the spill thread needs to deserialize the data again&lt;/p&gt;

  &lt;p&gt;So emitting a key multiple times has&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;a direct negative impact on the map time and CPU usage, due to more serialization &lt;/li&gt;

    &lt;li&gt;an indirect negative impact on CPU due to more spilling and additional deserialization in the combine step &lt;/li&gt;

    &lt;li&gt;a direct impact on the map task, due to more intermediate files, which makes the final merge more expensive &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;Slower mapping obviously impacts the overall Job time directly. The more data we emit, the more CPU and I/O is consumed by the Spill Thread. If the SpillThread is too slow (e.g. expensive combine, slow disk), the in memory buffer might get fully saturated, in which case the map task has to wait (this can be improved by adjusting the &lt;em&gt;io.sort.spill.percent&lt;/em&gt; hadoop option).&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/map-reduce-map-function-block.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Showing that the Mapper can be slowed down by the Spill Thread if there are too many keys to sort or combine" alt="Showing that the Mapper can be slowed down by the Spill Thread if there are too many keys to sort or combine" src="http://cdn.dynatrace.com/blog/wp-content/map-reduce-map-function-block-600x358.png" width="560" height="334" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;The Mapper was paused by the Spill Thread, because there was too much data to sort and combine&lt;/p&gt;

  &lt;p&gt;Finally after the Map Task finishes the actual mapping, it writes, sorts and combines the remaining data to file. Finally it merges all intermediate files into a single output file (which it might combine again). More emitted key’s thus mean more intermediate files to merge as well.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/map-reduce-flush.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="The complete Map Task shows the mapping itself and the flush at the end, which sorts, combines, merges and combines again" alt="The complete Map Task shows the mapping itself and the flush at the end, which sorts, combines, merges and combines again" src="http://cdn.dynatrace.com/blog/wp-content/map-reduce-flush-600x303.png" width="560" height="283" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;The complete Map Task shows the mapping itself and the flush at the end, which sorts, combines, merges and combines again&lt;/p&gt;

  &lt;p&gt;While the final flush only “slows” us down for 1.5 seconds, this still amounts to roughly 8 percent of the Mapper task. So we see it really does make a lot of sense to optimize the output of the map operation, prior to the combine or reduce step. It will save CPU, Disk and Network I/O and this of course means less Nodes are needed for the same work!&lt;/p&gt;

  &lt;h5&gt;The one million X factor&lt;/h5&gt;

  &lt;p&gt;Until now I have tried to explain the I/O and CPU implications of emitting many keys, but there is also another factor that should be considered when writing Map/Reduce jobs. The map function is executed potentially millions of times. Every ms consumed here can potentially lead to minutes in job time. Indeed most of the gain of my “optimization” came from speeding up the mapping itself and not from more effective combine and disk writes. On average each map method call had a little less to do and that paid off.&lt;/p&gt;

  &lt;p&gt;What that struck me when looking at Map/Reduce first, was that most samples and tutorials use scripting languages like python, perl or something else. This is realized via the Hadoop Streaming framework. While I understand that this lowers the barrier to write Map/Reduce jobs, it should not be used for serious tasks! To illustrate this I ran a randomly selected java version of the Word Count sample. The result is another 50-60% improvement on top of the optimized python (it might be even better, in a larger task).&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cdn.dynatrace.com/blog/wp-content/mapreduce2.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Several Java and Python Word Count Map Reduce Jobs, that show the vast differences in execution times" alt="Several Java and Python Word Count Map Reduce Jobs, that show the vast differences in execution times" src="http://cdn.dynatrace.com/blog/wp-content/mapreduce2-600x134.png" width="560" height="125" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Several Java and Python Word Count Map Reduce Jobs, that show the vast differences in execution times&lt;/p&gt;

  &lt;p&gt;The table shows the various execution times for:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Optimized Java: ~1.5 minutes job execution time 
      &lt;br /&gt;The same trick as in python, if anybody really wants to have the code, it let me know. &lt;/li&gt;

    &lt;li&gt;Optimized Java with no Combiner: roughly 10 seconds faster than the optimized one 
      &lt;br /&gt;As pointed out the pre-reduce in the map method makes the combine nearly redundant. The improvement in overall job time is minimal however due to the smallness of the job. &lt;/li&gt;

    &lt;li&gt;Original Java: ~2.5 minutes 
      &lt;br /&gt;We see that all the times (mapping, combining, sorting, spilling) are a lot higher, as we came to expect &lt;/li&gt;

    &lt;li&gt;Optimized Python: ~3 minutes &lt;/li&gt;

    &lt;li&gt;Non-optimized python: ~5 minutes &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Java is faster than Python every time and the optimized version of Java is twice as fast as the optimized python version. Remember that this is a small example and that the Hadoop parameters are the same for all runs . In addition CPU was never a limiting factor. If you execute the same small code millions of times, even small differences matter. The difference between a single line mapped in java and python is maybe not even measurable. With 200 MB of text it adds up to more than a minute! The same would be true for small changes in any Java Map/Reduce job. The difference between the original and the optimized java version is still more than 60% improvement!&lt;/p&gt;

  &lt;p&gt;Word Count is very simple compared to some of the map/reduce jobs are out there, but it illustrates quite nicely that performance of our own code still matters. The key take away is that we still need to analyze and optimize the map task and our own code. Only after that is satisfactory, do we need to play around with the various Hadoop options to improve distribution and utilization.&lt;/p&gt;

  &lt;h5&gt;Conclusion&lt;/h5&gt;

  &lt;p&gt;Map Reduce is a very powerful and elegant way to distribute processing of large amounts of data across many hosts. It is also a bit of a brute and it pays of to analyze and optimize the performance of the map and reduce tasks before we start playing with Hadoop options. While Map/Reduce can reduce the job time by throwing more hardware the problem, easy optimizations often reach a similar effect. In the cloud and AWS Elastic Map Reduce that means less cost!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="SDS"&gt;SQL Azure Database, Federations and Reporting &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Wade Wegner&lt;/strong&gt; (@&lt;a href="http://twitter.com/WadeWegner"&gt;WadeWegner&lt;/a&gt;) and &lt;strong&gt;Steve Marx&lt;/strong&gt; (@&lt;a href="http://twitter.com/smarx"&gt;smarkx&lt;/a&gt;) posted CloudCover &lt;a href="http://channel9.msdn.com/Shows/Cloud+Cover/Episode-68-Throttling-in-SQL-Azure-with-Scott-Klein"&gt;Episode 68 - Throttling in SQL Azure with Scott Klein&lt;/a&gt; on 1/27/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Join &lt;a href="http://www.wadewegner.com/"&gt;Wade&lt;/a&gt; and &lt;a href="http://blog.smarx.com/"&gt;Steve&lt;/a&gt; each week as they cover the Windows Azure platform. You can follow and interact with the show at &lt;a href="http://twitter.com/cloudcovershow"&gt;@CloudCoverShow&lt;/a&gt;.&lt;/p&gt;
  &lt;iframe style="width: 512px; height: 288px" src="http://channel9.msdn.com/Shows/Cloud+Cover/Episode-68-Throttling-in-SQL-Azure-with-Scott-Klein/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;

  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="#Top"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/_GdO7DQgAn3w/TFxIT_td_pI/AAAAAAAADfQ/asbwuFou3jU/image%5B36%5D.png?imgmax=800" width="160" height="43" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;In this episode, Wade and Steve are joined by &lt;a href="http://geekswithblogs.net/ScottKlein"&gt;Scott Klein&lt;/a&gt;, Technical Evangelist for SQL Azure, who explains how to understand, diagnose, and handle throttling in SQL Azure. He also demonstrates how to use the &lt;a href="http://msdn.microsoft.com/en-us/library/hh680934(v=PandP.50).aspx"&gt;Transient Fault Handling Application Block&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;In the news:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.brianloesgen.com/blog/2012/1/23/new-azure-servicebus-demo-available.html"&gt;New Service Bus demo&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/01/25/announcing-native-windows-azure-libraries-and-special-free-pricing-using-sendgrid-for-windows-azure-customers.aspx"&gt;SendGrid and Windows Azure&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/01/24/windows-azure-and-cloud9-ide-at-node-summit.aspx"&gt;Windows Azure and Cloud9 IDE at Node Summit&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/01/24/announcing-sql-azure-import-export-service-now-in-production.aspx"&gt;Import/export service for SQL Azure generally available&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Tip of the week: &lt;a href="http://www.wadewegner.com/2012/01/cannot-create-database-developmentstoragedb20110816-in-storage-emulator-azure-sdk/"&gt;Dealing with &amp;quot;cannot create database&amp;quot; in the Windows Azure storage emulator&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="OData"&gt;MarketPlace DataMarket, Social Analytics and OData &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;• &lt;/strong&gt;&lt;strong&gt;Rajeev Pentyala&lt;/strong&gt; described how to &lt;a href="http://rajeevpentyala.wordpress.com/2012/01/29/create-record-using-odata-and-jquery-in-crm-2011/"&gt;Create [a] Record using OData and JQuery in CRM 2011&lt;/a&gt; in a 1/29/2011 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_GdO7DQgAn3w/TBPrBgBH0wI/AAAAAAAABUw/yiUVlsFgFgs/s1600-h/image%5B34%5D.png"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/_GdO7DQgAn3w/TBPrBwhBVOI/AAAAAAAABU0/pg4QP5rVwqw/image_thumb%5B20%5D.png?imgmax=800" width="120" height="35" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;Below is the code snippet to create a record (i.e., Account) using OData &amp;amp; JQuery:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;//Prepare ‘Account’ object and call create function&lt;/span&gt;
&lt;span class="kwrd"&gt;function&lt;/span&gt; createAccount() {
&lt;span class="rem"&gt;//Create an object to represent an Account record and set properties&lt;/span&gt;
&lt;span class="kwrd"&gt;var&lt;/span&gt; account = &lt;span class="kwrd"&gt;new&lt;/span&gt; Object();
&lt;span class="rem"&gt;// Set text field&lt;/span&gt;
account.Name = “Rajeev Pentyala”;
&lt;span class="rem"&gt;// Set Lookup field (Contact should exists in the system)&lt;/span&gt;
&lt;span class="kwrd"&gt;var&lt;/span&gt; primaryContact = &lt;span class="kwrd"&gt;new&lt;/span&gt; Object();
primaryContact.ContactId = “”;
primaryContact.FullName = “”;
&lt;span class="rem"&gt;// if (primaryContact != null) {&lt;/span&gt;
&lt;span class="rem"&gt;// account.PrimaryContactId = { Id: primaryContact.ContactId, LogicalName: “contact”, Name: primaryContact.FullName };&lt;/span&gt;
&lt;span class="rem"&gt;// }&lt;/span&gt;
&lt;span class="rem"&gt;//Set a picklist value&lt;/span&gt;
account.PreferredContactMethodCode = { Value: 2 };
&lt;span class="rem"&gt;//Set a money value (i.e., Annual Revenue)&lt;/span&gt;
account.Revenue = { Value: “2000000.00″ };
&lt;span class="rem"&gt;//Set a Boolean value&lt;/span&gt;
account.DoNotPhone = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
&lt;span class="rem"&gt;// Call create method by passing&lt;/span&gt;
&lt;span class="rem"&gt;// (i) Entity Object (i.e.,account in this case)&lt;/span&gt;
&lt;span class="rem"&gt;//(ii) Entity Set&lt;/span&gt;
&lt;span class="rem"&gt;//(iii)SuccessCallback function&lt;/span&gt;
&lt;span class="rem"&gt;// (iv) Error callback function&lt;/span&gt;
createRecord(account, “AccountSet”, createAccountCompleted, &lt;span class="kwrd"&gt;null&lt;/span&gt;);
}
&lt;span class="rem"&gt;// This callback method executes on succesful account creation&lt;/span&gt;
&lt;span class="kwrd"&gt;function&lt;/span&gt; createAccountCompleted(data, textStatus, XmlHttpRequest) {
&lt;span class="kwrd"&gt;var&lt;/span&gt; account = data;
alert(“Account created; Id: ” + account.AccountId.toString());
}&lt;/pre&gt;
    &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/blockquote&gt;

  &lt;blockquote&gt;&lt;/blockquote&gt;

  &lt;blockquote&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// This function creates record by making OData call&lt;/span&gt;
&lt;span class="kwrd"&gt;function&lt;/span&gt; createRecord(entityObject, odataSetName, successCallback, errorCallback) {
&lt;span class="rem"&gt;//Parse the entity object into JSON&lt;/span&gt;
&lt;span class="kwrd"&gt;var&lt;/span&gt; jsonEntity = window.JSON.stringify(entityObject);
&lt;span class="rem"&gt;// Get Server URL&lt;/span&gt;
&lt;span class="kwrd"&gt;var&lt;/span&gt; serverUrl = Xrm.Page.context.getServerUrl();
&lt;span class="rem"&gt;//The OData end-point&lt;/span&gt;
&lt;span class="kwrd"&gt;var&lt;/span&gt; ODATA_ENDPOINT = “/XRMServices/2011/OrganizationData.svc”;
&lt;span class="rem"&gt;//Asynchronous AJAX function to Create a CRM record using OData&lt;/span&gt;
$.ajax({
type: “POST”,
contentType: “application/json; charset=utf-8″,
datatype: “json”,
url: serverUrl + ODATA_ENDPOINT + “/” + odataSetName,
data: jsonEntity,
beforeSend: &lt;span class="kwrd"&gt;function&lt;/span&gt; (XMLHttpRequest) {
&lt;span class="rem"&gt;//Specifying this header ensures that the results will be returned as JSON.&lt;/span&gt;
XMLHttpRequest.setRequestHeader(“Accept”, “application/json”);
},
success: &lt;span class="kwrd"&gt;function&lt;/span&gt; (data, textStatus, XmlHttpRequest) {
&lt;span class="kwrd"&gt;if&lt;/span&gt; (successCallback) {
successCallback(data.d, textStatus, XmlHttpRequest);
}
},
error: &lt;span class="kwrd"&gt;function&lt;/span&gt; (XmlHttpRequest, textStatus, errorThrown) {
&lt;span class="kwrd"&gt;if&lt;/span&gt; (errorCallback)
errorCallback(XmlHttpRequest, textStatus, errorThrown);
&lt;span class="kwrd"&gt;else&lt;/span&gt;
errorHandler(XmlHttpRequest, textStatus, errorThrown);
}
});
}&lt;/pre&gt;
    &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/blockquote&gt;

  &lt;p&gt;&lt;strong&gt;How do I call this method&lt;/strong&gt; :-&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Create a new .jscript file (i.e., ”account.js”) &lt;/li&gt;

    &lt;li&gt;Copy &amp;amp; Paste above code &lt;/li&gt;

    &lt;li&gt;Add “account.js” as a webresource in CRM &lt;/li&gt;

    &lt;li&gt;Add “Json2.js” &amp;amp; “jquery1.4.1.min.js” &lt;em&gt;helper&lt;/em&gt; script files as webresources &lt;/li&gt;

    &lt;li&gt;Add “&lt;strong&gt;createAccount&lt;/strong&gt;” function to form load method (&lt;em&gt;Refer below&lt;/em&gt;)&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://rajeevpentyala.files.wordpress.com/2012/01/adding-webresources-to-account-form.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Adding webresources to account form" alt="Adding webresources to account form" src="http://rajeevpentyala.files.wordpress.com/2012/01/adding-webresources-to-account-form.png?w=372&amp;amp;h=296" width="372" height="296" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Adding webresources to account form&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Save &amp;amp; Publish &lt;/li&gt;

    &lt;li&gt;Open any account record and on loading of record our script fires and it creates new account name “Rajeev Pentyala”&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="NET"&gt;Windows Azure Access Control, Service Bus and Workflow &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;img title="image72232222222" border="0" alt="image72232222222" align="right" src="http://lh3.ggpht.com/-fc3mII5ve4w/TgtZiTRqOHI/AAAAAAAAMWk/JwVfa2Jb9HY/image722322222222.png?imgmax=800" width="240" height="47" /&gt;No significant articles today.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="WAVN"&gt;Windows Azure VM Role, Virtual Network, Connect, RDP and CDN&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Mick Badran&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/mickba"&gt;mickba&lt;/a&gt;) reported &lt;a href="http://blogs.breeze.net/mickb/2012/01/25/MicrosoftAppFabric11ForWindowsServerreleased.aspx"&gt;Microsoft AppFabric 1.1 for Windows Server–released!&lt;/a&gt; in a 1/25/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-pxSQ2W0WjJY/TyRY5tN1oBI/AAAAAAAAaCE/DiiQcAsVwoI/s1600-h/image%25255B79%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-nCdxmqdXRiE/TyRY50y7vyI/AAAAAAAAaCM/4rQ7HNYabzQ/image_thumb%25255B26%25255D.png?imgmax=800" width="46" height="51" /&gt;&lt;/a&gt;Recently there’s been an update to the ‘on-premise’ AppFabric for Windows Server. Grab the update here - &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27115"&gt;http://www.microsoft.com/download/en/details.aspx?id=27115&lt;/a&gt; (runs on win7, 2008, 2008R2) &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;What’s new&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;I’m in the process of updating my components, but the majority of updates seems to be around caching and performance. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh351389.aspx"&gt;http://msdn.microsoft.com/en-us/library/hh351389.aspx&lt;/a&gt;&lt;/p&gt;

  &lt;table style="border-bottom: #bbb 1px solid; border-left: #bbb 1px solid; border-collapse: collapse; word-wrap: break-word; border-top: #bbb 1px solid; border-right: #bbb 1px solid" width="100%"&gt;&lt;tbody&gt;
      &lt;tr style="vertical-align: top"&gt;
        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Read-Through/Write-Behind&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;This allows a backend provider to be used on the cache servers to assist with retrieving and storing data to a backend, such as a database. Read-through enables the cache to &amp;quot;read-through&amp;quot; to a backend in the context of a Get request. Write-behind enables updates to cached data to be saved asynchronously to the backend. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://blogs.breeze.net/mickb/ct.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fhh361704.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Creating a Read-Through / Write-Behind Provider (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: top"&gt;
        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Graceful Shutdown&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;This is useful for moving data from a single cache hosts to rest of the servers in the cache cluster before shutting down the cache host for maintenance. This helps to prevent unexpected loss of cached data in a running cache cluster. This can be accomplished with the &lt;strong&gt;Graceful&lt;/strong&gt; parameter of the &lt;strong&gt;Stop-CacheHost&lt;/strong&gt; Windows PowerShell command.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: top"&gt;
        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Domain Accounts&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;In addition to running the AppFabric Caching Service with the NETWORK SERVICE account, you can now run the service as a domain account. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://blogs.breeze.net/mickb/ct.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fhh386447.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Change the Caching Service Account (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: top"&gt;
        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;New ASP.NET Session State and Output Caching Provider&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;New ASP.NET session state and output caching providers are available. The new session state provider has support for the lazy-loading of individual session state items using AppFabric Caching as a backing store. This makes sites that have a mix of small and large session state data more efficient, because pages that don't need large session state items won't incur the cost of sending this data over the network. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://blogs.breeze.net/mickb/ct.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fhh361705.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Using the ASP.NET 4 Caching Providers for AppFabric 1.1&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: top"&gt;
        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Compression&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;You can now enable compression for cache clients. For more information, see &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;a href="http://blogs.breeze.net/mickb/ct.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fhh351483.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Application Configuration Settings (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: top"&gt;
        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;strong&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;Multiple Cache Client Application Configuration Sections&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td style="border-bottom: 1px solid; border-left: 1px solid; padding-bottom: 9px; line-height: 14pt; background-color: #fff; padding-left: 4px; padding-right: 4px; border-top: 1px solid; border-right: 1px solid; padding-top: 9px"&gt;
          &lt;p style="position: relative; margin-bottom: 0px"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;A new &lt;/font&gt;&lt;/font&gt;&lt;font style="font-size: 9.7pt"&gt;&lt;code&gt;dataCacheClients&lt;/code&gt;&lt;font face="Segoe UI"&gt; section is available that allows you to specify multiple named &lt;/font&gt;&lt;code&gt;dataCacheClient&lt;/code&gt;&lt;font face="Segoe UI"&gt; sections in an application configuration file. You can then programmatically specify which group of cache client settings to use at runtime. For more information, see &lt;/font&gt;&lt;a href="http://blogs.breeze.net/mickb/ct.ashx?id=2ac84c34-76c2-4d0b-b20a-3d66a01ac265&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fhh351483.aspx"&gt;&lt;font color="#1364c4" face="Segoe UI"&gt;Application Configuration Settings (AppFabric 1.1 Caching)&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Live"&gt;Live Windows Azure Apps, APIs, Tools and Test Harnesses&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;My&lt;/strong&gt; (@&lt;a href="http://twitter.com/rogerjenn"&gt;rogerjenn&lt;/a&gt;) updated &lt;a href="http://oakleafblog.blogspot.com/2012/01/introducing-microsoft-codename-cloud.html"&gt;Introducing Microsoft Codename “Cloud Numerics” from SQL Azure Labs&lt;/a&gt; post of 1/28/2012 adds the following undocumented pre-requisite if you didn’t include Visual C++ in the programming languages for your Visual Studio 2010 installation:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-kNITJy0Ki3A/TyWELTcJqZI/AAAAAAAAaI8/tUunB5a8kaA/s1600-h/image%25255B16%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-bzjxm3QnsLg/TyWELu5FbvI/AAAAAAAAaJE/18mYwTwCJLI/image_thumb%25255B6%25255D.png?imgmax=800" width="64" height="66" /&gt;&lt;/a&gt;&lt;strong&gt;*Update&lt;/strong&gt; 1/28/2011: The build script expects to find msvcp100.dll and msvcr100.dll files installed by VS2010 in the C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\redist\x64\Microsoft.VC100.CRT folder and the msvcp100d.dll and msvcr100d.dll debug versions in the C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC100.DebugCRT folder. If these files aren’t present in the specified locations, the Windows Azure HPC Scheduler will fail when attempting to run MSCloudNumericsApp.exe as Job 1. &lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;After you install VS 2010 SP1, attempts to use setup’s Add or Remove Features option to add the VC++ compilers fail.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: You only need to take the following steps if you intend to submit the application to the Windows Azure and you don’t have the Visual C++ compilers installed:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Download the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=13523"&gt;Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)&lt;/a&gt; (vcredist_x64.exe) to a well-known location &lt;/li&gt;

    &lt;li&gt;Run vcredist_x64.exe to add the msvcp100.dll, msvcp100d.dll, msvcr100.dll and msvcr100d.dll files to the C:\Windows\System32 folder. &lt;/li&gt;

    &lt;li&gt;Create a C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\redist\x64\Microsoft.VC100.CRT folder and copy the msvcp100.dll and msvcr100.dll files to it. &lt;/li&gt;

    &lt;li&gt;C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC100.DebugCRT folder and add the msvcp100d.dll and msvcr100d.dll files to it. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;Stay tuned for more details about this issue.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As noted in my &lt;a href="http://oakleafblog.blogspot.com/2012/01/deploying-cloud-numerics-sample.html"&gt;Deploying “Cloud Numerics” Sample Applications to Windows Azure HPC Clusters&lt;/a&gt; post, also updated 1/28/2012, you must:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Choose Build, Configuration Manager to open the Configuration Manager dialog, select Release in the Active Solution Configurations list, and click OK to change the build configuration from Debug to Release:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-SFHyO_11rPs/TyQ8f7w8jGI/AAAAAAAAZ-U/bYC-2X7QUls/s1600-h/image%25255B21%25255D.png"&gt;&lt;img title="image" border="0" alt="image" src="http://lh4.ggpht.com/-jLpZqZRDxhc/TyQ8gjcZvGI/AAAAAAAAZ-c/Q6jf17sqDw8/image_thumb%25255B12%25255D.png?imgmax=800" width="642" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: For currently unknown reasons, submitting a job built in the Debug configuration fails. This problem is under investigation. This step was added on 1/28/2012.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;• The Windows Azure Team&lt;/strong&gt; added a new &lt;a href="http://www.windowsazure.com/en-us/develop/net/common-tasks/automate-builds/"&gt;Automating Builds for Windows Azure Packages&lt;/a&gt; page to the Windows Azure site’s “Develop” section in late January:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;MSBuild is a build system for Visual Studio that can be paired with Team Foundation Server (TFS) Team Build to create Windows Azure packages automatically and separate from individual development machines. MSBuild uses an XML format for project files that's extensible and fully supported by Microsoft. In this file format, you can describe what items must be built for one or more platforms and configurations.&lt;/p&gt;

  &lt;p&gt;You can also run MSBuild at a command prompt. By setting properties at a command prompt, you can build specific configurations of a project. Similarly, you can also define the targets that the MSBuild command will build. For more information about command-line parameters and MSBuild, see &lt;a href="http://msdn.microsoft.com/en-us/library/ms164311(v=VS.90).aspx"&gt;MSBuild Command Line Reference&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;The process described in this article is equivalent to the &lt;strong&gt;Package &lt;/strong&gt;command in Visual Studio. By applying the methods described in this article, you can configure and define builds, in addition to automating the build and packaging process.&lt;/p&gt;

  &lt;p&gt;This task includes the following steps:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/common-tasks/automate-builds/#step1"&gt;Step 1: Configure the Build Server&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/common-tasks/automate-builds/#step2"&gt;Step 2: Construct an MSBuild Command&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/net/common-tasks/automate-builds/#step3"&gt;Step 3: Configure TFS to Build a Package&lt;/a&gt; …&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;The page continues with detailed tutorials for each step. I’m surprised the team didn’t include specific details for using the new &lt;a href="http://blogs.msdn.com/b/bharry/archive/2011/09/14/team-foundation-server-on-windows-azure.aspx"&gt;Windows Azure Team Foundation Services&lt;/a&gt; announced at the //BUILD/ conference in September 2011. &lt;/p&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;• Rick Garibay&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/rickggaribay"&gt;rickggaribay&lt;/a&gt;) explained why &lt;a href="http://rickgaribay.net/archive/2012/01/28/node-is-not-single-threaded.aspx"&gt;Node is Not Single Threaded&lt;/a&gt; is important in a 1/28/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-CYbU2l5oCK8/TyWEL51B7uI/AAAAAAAAaJM/m0Ukl2FFd9Y/s1600-h/image%25255B13%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-Ggvu1T3iAtQ/TyWEMe_5JwI/AAAAAAAAaJU/lnEPDXPYK2c/image_thumb%25255B5%25255D.png?imgmax=800" width="58" height="66" /&gt;&lt;/a&gt;I recently got bitten by the Node.js bug. Hard. &lt;/p&gt;

  &lt;p&gt;If you are even remotely technically inclined, it is virtually impossible to not be seduced by the elegance, speed and low barrier to entry of getting started with Node.js. After all, its just another JavaScript API, only this time designed for running programs on the server. This in and of itself, is intriguing, but there has to be more, much more, to compel legions of open source developers to write entire libraries for Node almost over night, not to mention industry giants like &lt;a href="http://venturebeat.com/2012/01/24/why-walmart-is-using-node-js/"&gt;Wal-Mart&lt;/a&gt; and &lt;a href="http://www.windowsazure.com/en-us/develop/nodejs/"&gt;Microsoft&lt;/a&gt; embracing this very new, fledgling technology that has yet to be proven over any significant period of time.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;As intriguing as Node is, I have a hard time accepting things at face value that I don't fully understand. When I don’t understand something, I get very frustrated. This frustration usually motivates me to relentlessly attack the subject with varying degrees of success (and sometimes even more frustration!).&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-6NcRLwJSHq0/TyWEMknMmEI/AAAAAAAAaJc/rp3ohw8KLa4/s1600-h/image%25255B20%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-UWvgP9Sm8EU/TyWEM8JeFoI/AAAAAAAAaJk/JY3g_Ea_8wo/image_thumb%25255B8%25255D.png?imgmax=800" width="160" height="44" /&gt;&lt;/a&gt;As such, this post is an attempt to collect my findings on how Node, and it’s alleged single-threaded approach to event-driven programming is different from what I know today. This is not a dissertation on event vs. thread-based concurrency or a detailed comparison of managed frameworks and Node.js. Instead, this is a naive attempt to capture my piecemeal understanding of &lt;strong&gt;how&lt;/strong&gt; Node is different into a single post in hopes that comments and feedback will increase its accuracy in serving as a reference that helps to put in perspective for .NET developers how Node is different and what the hubbub is really all about.&lt;/p&gt;

  &lt;p&gt;To that end, I &lt;strong&gt;&lt;em&gt;sincerely would appreciate&lt;/em&gt;&lt;/strong&gt; your comments and feedback to enrich the quality of this post as I found resources on the web that tackle this specific topic &lt;a href="http://www.quora.com/In-Node-js-how-does-the-event-loop-work"&gt;severely lacking&lt;/a&gt; (or I am just too dense to figure it all out).&lt;/p&gt;

  &lt;p&gt;I’m going to skip the hello world code samples, or showing you how easy it is to spin up an HTTP or TCP server capable of handling a ridiculous amount of concurrent requests on a laptop because this is all well documented elsewhere. If you haven’t ever looked at Node before, check out the following resources which will help to kick-start your node.js addiction (the first hit is free):&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=jo_B4LTHi3I"&gt;SF PHP User’s Group talk by Ryan Dahl&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://nodebeginner.org/"&gt;Node Beginner Book by Manuel Kiessling&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=M-sc73Y-zQA"&gt;Cinco de Node talk by Ryan Dahl&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Aside from the syntactic sugar that is immediately familiar to legions of web developers regardless of platform or language religion, you can’t come across any literature or talk on Node.js without a mention of the fact that what makes it all so wonderful is the fact that it is &lt;strong&gt;event-driven and &lt;strong&gt;single-threaded&lt;/strong&gt;.&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;It is evident to me that there are either a lot of people that are much smarter than me and just instantly get that statement, as well as people that blindly accept it. Then there are those who haven’t slept well for the last week trying to figure out what the hell that means and how it’s different.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Event-driven. So what? &lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;I’ve written lots of asynchronous code and designed many messaging solutions on event-driven architectures. As a Microsoft guy, I’m pretty familiar with writing imperative code using Begin/End, AsyncCallbacks, WaitHandles, IHttpAyncHandlers, etc. I’ve opted for ever permutation of WCF instancing and concurrency depending on the scenario at hand, and written some pretty slick WF 4 workflows that parallelize activities (yes, I know, its not really truly parallel, but in most cases, close enough). My point is, I get async and eventing, so what’s the big deal and how is Node any different than this, or the &lt;a href="http://www.wischik.com/lu/AsyncSilverlight/AsyncSamples.html"&gt;nice new async language features coming in C# 5&lt;/a&gt;?&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;IIS and .NET as a Learning Model&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;When learning something new, it is a tremendous advantage to know nothing about the topic and start fresh. Absent of that, it is usually helpful to have a familiar model that you can reference that helps you to compare and contrast a new concept, progressively iterating to understand the similarities and differences. As a career-long enterprise guy, working almost exclusively on the Microsoft platform, my model is IIS/WAS and .NET., so let’s summarize how a modern web server like IIS 7+ works which will provide the necessary infrastructure to help frame how .NET’s (or Java) execution model works.&lt;a href="http://learn.iis.net/file.axd?i=15"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://learn.iis.net/file.axd?i=15" width="469" height="419" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;As described on &lt;a href="http://learn.iis.net/page.aspx/101/introduction-to-iis-architecture/"&gt;Learn.IIS.net&lt;/a&gt;, the following list describes the request-processing flow that is shown to your right: &lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;When a client browser initiates an HTTP request for a resource on the Web server, HTTP.sys intercepts the request. &lt;/li&gt;

    &lt;li&gt;HTTP.sys contacts WAS to obtain information from the configuration store. &lt;/li&gt;

    &lt;li&gt;WAS requests configuration information from the configuration store, applicationHost.config. &lt;/li&gt;

    &lt;li&gt;The WWW Service receives configuration information, such as application pool and site configuration. &lt;/li&gt;

    &lt;li&gt;The WWW Service uses the configuration information to configure HTTP.sys. &lt;/li&gt;

    &lt;li&gt;WAS starts a worker process for the application pool to which the request was made. &lt;/li&gt;

    &lt;li&gt;The worker process processes the request and returns a response to HTTP.sys. &lt;/li&gt;

    &lt;li&gt;The client receives a response. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;Step 7 is where your application (which might be an ASP.NET MVC app, a WCF or WF service) comes in. When WAS starts a worker process (w3wp.exe) the worker process allocates a thread for loading and executing your application. This is analogous to starting a program and inspecting the process in Windows Task Manager. If you open 3 instances of the program, you will see 3 processes in task manager and each process will have a minimum of one thread. If an unhandled exception occurs in the program, the entire process is torn down, but it doesn’t affect other processes because they are isolated for each other. &lt;/p&gt;

  &lt;p&gt;Processes, however, are not free. Starting and maintaining a process requires CPU time and memory, both of which are finite, and more processes and threads require more resources. &lt;/p&gt;

  &lt;p&gt;.NET improves resource consumption and adds an additional degree of isolation through Application Domains or AppDomains. AppDomains live within a process and your application runs inside an AppDomain.&lt;/p&gt;

  &lt;p&gt;K. Scott Allen &lt;a href="http://odetocode.com/Articles/305.aspx"&gt;summarizes&lt;/a&gt; the relationship between the worker process and AppDomains quite nicely:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;You’ve created two ASP.NET applications on the same server, and have not done any special configuration. What is happening? &lt;/p&gt;

    &lt;p&gt;A single ASP.NET worker process will host both of the ASP.NET applications. On Windows XP and Windows 2000 this process is named aspnet_wp.exe, and the process runs under the security context of the local ASPNET account. On Windows 2003 the worker process has the name w3wp.exe and runs under the NETWORK SERVICE account by default. &lt;/p&gt;

    &lt;p&gt;An object lives in one AppDomain. Each ASP.NET application will have it’s own set of global variables: Cache, Application, and Session objects are not shared. Even though the code for both of the applications resides inside the same process, the unit of isolation is the .NET AppDomain. If there are classes with shared or static members, and those classes exist in both applications, each AppDomain will have it’s own copy of the static fields – the data is not shared. The code and data for each application is safely isolated and inside of a boundary provided by the AppDomain &lt;/p&gt;

    &lt;p&gt;In order to communicate or pass objects between AppDomains, you’ll need to look at techniques in .NET for communication across boundaries, such as .NET remoting or web services. &lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;Here is a logical view borrowed from &lt;a href="http://www.matlus.com/instantiating-business-layers-asp-net-performance/"&gt;a post by Shiv Kumar&lt;/a&gt; that helps to show this relationship visually:&lt;/p&gt;

  &lt;p&gt;&lt;img title="IISAppPoolAndGlobal" border="0" alt="IISAppPoolAndGlobal" src="http://www.matlus.com/content/uploads/2011/01/IISAppPoolAndGlobal_7a87db2b-b0be-4e84-96dd-d2bf6d0f4cfa.jpg" width="367" height="271" /&gt;&lt;/p&gt;

  &lt;p&gt;As outlined in steps 1 – 7 above, when a request comes in, IIS uses an I/O thread to dispatch the request off to ASP.NET. ASP.NET immediately sends the request to the CLR thread pool which returns immediately with a pending status. This frees the IIS I/O thread to handle the next request and so on. Now, if there is a thread available in the thread pool, life is good, and the work item is executed, returning back to the I/O thread in step 7. However, if all of the threads in the thread pool are busy, the request will queue until a CLR thread pool thread is available to process the work item, and if the queue length is too high, users will receive a somewhat terse request to go away and come back later.&lt;/p&gt;

  &lt;p&gt;This is a bit of an extreme trivialization of what happens. There are a number of knobs that can be set in IIS and ASP.NET that allow you to tune the number of concurrent requests, threads and connections that affect both IIS and the CLR thread pool. For example, the IIS thread pool has a maximum thread count of 256. ASP.NET initializes its thread pool to 100 threads per processor/core. You can adjust things like the maximum number of concurrent requests per CPU (which defaults to 5000) and maximum number of connections of 12 per CPU but this can be increased. This stuff is not easy to grasp, and system administrators dedicate entire careers to getting this right. In fact, it is so hard, that we are slowly moving away from having to manage this ourselves and just paying some really smart engineers to do it for us, at massive scale. &lt;/p&gt;

  &lt;p&gt;That said, if you are curious or want to read more, &lt;a href="http://%20http//blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx"&gt;Thomas Marquardt&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc164128.aspx"&gt;Fritz Onion&lt;/a&gt; cover IIS and CLR threading superbly in their respective posts. &lt;/p&gt;

  &lt;p&gt;Back to the example. If all of your code in step 7 (your app) is synchronous, then the number of concurrently executing &lt;strong&gt;requests&lt;/strong&gt; is equal to the number of &lt;strong&gt;threads&lt;/strong&gt; available to concurrently execute your requests and if you exceed this, your application/service will simply grind to a halt. &lt;/p&gt;

  &lt;p&gt;This is why asynchronous programming is so important. If your application/service (that runs in step 7) is well designed, and makes efficient use of IO by leveraging async so that work is distributed across multiple threads, then there are naturally more threads always ready to do work because the the total processing time of a request becomes that of the longest running operation instead of the sum of all operations. Do this right, and your app can scale pretty darn well as long as there are threads available to do the work. &lt;/p&gt;

  &lt;p&gt;However, as I mentioned, these threads are not free and in addition, there is a cost in switching from the kernel thread to the IIS thread and the CLR thread which results in additional CPU cycles, memory and, latency. &lt;/p&gt;

  &lt;p&gt;It is evident that to minimize latency, you apps must perform the work they need to as quickly as possible to keep threads free and ready to do more work. Leveraging asynchrony is key. &lt;/p&gt;

  &lt;p&gt;Even in era where scaling horizontally is simply a matter of pushing a button and swiping a credit card, an app that scales poorly on premise will scale poorly in the cloud, and both are expensive. Moreover, having written a lot of code, and worked with and mentored many teams in my career, I’ll admit that writing asynchronous code is just plain hard. I’ll even risk my nerd points in admitting that given the choice, I’ll write synchronous code all day long if I can get away with it.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;So, what’s so different about Node?&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;My biggest source of confusion in digging into Node is the assertion that it is event-based &lt;strong&gt;&lt;em&gt;and&lt;/em&gt;&lt;/strong&gt; single threaded. &lt;/p&gt;

  &lt;p&gt;As we’ve just covered in our learning model, IIS and .NET are quite capable of async, but it certainly can’t do that on a single thread. &lt;/p&gt;

  &lt;p&gt;Well, guess what? Neither can Node. Wait, there’s more. &lt;/p&gt;

  &lt;p&gt;If you think about it for just a few seconds, highly concurrent, event-driven and single threaded do not mix. Intentional or otherwise, “single threaded” is a red herring and something that has simply been propagated over and over. Like a game of telephone, it’s meaning has been distorted and this is the main thing that was driving me NUTS.&lt;/p&gt;

  &lt;p&gt;Let’s take a closer look. &lt;/p&gt;

  &lt;p&gt;In Node, an program/application is created in a process, just like in the .NET world. If you run Node on Windows, you can see an instance of the process for each .js program you have running in Task Manager. &lt;/p&gt;

  &lt;p&gt;What makes Node unique is *not* that it is single-threaded, it’s the way in which it manages event-driven/async for you and this where the concept of an Event Loop comes in.&lt;/p&gt;

  &lt;p&gt;To provide an example, to open a WebSocket server that is compliant with the latest IETF and W3C standards, you write code like this written by my friend &lt;a href="http://twitter.com/adammokan"&gt;Adam Mokan&lt;/a&gt;:&lt;/p&gt;

  &lt;pre&gt;&lt;pre&gt;  1: var ws = require('websocket.io')
&lt;/pre&gt;&lt;pre&gt;  2:   , server = ws.listen(3000)
&lt;/pre&gt;&lt;pre&gt;  3: 
&lt;/pre&gt;&lt;pre&gt;  4: server.on('connection', function (socket) {
&lt;/pre&gt;&lt;pre&gt;  5:   
&lt;/pre&gt;&lt;pre&gt;  6:   console.log('connected to client');
&lt;/pre&gt;&lt;pre&gt;  7:   socket.send('You connected to a web socket!');
&lt;/pre&gt;&lt;pre&gt;  8: 
&lt;/pre&gt;&lt;pre&gt;  9:   socket.on('message', function (data) { 
&lt;/pre&gt;&lt;pre&gt; 10: 		console.log('nessage received:', data);
&lt;/pre&gt;&lt;pre&gt; 11:   });
&lt;/pre&gt;&lt;pre&gt; 12: 
&lt;/pre&gt;&lt;pre&gt; 13:   socket.on('close', function () { 
&lt;/pre&gt;&lt;pre&gt; 14: 		console.log('socket closed!');
&lt;/pre&gt;&lt;pre&gt; 15:   });
&lt;/pre&gt;&lt;pre&gt; 16: });&lt;/pre&gt;&lt;/pre&gt;

  &lt;p&gt;As soon as ws.listen(3000) executes, a WebSocket server is created on a &lt;strong&gt;single thread&lt;/strong&gt; which listens continuously on port 3000. When an HTML5 WebSocket compliant client connects to it, it fires the ‘connection’ event which the loop picks up and immediately publishes to the thread pool (see, I told you it was only half the story), and is ready to receive the next request. Thanks to the V8 Engine, this happens really, really fast. &lt;/p&gt;

  &lt;p&gt;What’s cool is that the program *is* the server. It doesn’t require a server like IIS or Apache to delegate requests to it. Node is fully capable of hosting an HTTP or TCP socket, and it &lt;em&gt;&lt;strong&gt;does do this on a single thread. &lt;/strong&gt;&lt;/em&gt;On the surface, this is actually quite similar to WCF which can be hosted in any CLR process or IIS, and to take this analogy one step further, you could configure a self-hosted WCF service as a singleton with multiple concurrency for a similar effect. But, as you well know, there is a ton of work that now needs to be done from a synchronization perspective and if you don’t use async to carry out the work, your performance will pretty much suck.&lt;/p&gt;

  &lt;p&gt;Wait! You say. Other than an (arguably) easier async programming model, how is this different than IIS/WAS and ASP.NET or WCF? Take a look at this drawing from from a great &lt;a href="http://www.aaronstannard.com/post/2011/12/14/Intro-to-NodeJS-for-NET-Developers.aspx"&gt;post&lt;/a&gt; by &lt;a href="http://www.aaronstannard.com/post/2011/12/14/Intro-to-NodeJS-for-NET-Developers.aspx"&gt;Aarron Stannard&lt;/a&gt; who just happens to be a Developer Evangelist at Microsoft:&lt;/p&gt;

  &lt;p&gt;&lt;img title="nodejs for dotnet" border="0" alt="nodejs for dotnet" src="http://www.aaronstannard.com/image.axd?picture=nodejs for dotnet_thumb.png" width="557" height="352" /&gt;&lt;/p&gt;

  &lt;p&gt;As you can see, there is more than one thread involved. I don’t mean this to sound like a revelation, but it is a necessary refinement to explain how the concurrency is accomplished. But, and it’s a BIG but, unlike .NET, you don’t have a choice but to write your code asynchronously. As you can see in the code sample above, you simply can’t write synchronous code in Node. The work for each event is delegated work to an event handler by the loop immediately after the event fires . The work is picked up by a worker thread in the thread pool and then calls back to the event loop which send the request on its way. It is kind of subtle, but the single thread is *almost* never busy and when it is, it is only busy for a very short period of time. &lt;/p&gt;

  &lt;p&gt;This is different from our model in at least 3 ways I can think of:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Your code is aysnc by default, period. &lt;/li&gt;

    &lt;li&gt;There is no context switching as the Event Loop simply publishes and subscribes to the thread pool. &lt;/li&gt;

    &lt;li&gt;The Event Loop never blocks. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;&lt;strong&gt;Your code is aysnc by default, period. &lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;This can’t be understated. Writing asynchronous code is hard, and given the option, most of us won’t. In a thread-based approach, particularly where all work isn’t guaranteed to be asynchronous, latency can become a problem. This isn’t optional in Node, so you either learn async or go away. Since it’s JavaScript, the language is pretty familiar to a very, very wide range of developers.&lt;/p&gt;

  &lt;p&gt;Node is very low level, but modules and frameworks like Express add sugar on top of it that help take some of the sting out of it and modules like Socket.IO and WebSocket.IO are pure awesome sauce. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;There is no context switching as the Event Loop simply publishes and subscribes to the thread pool&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;I am not a threading expert, but simple physics tells me that that 0 thread hops is better than a minimum of 3. &lt;/p&gt;

  &lt;p&gt;I guess this might be analogous to a hypothetical example where HTTP.sys is the only gate, and WWW Publishing Service, WAS, ASP.NET are no longer in play, but unless HTTP.sys was changed from a threaded approach for concurrency to an Event Loop, I’m guessing it wouldn’t necessarily be apples to apples.&lt;/p&gt;

  &lt;p&gt;With Node, while there are worker threads involved, since they are each carrying out one and only one task at a time asynchronously, the CPU and memory footprint should be lower than a multi-treaded scenario, since less threads are required. This tends to be better for scalability in a highly concurrent environment, even on commodity hardware.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;The Event Loop never blocks. &lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;This is still something I’m trying to get my head around, but conceptually, what appears to be fundamentally different is that the Event Loop always runs on the same, single I/O thread. It is never blocking, but instead waits for something to happen (a connection, request, message, etc.) before doing anything, and then, like a good manager, simply delegates the work to an army of workers who report back when the work is done. In other words, the worker threads do all the work, while the Event Loop just kind of chills waiting for the next request and while it is waiting, it consumes 0 resources. &lt;/p&gt;

  &lt;p&gt;One of the things that I am not clear on is that when the callbacks are serialized back to the loop, only one callback can be handled at one time, so, if a request comes in at the exact same time that the loop is temporarily busy with the callback, will that request block, even if just for the slightest instant? &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;So?&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Obviously, still being very new to Node, I have a ton to learn, but it is clear that for highly concurrent, real-time scenarios, Node has a lot of promise. &lt;/p&gt;

  &lt;p&gt;Does this mean that I’m abandoning .NET for Node? Of course not. For one, it will take a few years to see how things pan out in the wild, but the traction that Node is getting can’t be ignored, and it could very well signal the shift to event-based server programming and EDA in the large.&lt;/p&gt;

  &lt;p&gt;I’d love to know what you think, and as I mentioned in the introduction, welcome your comments and feedback.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Resources:&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.matlus.com/instantiating-business-layers-asp-net-performance/"&gt;http://www.matlus.com/instantiating-business-layers-asp-net-performance/&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://odetocode.com/Articles/305.aspx"&gt;http://odetocode.com/Articles/305.aspx&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/101/introduction-to-iis-architecture/"&gt;http://learn.iis.net/page.aspx/101/introduction-to-iis-architecture/&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc164128.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc164128.aspx&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx"&gt;http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/tmarq/archive/2010/04/14/performing-asynchronous-work-or-tasks-in-asp-net-applications.aspx"&gt;http://blogs.msdn.com/b/tmarq/archive/2010/04/14/performing-asynchronous-work-or-tasks-in-asp-net-applications.aspx&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://nodebeginner.org/"&gt;http://nodebeginner.org/&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.beakkon.com/geek/node.js/why-node.js-single-thread-event-loop-javascript"&gt;http://www.beakkon.com/geek/node.js/why-node.js-single-thread-event-loop-javascript&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.aaronstannard.com/post/2011/12/14/Intro-to-NodeJS-for-NET-Developers.aspx"&gt;http://www.aaronstannard.com/post/2011/12/14/Intro-to-NodeJS-for-NET-Developers.aspx&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.quora.com/How-does-an-event-loop-work"&gt;http://www.quora.com/How-does-an-event-loop-work&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb"&gt;http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;• Hanu Kommalapati&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/hanuk"&gt;hanuk&lt;/a&gt;) listed five &lt;a href="http://blogs.msdn.com/b/hanuk/archive/2012/01/28/ecm-cms-systems-on-windows-azure.aspx"&gt;ECM / CMS Systems on Windows Azure&lt;/a&gt; in a 1/28/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-R6D3XeSxGjo/TyWENGF3RRI/AAAAAAAAaJs/gScRHxs5u64/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-T9bsKoBWccM/TyWENq3-pSI/AAAAAAAAaJ0/xQmoVTD45qc/image_thumb%25255B1%25255D.png?imgmax=800" width="54" height="66" /&gt;&lt;/a&gt;Here is a list of CMS systems that are available on Windows Azure from various ISVs:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Ektron CMS for .NET on Windows Azure: &lt;a href="http://www.ektron.com/Solutions/Technology-and-features/Features-and-Tools/Ektron-Azure-Edition/"&gt;http://www.ektron.com/Solutions/Technology-and-features/Features-and-Tools/Ektron-Azure-Edition/&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;Telerik Sitefinity: &lt;a href="http://www.sitefinity.com/asp-net-cms-features-for-it-managers/windows-azure.aspx"&gt;http://www.sitefinity.com/asp-net-cms-features-for-it-managers/windows-azure.aspx&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Sitecore CMS on Azure: &lt;a href="http://www.sitecore.net/Azure"&gt;http://www.sitecore.net/Azure&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;Kentico CMS on Azure: &lt;a href="http://www.kentico.com/Product/All-Features/Website/Windows-Azure"&gt;http://www.kentico.com/Product/All-Features/Website/Windows-Azure&lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;Drupal on Azure: &lt;a href="http://azurephp.interoperabilitybridges.com/articles/how-to-deploy-drupal-to-windows-azure-using-the-drupal-scaffold"&gt;http://azurephp.interoperabilitybridges.com/articles/how-to-deploy-drupal-to-windows-azure-using-the-drupal-scaffold&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steve Marx&lt;/strong&gt; (@&lt;a href="http://twitter.com/smarx"&gt;smarx&lt;/a&gt;) announced his departure from Microsoft for life as an entrepreneur in 1/27/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-vDszL1AQUbM/TyRY6MMb8GI/AAAAAAAAaCU/D3QaNhWVt3g/s1600-h/image%25255B91%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-2iV87Qlf9oA/TyRY6dsyJiI/AAAAAAAAaCc/ZsnOKIacU9I/image_thumb%25255B30%25255D.png?imgmax=800" width="57" height="66" /&gt;&lt;/a&gt;I joined Microsoft in 2002, right out of college. Since then, every few years, I've looked for a new challenge, whether that's a new role (tester, developer, evangelist, program manager, two kinds of &amp;quot;strategist,&amp;quot; technical product manager) or a new technology (Windows, static code analysis, ASP.NET AJAX, Windows Azure). For the past almost-decade, I've found all those new challenges within Microsoft. In my opinion, one of the biggest advantages of working at Microsoft is that it's easy to move around the company and find the right role. There's no shortage of interesting work to do and great people to work with.&lt;/p&gt;

  &lt;p&gt;After more than four years working on Windows Azure, I'm ready to find a new challenge again. This time, however, I'd like to create something all of my own. To that end, I'm cofounding a company with a friend (and former coworker). I won't say what we're going to be working on because we honestly don't know yet! 
    &lt;br /&gt;I'm sad to leave Microsoft and Windows Azure. I think this is going to be an amazing year for Windows Azure, and it's going to be strange for me to watch it from the outside. At the same time, I'm excited for the next stage of my career as an entrepreneur.&lt;/p&gt;

  &lt;p&gt;On a practical note, this blog isn't going anywhere, though its content will broaden to other topics. I'm still happy to answer questions about blog posts or code I've written over the past few years, so don't hesitate to email me at &lt;a href="mailto:smarx@smarx.com"&gt;smarx@smarx.com&lt;/a&gt; or ping me on Twitter (&lt;a href="http://twitter.com/smarx"&gt;@smarx&lt;/a&gt;) about anything.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We Azure coders will miss you, Steve!&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Avkash Chauhan&lt;/strong&gt; (@&lt;a href="http://twitter.com/avkashchauhan"&gt;avkashchauhan&lt;/a&gt;) described &lt;a href="http://blogs.msdn.com/b/avkashchauhan/archive/2012/01/27/windows-azure-troubleshooting-taking-specific-windows-azure-instance-offline.aspx"&gt;Windows Azure Troubleshooting - Taking specific Windows Azure Instance offline&lt;/a&gt; in a 1/27/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-yXOdI10BQ-U/TyRY64Mi1DI/AAAAAAAAaCk/EUQMNHb5l1U/s1600-h/image%25255B19%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-5KabZ3yjtEs/TyRY7Bjt68I/AAAAAAAAaCw/DU8TTBWNWF8/image_thumb%25255B6%25255D.png?imgmax=800" width="65" height="57" /&gt;&lt;/a&gt;When you have lots of instances running on Windows Azure, you may need to investigate issues on a specific instance however there is not direct way, you can offline specific instance from your total instances. To investigate a specific instance your first requirement is to take that instance out of the network load-balancer so that you can enable offline troubleshooting. Azure Service Management portal does not provide such functionality however you can use PowerShell and Windows Azure cmdlets on the Compute nodes to remove your instance away from Load Balancer. To use it, you must have Remote login enabled on your Windows Azure application.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Here are the steps:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Remote login to your specific instance you would want to make offline &lt;/li&gt;

    &lt;li&gt;Launch PowerShell as Administrator &lt;/li&gt;

    &lt;li&gt;Run command - Add-PSSnapIn Microsoft.WindowsAzure.ServiceRuntime &lt;/li&gt;

    &lt;li&gt;Select ‘R’ to run the untrusted code &lt;/li&gt;

    &lt;li&gt;Run command - ‘Set-RoleInstanceStatus –busy’ &lt;/li&gt;

    &lt;li&gt;Please leave PowerShell window open to keep instance in offline mode (If you will close the PowerShell window the instance will become Active again). You will also see a message about it in PowerShell command window. &lt;/li&gt;

    &lt;li&gt;Now it will take about 2-5 minutes and after that time your specific instance will be off line. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;The PowerShell command window look like as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5808.offline11.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5808.offline11.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Now let’s check the Windows Azure Management Portal for instance status:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/7853.offline12.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/7853.offline12.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;To verify that we have offline the same instance run PS command “Get-RoleInstance –Current” as below”&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/1680.offline13.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/350x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/1680.offline13.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;After I close the PowerShell Windows my specific instance will become responsive again in next 2-5 minutes as below:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5556.offline14.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-41-09/5556.offline14.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;That’s it!!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Nathan Totten&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/ntotten"&gt;ntotten&lt;/a&gt;) reported &lt;a href="http://blog.ntotten.com/2012/01/26/windows-azure-toolkit-for-social-games-version-1-2-2-released/"&gt;Windows Azure Toolkit for Social Games Version 1.2.2 Released&lt;/a&gt; in a 1/26/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-8N7wA1sQt04/TyRY7dwpJ9I/AAAAAAAAaC4/SFNqxvq6cg8/s1600-h/image%25255B85%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-MQBJrzYr1ZI/TyRY7gsywTI/AAAAAAAAaDA/0WlmdJlBo9o/image_thumb%25255B28%25255D.png?imgmax=800" width="49" height="66" /&gt;&lt;/a&gt;Today, I released version 1.2.2 of the &lt;a href="https://github.com/WindowsAzure-Toolkits/wa-toolkit-games"&gt;Windows Azure Toolkit for Social Games&lt;/a&gt;. You can download the self-extracting package &lt;a href="https://github.com/downloads/WindowsAzure-Toolkits/wa-toolkit-games/WATGames-v1.2.2.exe"&gt;here&lt;/a&gt;. This version does not add any new features compared to the last (Version 1.2.0 – Beta), but this release is considered stable. We added a number of performance enhancements as well as optimized the setup of the Autofac dependency injection. The big news with this release is that we have moved the project to &lt;a href="https://github.com/WindowsAzure-Toolkits/wa-toolkit-games"&gt;Github&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;For those who haven’t downloaded or used the social gaming toolkit yet I would encourage you to check it out. There are a lot of common patterns and tons of reusable code in the toolkit that applies for many scenarios besides the gaming space. With more and more applications relying on real-time communication, sharing, and feedback the mechanisms that are used in games can be applied to many kinds of software.&lt;/p&gt;

  &lt;h5&gt;Github&lt;/h5&gt;

  &lt;p&gt;Since we started this project Github has become an increasingly popular place to host the open source projects. Additionally, the &lt;a href="https://github.com/WindowsAzure"&gt;Windows Azure SDKs&lt;/a&gt; are now open sourced and available on Github. We have seen a great deal of support from the community in this move and believe that Github is the right place to host this toolkit. Our hope is that with the amazing support Github offers for social coding such as forking, pull requests, etc. more users will be able to utilize and contribute to this project.&lt;/p&gt;

  &lt;p&gt;For those of you that have not used git or Github before I highly recommend watching the &lt;a href="http://tekpub.com/productions/git"&gt;Mastering Git video&lt;/a&gt; on &lt;a href="http://tekpub.com/"&gt;Tekpub&lt;/a&gt;. It costs $15, but it is worth it if you like learning though videos. If you like learning by doing and reading the instructions Github has a great set of help documentation on there &lt;a href="http://help.github.com/"&gt;site&lt;/a&gt;.&lt;/p&gt;

  &lt;h5&gt;Cloning a Repository&lt;/h5&gt;

  &lt;p&gt;Rather than simply downloading the zip or self-extracting package of the Social Gaming Toolkit, you may want to clone the repository. Doing this will make it easier to pull in changes when we release future updates. It also allows you to make local changes to the toolkit and still update code that changes in future versions without loosing all your work.&lt;/p&gt;

  &lt;p&gt;In order to clone a repository first you must have git installed on your computer. You can download git &lt;a href="http://git-scm.com/"&gt;here&lt;/a&gt;. After you have git installed simply open the command prompt and clone the repository using the following command.&lt;/p&gt;

  &lt;pre&gt;git clone git@github.com:WindowsAzure-Toolkits/wa-toolkit-games.git&lt;/pre&gt;

  &lt;h5&gt;Forking a Project&lt;/h5&gt;

  &lt;p&gt;One of the best features of Github is that you can easily &lt;a href="http://help.github.com/fork-a-repo/"&gt;fork projects&lt;/a&gt; and make your own edits. If you use this toolkit and want to keep your own version simply create a fork and make your edits. Additionally, if you make a change that you think everyone would benefit from simply&lt;a href="http://help.github.com/send-pull-requests/"&gt; send a pull request&lt;/a&gt; and request that we add your change to our fork.&lt;/p&gt;

  &lt;p&gt;Forking a repository is easy. Simply click the fork button and select where you want the fork to live.&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="forks" alt="" src="http://nathantotten.files.wordpress.com/2012/01/forks.png?w=584&amp;amp;h=236" width="560" height="226" /&gt;&lt;/p&gt;

  &lt;p&gt;After you have forked the project, you can push change[s] to your own repository. If you have a change that you want to be added to the original repository all you have to do is send a pull request.&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="pullrequest" alt="" src="http://nathantotten.files.wordpress.com/2012/01/pullrequest.png?w=584" /&gt;&lt;/p&gt;

  &lt;p&gt;If your pull request is accepted, your changes will be added to the original repository for everybody to use. Feel free to add features or fix any bugs you find and send us a pull request.&lt;/p&gt;

  &lt;p&gt;As always, feel free to leave comments, feedback, or suggestions. I would love to hear how you are using the toolkit and what you think about using Github.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;PRNewsWire&lt;/strong&gt; asserted “Integration Offers Unparalleled End-to-End Node.js Development Experience” in the introduction to a &lt;a href="http://cloudinterop.ulitzer.com/node/2139004"&gt;Cloud9 IDE to Offer Windows Azure Deployment&lt;/a&gt; press release of 1/24/2012 (missed when published):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-1Q_mc1jRlSo/TyRY7_D3Z7I/AAAAAAAAaDI/aepxuMiGQwk/s1600-h/image%25255B45%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-xCcQHj4txhQ/TyRY8PVV2UI/AAAAAAAAaDQ/ScVRACzJE-0/image_thumb%25255B15%25255D.png?imgmax=800" width="160" height="27" /&gt;&lt;/a&gt;&lt;a href="http://c9.io/"&gt;Cloud9 IDE, Inc.&lt;/a&gt;, the leading cloud-based Integrated Development Environment (IDE) for web and mobile applications, has announced the availability of &lt;a href="http://www.windowsazure.com/en-us/"&gt;Windows Azure&lt;/a&gt; deployment from the IDE. Windows Azure is an open cloud platform that enables users to manage applications across a global network of Microsoft-managed datacenters. The integration offers Node.js developers the advantages of a comprehensive cloud-based development environment, paired with Windows Azure's industry-leading ease of use, scalability, and interoperability. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-dWcYJuiCIrE/TyRY8XO3dKI/AAAAAAAAaDY/tnQih371K9c/s1600-h/image%25255B48%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-663WAPZCmwM/TyRY8rWabkI/AAAAAAAAaDg/fMGbN4DTWa0/image_thumb%25255B16%25255D.png?imgmax=800" width="65" height="39" /&gt;&lt;/a&gt;Cloud9 IDE runs in modern web browsers and enables developers to run, debug and deploy Node.js applications from anywhere, at anytime. Integrating the Node.js IDE with Windows Azure allows developers to directly deploy applications and permanently host code on Windows Azure's robust services platform. Developers can instantly benefit from Windows Azure's high availability and 'infinite scale' model, which enables users to deploy enterprise-level applications globally, with the ability to grow or shrink resource usage based on need.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;&amp;quot;We're pleased to offer Windows Azure deployment from Cloud9 IDE,&amp;quot; said Ruben Daniels, CEO, Cloud9 IDE. &amp;quot;Like Cloud9, Microsoft has demonstrated a strong commitment to the Node.js community through Windows Azure. This relationship shows how quickly Node.js is becoming the runtime of cloud, and proves that a fully cloud-based development workflow is now a reality.&amp;quot;&lt;/p&gt;

  &lt;p&gt;Developers can also take advantage of the Node-specific capabilities offered by both Cloud9 IDE and Windows Azure. Cloud9 IDE offers a variety of Node features, such as syntax highlighting, NPM support, code completion, testing and in-browser debugging. The company also recently announced a variety of tools designed to support the growth of the Node.js community, including &lt;a href="http://nodebits.org/"&gt;Nodebits.org&lt;/a&gt;, a blog featuring high-quality Node.js tutorials, and &lt;a href="http://nodemanual.org/"&gt;Nodemanual.org&lt;/a&gt;, Cloud9 IDE's Node documentation site. Similarly, Node.js developers can utilize Windows Azure's new &lt;a href="http://www.windowsazure.com/en-us/develop/nodejs/"&gt;Node.js Developer Center&lt;/a&gt; and &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=azurenodepowershell&amp;amp;clcid=0x409"&gt;Windows Azure SDK for Node.js&lt;/a&gt;. &lt;/p&gt;

  &lt;p&gt;&amp;quot;Windows Azure's adoption of Node.js gives customers new and powerful options that let them take advantage of the openness and flexibility of the cloud,&amp;quot; said, Scott Guthrie, Corporate Vice President, Microsoft Server and Tools Business. &amp;quot;By working with Cloud9 IDE, our goal is to make development even easier for customers and to continue to demonstrate our support for interoperability.&amp;quot;&lt;/p&gt;

  &lt;p&gt;The Windows Azure integration marks a significant milestone as Cloud9 IDE continues to revolutionize the landscape of modern-day programming. Developers can now extend the professional Node.js experience offered by Cloud9 IDE onto Windows Azure, for a complete end-to-end development solution.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;About Cloud9 IDE&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;Cloud9 IDE, a leading cloud-based Integrated Development Environment, enables web and mobile developers to work together in remote teams anywhere, anytime. With the rise of JavaScript and the explosion of mobile apps, Cloud9 IDE is leading the revolution with Development as a Service (DaaS) for Node.js, supporting JavaScript and HTML5. Founded in 2010, the company, based in San Francisco and Amsterdam, received additional funding from Accel Partners and Atlassian. To learn more about Cloud9 IDE, please visit &lt;a href="http://www.cloud9ide.com"&gt;www.cloud9ide.com&lt;/a&gt;. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt; 

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Light"&gt;Visual Studio LightSwitch and Entity Framework 4.1+&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;• Paul Van Bladel&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/paulvanbladel"&gt;paulvanbladel&lt;/a&gt;) described how to implement &lt;a href="http://blog.pragmaswitch.com/?p=258"&gt;Row level security&lt;/a&gt; in Visual Studio LightSwitch on 1/29/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h5&gt;&lt;a href="http://lh3.ggpht.com/-51DpU1JoeGk/TyWEN_N2O6I/AAAAAAAAaJ8/mtw5GH6NwQo/s1600-h/image%25255B10%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-s-GhGCFn3dI/TyWEOBPSfMI/AAAAAAAAaKE/VJXqheMbQLA/image_thumb%25255B4%25255D.png?imgmax=800" width="54" height="66" /&gt;&lt;/a&gt;Introduction&lt;/h5&gt;

  &lt;p&gt;The previous post covered table level security. Let’s focus now on row level security: which rows can a user see depending on her permission set.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-lHJYK1geIQY/TyWEOZT9AoI/AAAAAAAAaKM/kiSOg5EEW-Q/s1600-h/image%25255B7%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-RKKh930vXeE/TyWEOtoYXlI/AAAAAAAAaKU/8vli-oCQz3Y/image_thumb%25255B3%25255D.png?imgmax=800" width="170" height="53" /&gt;&lt;/a&gt;Let’s take in mind the app for managing purchase requests. I have an PurchaseOrder which is initially requested by a company employee (we call them requestors). Before being sent eventually to the vendor, the purchase order first needs to be approved by several other parties: a procurement officers and and Adviser.&lt;/p&gt;

  &lt;p&gt;Let’s imagine that following row level security rules needs to be implemented:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;requestors can see only their own requests &lt;/li&gt;

    &lt;li&gt;procurement officers can only see requests to which they are assigned as procurement officer &lt;/li&gt;

    &lt;li&gt;advisers can see only those requests to which they are assigned as adviser.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;An important requirement is that it is perfectly possible that users have different roles at the same time: e.g. an adviser can hand in as well a purchase request. This means that she can see requests handed in by her and requests in which she particapates as adviser.&lt;/p&gt;

  &lt;h3&gt;Preprocess query method and permissions&lt;/h3&gt;

  &lt;p&gt;It is clear that the row level security that we want to implement is handled in the ProProcessQuery method associated with the PurchaseRequest entity. Furthermore, the LightSwitch permission mechanism is used as “entry point” to the security implementation.&lt;/p&gt;

  &lt;p&gt;Let’s keep the data model as simple as possible:&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blog.pragmaswitch.com/wp-content/uploads/2012/01/purchaserequestentity.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="purchaserequestentity" alt="" src="http://blog.pragmaswitch.com/wp-content/uploads/2012/01/purchaserequestentity.png" width="560" height="335" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;We define 3 permissions in the Access Control Tab of the application properties:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;RLS_ApplyFilteringOnAssociatedRequestor &lt;/li&gt;

    &lt;li&gt;RLS_ApplyFilteringOnAssociatedProcurementOfficer &lt;/li&gt;

    &lt;li&gt;RLS_ApplyFilteringOnAssociatedAdviser&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;The RLS stands for Row Level Security. By using this prefix the permissions can be easily identified in the permission list. That’s practical, because row level security permissions have a slightly different semantic than other permissions. A “normal” permission is a kind of additional right in the application. So, more permissions, more rights. That’s kind of different with the row level security permissions. I you have a certain RLS permission, additional filtering on data is applied, so in a way, you have less rights.&lt;/p&gt;

  &lt;h5&gt;What is wrong with the following approach&lt;/h5&gt;

  &lt;p&gt;What is the problem with following code?&lt;/p&gt;

  &lt;pre&gt;partial void PurchaseRequests_All_PreprocessQuery(ref IQueryable&amp;lt;LightSwitchApplication.PurchaseRequest&amp;gt; query)
        {
            bool applyRequestorFiltering= this.Application.User.HasPermission(Permissions.RLS_ApplyFilteringOnAssociatedRequestor);
            bool applyProcurementOfficerFiltering = this.Application.User.HasPermission(Permissions.RLS_ApplyFilteringOnAssociatedProcurementOfficer);
            bool applyAdviserFiltering = this.Application.User.HasPermission(Permissions.RLS_ApplyFilteringOnAssociatedAdviser);

            if (applyRequestorFiltering)
            {
                query = query.Where(r =&amp;gt; r.RequestorUserName == this.Application.User.Name);
            }

            if (applyProcurementOfficerFiltering)
            {
                query = query.Where(r =&amp;gt; r.ProcurementOfficerUserName == this.Application.User.Name);
            }

            if (applyAdviserFiltering)
            {
                query = query.Where(r =&amp;gt; r.AdviserUserName == this.Application.User.Name);
            }
        }&lt;/pre&gt;

  &lt;p&gt;What is happening here? We first take the 3 permissions in a simple boolean value (e.g. applyRequestorFiltering). Depending on the active filters, a specific predicate will be applied. This all makes sense and this works also perfectly under the assumption that the user has either:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;one of the 3 possible permissions: a single where clause is applied. &lt;/li&gt;

    &lt;li&gt;no permission at all: in this case the query will just be returned untouched.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;What happens when the user has e.g. both the requestor and the adviser permission? Well, .. the 2 filters are applied but only the &lt;strong&gt;Intersection &lt;/strong&gt;is returned and that’s not what we want. We want the records where the current user is requestor OR where the current user is Adviser.&lt;/p&gt;

  &lt;p&gt;It’s very tempting to try to combine the 3 predicates in one where clause, but you’ll see you end up with other trouble.&lt;/p&gt;

  &lt;h5&gt;Introducing the ConditionalOr Operator&lt;/h5&gt;

  &lt;p&gt;Try to see what’s happening here:&lt;/p&gt;

  &lt;pre&gt; partial void PurchaseRequests_All_PreprocessQuery(ref IQueryable&amp;lt;LightSwitchApplication.PurchaseRequest&amp;gt; query)
        {
            bool applyRequestorFiltering = this.Application.User.HasPermission(Permissions.RLS_ApplyFilteringOnAssociatedRequestor);
            bool applyProcurementOfficerFiltering = this.Application.User.HasPermission(Permissions.RLS_ApplyFilteringOnAssociatedProcurementOfficer);
            bool applyAdviserFiltering = this.Application.User.HasPermission(Permissions.RLS_ApplyFilteringOnAssociatedAdviser);

            if (!applyRequestorFiltering &amp;amp;&amp;amp; !applyProcurementOfficerFiltering &amp;amp;&amp;amp; !applyAdviserFiltering)
            {
                return;
            }

            Expression&amp;lt;Func&amp;lt;PurchaseRequest, bool&amp;gt;&amp;gt; StartWith = r =&amp;gt; false;
            Expression&amp;lt;Func&amp;lt;PurchaseRequest, bool&amp;gt;&amp;gt; requestorPredicate = r =&amp;gt; r.RequestorUserName == this.Application.User.Name;
            Expression&amp;lt;Func&amp;lt;PurchaseRequest, bool&amp;gt;&amp;gt; procurementOfficerPredicate = r =&amp;gt; r.ProcurementOfficerUserName == this.Application.User.Name;
            Expression&amp;lt;Func&amp;lt;PurchaseRequest, bool&amp;gt;&amp;gt; adviserPredicate = r =&amp;gt; r.AdviserUserName == this.Application.User.Name;

            Expression&amp;lt;Func&amp;lt;PurchaseRequest, bool&amp;gt;&amp;gt; predicate =
                StartWith
                .ConditionalOr(requestorPredicate, applyRequestorFiltering)
                .ConditionalOr(procurementOfficerPredicate, applyProcurementOfficerFiltering)
                .ConditionalOr(adviserPredicate, applyAdviserFiltering);
            query = query.Where(predicate);
        }&lt;/pre&gt;

  &lt;p&gt;So, we split the 3 permissions into 3 Expressions and we start with a query that’s returning nothing by applying the StartWith expression. Afterwards each filter is applied in a conditional way and Or-ed with the previous expression.&lt;/p&gt;

  &lt;p&gt;This will give the result we expect: in case a user has multiple permissions, the correct result set is returned.&lt;/p&gt;

  &lt;p&gt;Of course, we still need the code for the ConditionalOr operator (I found this approach here: &lt;a href="http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities-combining-predicates.aspx"&gt;http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities-combining-predicates.aspx&lt;/a&gt;):&lt;/p&gt;

  &lt;pre&gt;public static class Utility
    {
        public static Expression&amp;lt;T&amp;gt; Compose&amp;lt;T&amp;gt;(this Expression&amp;lt;T&amp;gt; first, Expression&amp;lt;T&amp;gt; second, Func&amp;lt;Expression, Expression, Expression&amp;gt; merge)
        {
            // build parameter map (from parameters of second to parameters of first)
            var map = first.Parameters.Select((f, i) =&amp;gt; new { f, s = second.Parameters[i] }).ToDictionary(p =&amp;gt; p.s, p =&amp;gt; p.f);

            // replace parameters in the second lambda expression with parameters from the first
            var secondBody = ParameterRebinder.ReplaceParameters(map, second.Body);

            // apply composition of lambda expression bodies to parameters from the first expression
            return Expression.Lambda&amp;lt;T&amp;gt;(merge(first.Body, secondBody), first.Parameters);
        }

        public static Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; And&amp;lt;T&amp;gt;(this Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; first, Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; second)
        {
            return first.Compose(second, Expression.And);
        }

        public static Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; Or&amp;lt;T&amp;gt;(this Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; first, Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; second)
        {
            return first.Compose(second, Expression.Or);
        }

        public static Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; ConditionalOr&amp;lt;T&amp;gt;(this Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; first, Expression&amp;lt;Func&amp;lt;T, bool&amp;gt;&amp;gt; second, bool? doCompose)
        {
            if (doCompose.Value == true)
            {
                return first.Compose(second, Expression.Or);
            }

            else
            {
                return first;
            }
        }
    }
    public class ParameterRebinder : ExpressionVisitor
    {
        private readonly Dictionary&amp;lt;ParameterExpression, ParameterExpression&amp;gt; map;

        public ParameterRebinder(Dictionary&amp;lt;ParameterExpression, ParameterExpression&amp;gt; map)
        {
            this.map = map ?? new Dictionary&amp;lt;ParameterExpression, ParameterExpression&amp;gt;();
        }

        public static Expression ReplaceParameters(Dictionary&amp;lt;ParameterExpression, ParameterExpression&amp;gt; map, Expression exp)
        {
            return new ParameterRebinder(map).Visit(exp);
        }

        protected override Expression VisitParameter(ParameterExpression p)
        {
            ParameterExpression replacement;
            if (map.TryGetValue(p, out replacement))
            {
                p = replacement;
            }
            return base.VisitParameter(p);
        }
    }&lt;/pre&gt;

  &lt;p&gt;Note that you can get the same result by using the excellent LinqKit Predicatebuilder (&lt;a href="http://www.albahari.com/nutshell/predicatebuilder.aspx"&gt;http://www.albahari.com/nutshell/predicatebuilder.aspx&lt;/a&gt;).&lt;/p&gt;

  &lt;h5&gt;Conclusion&lt;/h5&gt;

  &lt;p&gt;Row level security is key in every decent enterprise application. LightSwitch allows to implement row level security in an excellent way. Extending Linq with the conditionalOr operator allows to really tune the row level security at any level.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beth Massi&lt;/strong&gt; (@&lt;a href="http://twitter.com/bethmassi"&gt;bethmassi&lt;/a&gt;) posted a &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/26/beginning-lightswitch-address-book-sample.aspx"&gt;Beginning LightSwitch–Address Book Sample&lt;/a&gt; on 1/26/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-nYMqZ51ivCM/TyRY88smWsI/AAAAAAAAaDo/Cz72BElOz04/s1600-h/image%25255B33%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-ASUqo0ctkkE/TyRY9N2xHnI/AAAAAAAAaDw/6AdRTqXLo10/image_thumb%25255B10%25255D.png?imgmax=800" width="56" height="66" /&gt;&lt;/a&gt;Some folks have been asking for this so I just released the completed Address Book sample that you build step-by-step in the &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/01/beginning-lightswitch-getting-started.aspx"&gt;Beginning LightSwitch Article Series&lt;/a&gt;. &lt;/p&gt;

  &lt;h5&gt;&lt;a href="http://code.msdn.microsoft.com/Begining-LightSwitch-508763ea"&gt;&lt;img border="0" alt="Download Sample" src="http://i.msdn.microsoft.com/ee402630.Download_sm(en-us,MSDN.10).png" /&gt;&lt;/a&gt; &lt;a href="http://code.msdn.microsoft.com/Begining-LightSwitch-508763ea"&gt;Download the Address Book Sample&lt;/a&gt;&lt;/h5&gt;

  &lt;h5&gt;Read the Series&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-bXNtHNFiC30/TyRY9T9MgKI/AAAAAAAAaD4/EcZPCUIFamU/s1600-h/image_thumb1%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb1" border="0" alt="image_thumb1" align="right" src="http://lh5.ggpht.com/-OdegkTA2xyE/TyRY9juW0lI/AAAAAAAAaEA/O-SsPebcohc/image_thumb1_thumb%25255B1%25255D.png?imgmax=800" width="171" height="54" /&gt;&lt;/a&gt;Are you completely new to LightSwitch and software development? Read this entry-level article series to get started with the most important concepts you need to build any LightSwitch application.&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/06/beginning-lightswitch-part-1-what-s-in-a-table-describing-your-data.aspx"&gt;Part 1: What’s in a Table? Describing Your Data&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/08/beginning-lightswitch-part-2-feel-the-love-defining-data-relationships.aspx"&gt;Part 2: Feel the Love. Defining Data Relationships&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/14/beginning-lightswitch-part-3-screen-templates-which-one-do-i-choose.aspx"&gt;Part 3: Screen Templates, Which One Do I Choose?&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/15/beginning-lightswitch-part-4-too-much-information-sorting-and-filtering-data-with-queries.aspx"&gt;Part 4: Too much information! Sorting and Filtering Data with Queries&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/20/beginning-lightswitch-part-5-may-i-defining-user-permissions.aspx"&gt;Part 5: May I? Controlling Access with User Permissions&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/12/21/beginning-lightswitch-part-6-i-feel-pretty-customizing-the-quot-look-and-feel-quot-with-themes.aspx"&gt;Part 6: I Feel Pretty! Customizing the &amp;quot;Look and Feel&amp;quot; with Themes&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;More Information&lt;/h5&gt;

  &lt;p&gt;Visit the &lt;a href="http://msdn.com/lightswitch"&gt;LightSwitch Developer Center&lt;/a&gt; to download LightSwitch and get started learning.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=211226"&gt;&lt;img border="0" alt="" src="http://i.msdn.microsoft.com/ee402630.Numeral1_sm(en-us,MSDN.10).png" /&gt;&lt;/a&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=211226"&gt;Download Visual Studio LightSwitch&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/gg604823"&gt;&lt;img border="0" alt="" src="http://i.msdn.microsoft.com/ee402630.Numeral2_sm(en-us,MSDN.10).png" /&gt;&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/gg604823"&gt;Watch the instructional LightSwitch &amp;quot;How Do I?&amp;quot; videos&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff938857"&gt;&lt;img border="0" alt="Get essential training" src="http://i.msdn.microsoft.com/ee402630.Numeral3_sm(en-us,MSDN.10).png" /&gt;&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff938857"&gt;Get essential training&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-us/category/vslightswitch"&gt;&lt;img border="0" alt="" src="http://i.msdn.microsoft.com/ee402630.Numeral4_sm(en-us,MSDN.10).png" /&gt;&lt;/a&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-us/category/vslightswitch"&gt;Ask questions in the LightSwitch forums&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Infra"&gt;Windows Azure Infrastructure and DevOps&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;David Pallman&lt;/strong&gt; recommended &lt;a href="http://davidpallmann.blogspot.com/2012/01/taking-fresh-look-at-windows-azure.html"&gt;Taking a Fresh Look at the Windows Azure Development Experience&lt;/a&gt; in a 1/27/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-5H22TGV55Uw/TyRY96Vtf5I/AAAAAAAAaEI/CoNq7WEgKY8/s1600-h/image%25255B66%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-BscRhgo0ZBw/TyRY-Gswd4I/AAAAAAAAaEQ/FgydzH4R37Y/image_thumb%25255B22%25255D.png?imgmax=800" width="50" height="66" /&gt;&lt;/a&gt;Windows Azure has grown up over the years since it first debuted in late 2008. In this article we're going to take an updated look at what the cloud developer experience is with Windows Azure today. Here's what we'll cover, which will include a walk-through of developing a cloud application:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Key Online Resources &lt;/li&gt;

    &lt;li&gt;What You Need for Cloud Development &lt;/li&gt;

    &lt;li&gt;The Cloud Development Lifecycle &lt;/li&gt;

    &lt;li&gt;Application Development Walk-through &lt;/li&gt;
  &lt;/ul&gt;

  &lt;br /&gt;&lt;strong&gt;Key Online Resources&lt;/strong&gt; 

  &lt;br /&gt;&lt;strong&gt;Azure.com&lt;/strong&gt; 

  &lt;br /&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;You can't be an effective developer these days without knowing where your online lifelines are! In Windows Azure, that's been made easy by giving you one place to find just about everything: &lt;a href="http://azure.com/"&gt;Azure.com&lt;/a&gt;. Here are some of the things you can do there: 

  &lt;ul&gt;
    &lt;li&gt;Set up an account or a &lt;a href="http://www.developer.com/services/step-by-step-guide-to-setting-up-a-windows-azure-free-trial.html"&gt;90-day free trial account&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;Estimate your operation costs with a pricing calculator &lt;/li&gt;

    &lt;li&gt;See your current and past billing activity &lt;/li&gt;

    &lt;li&gt;Visit a developer center &lt;/li&gt;

    &lt;li&gt;Download an SDK &lt;/li&gt;

    &lt;li&gt;Find documentation &lt;/li&gt;

    &lt;li&gt;Go to community forums &lt;/li&gt;

    &lt;li&gt;Go to the Windows Azure Management Portal to manage your cloud solutions &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-9FsPTm0u6rI/TyK5mOw84qI/AAAAAAAACFs/sG6LDF29w9c/s1600/AzureDotCom.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" src="http://1.bp.blogspot.com/-9FsPTm0u6rI/TyK5mOw84qI/AAAAAAAACFs/sG6LDF29w9c/s400/AzureDotCom.png" width="400" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Whether you work in C# in Visual Studio or Java or PHP in Eclipse, Microsoft wants developers of all stripes to be able to use the Windows Azure platform. The Developer Centeron Azure.com lets you select your preferrred language/platform and gives you information relevant to the way you want to work.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-bJa4VRhWFpk/TyK6KYPZljI/AAAAAAAACF0/4ndz51j-sFc/s1600/AzureDotComDeveloperCenter.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" src="http://1.bp.blogspot.com/-bJa4VRhWFpk/TyK6KYPZljI/AAAAAAAACF0/4ndz51j-sFc/s400/AzureDotComDeveloperCenter.png" width="400" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Windows Azure Management Portal&lt;/strong&gt; 

    &lt;br /&gt;The Windows Azure Management Portal is where you provision cloud services, manage and deploy your solutions, and view status. You can get here by clicking the Manage link on Azure.com, or by navigating directly to &lt;a href="http://windows.azure.com/"&gt;windows.azure.com&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-X5Lb6e2hww0/TyK7OE-c7vI/AAAAAAAACF8/BkjIRNiLhWc/s1600/AzureMgmtPortal.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" src="http://4.bp.blogspot.com/-X5Lb6e2hww0/TyK7OE-c7vI/AAAAAAAACF8/BkjIRNiLhWc/s400/AzureMgmtPortal.png" width="400" height="306" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;
    &lt;br /&gt;&lt;strong&gt;What You Need for Cloud Development&lt;/strong&gt; 

    &lt;br /&gt;Let's review what you need in order to develop for Windows Azure. You will typically develop and testing your solution locally (using a simulator) before you deploy to a cloud data center. 

    &lt;br /&gt;&lt;strong&gt;To Develop Locally&lt;/strong&gt; 

    &lt;br /&gt;You will need the following in order to develop locally:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;A Windows PC (running Windows Vista or later, WIndows 7 recommended) &lt;/li&gt;

    &lt;li&gt;A development environment, such as Visual Studio or Eclipse &lt;/li&gt;

    &lt;li&gt;The Windows Azure SDK (download from Azure.com), which includes the Windows Azure Simulation Environment &lt;/li&gt;

    &lt;li&gt;SQL Server Express &lt;/li&gt;
  &lt;/ul&gt;
  &lt;strong&gt;To Deploy and Run in the Cloud&lt;/strong&gt; 

  &lt;br /&gt;You will need the following in order to deploy to a Windows Azure data center: 

  &lt;ul&gt;
    &lt;li&gt;A Windows Azure account (note there is a 90-trial available, and if you have an MSDN subscription that will also give you some free hours) &lt;/li&gt;
  &lt;/ul&gt;
  &lt;strong&gt;The Cloud Development Lifecycle&lt;/strong&gt; 

  &lt;br /&gt;In Windows Azure, the pattern is to develop and test locally as much as you can before deploying to the cloud. Once you're ready to run in the cloud, it's typical with the Compute service to first deploy to a Staging slot, test the solution in the cloud, and finally promote from Staging to Production (a one-click operation). After that, you allow people use your application, monitor and manage activity, and scale scale as needed if demand changes. 

  &lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-56gDUN3p9eM/TyLKUPqrxVI/AAAAAAAACGU/CSCSVDt5DSA/s1600/CloudDevLifecycle.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" src="http://4.bp.blogspot.com/-56gDUN3p9eM/TyLKUPqrxVI/AAAAAAAACGU/CSCSVDt5DSA/s400/CloudDevLifecycle.png" width="400" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Eventually you'll want to change something in your solution and then the process repeats. In an upgrade situation, promotion Staging to Production is actually swapping them. This allows you to leave the older deployment in Staging until you're sure Production is working as it should, then you can remove it. 
    &lt;br /&gt;&lt;strong&gt;Application Development Walk-through&lt;/strong&gt; 

    &lt;br /&gt;To illustrate what development is like, let's walk through provisoning, developing, testing, and deploying a cloud solution. 

    &lt;br /&gt;&lt;strong&gt;What We'll Build: T-Shirt World&lt;/strong&gt; 

    &lt;br /&gt;In this example we'll build a simple order entry and order processing application named T-Shirt World. This is a rather simple application--nothing to write home about!--but it's more than a mere Hello, Cloud: it has a front end and a back end, and will make use of multple cloud services.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-r8Nz5yZWWdU/TyLLY_0OMOI/AAAAAAAACGc/uYazU41IRnI/s1600/tshirt01.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" src="http://1.bp.blogspot.com/-r8Nz5yZWWdU/TyLLY_0OMOI/AAAAAAAACGc/uYazU41IRnI/s400/tshirt01.png" width="330" height="400" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Activity Flow&lt;/strong&gt; 

    &lt;br /&gt;There's a 4-step sequence of activity in T-Shirt World:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Submit an Order &lt;/li&gt;

    &lt;li&gt;Queue the Order &lt;/li&gt;

    &lt;li&gt;Dequeue the Order &lt;/li&gt;

    &lt;li&gt;Store the Order in a Database &lt;/li&gt;
  &lt;/ol&gt;
The first two steps happen on the front end, a web page (what we call a Web Role). The last two steps happen on the back end, in a worker process (what we call a Worker Role). 

  &lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-KjHkHaGsy7A/TyLMGytEtVI/AAAAAAAACGk/beDd-VwpHaI/s1600/tshirt02.png"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" src="http://2.bp.blogspot.com/-KjHkHaGsy7A/TyLMGytEtVI/AAAAAAAACGk/beDd-VwpHaI/s400/tshirt02.png" width="400" height="274" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Cloud Services We'll be Using&lt;/strong&gt; 

    &lt;br /&gt;Any cloud solution you create is likely to use multiple Windows Azure services. We're going to make use of four Windows Azure services in this sample application:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Windows Azure Compute - hosts the web role (site) and worker role (back end process) &lt;/li&gt;

    &lt;li&gt;Windows Azure Storage - image files for the web site &lt;/li&gt;

    &lt;li&gt;Service Bus - we'll use a queue to route orders from front end to back end &lt;/li&gt;

    &lt;li&gt;SQL Azure Database - order records … &lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;David continues with a detailed seven-step walkthrough that ends with “Walk-through Step 7: Deploy to the Cloud.”&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;David Linthicum&lt;/strong&gt; (@&lt;a href="http://twitter.com/DavidLinthicum"&gt;DavidLinthicum&lt;/a&gt;) asserted “Enterprise software providers need to understand the new world order if they and their customers are to succeed” in a deck for his &lt;a href="http://www.infoworld.com/d/cloud-computing/3-ways-big-software-companies-may-fail-in-the-cloud-184750"&gt;3 ways big software companies may fail in the cloud&lt;/a&gt; article of 1/26/2012 for InfoWorld’s Cloud Computing blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-QDb-Bkl-9l8/TyRY-bCC42I/AAAAAAAAaEY/Cz3Ld3cDBMU/s1600-h/image%25255B60%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-6a6xG-ODm3Q/TyRY-m3GHjI/AAAAAAAAaEg/pG--s5QKqUs/image_thumb%25255B20%25255D.png?imgmax=800" width="65" height="64" /&gt;&lt;/a&gt;Be careful what you wish for: &amp;quot;Big Software&amp;quot; -- the multi-billion-dollar companies selling enterprise software -- have discovered the cloud, and they are now providing cloud apps and services. That should be good news, except that Big Software's history over the last 30 years shows it could easily get the cloud transition wrong -- and harm users in the process.&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;So, here's my free advice to Big Software about the right way to understand the cloud for the ultimate benefit of customers while looking at the three dangerous shifts enterprise providers need to understand.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-f5kSf4Ocgzg/TyRY-s6LjUI/AAAAAAAAaEo/FOZLJqMBS8E/s1600-h/image%25255B63%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-CoF4WTZJCuw/TyRY-xBVF4I/AAAAAAAAaEw/qn58nQ5BRDI/image_thumb%25255B21%25255D.png?imgmax=800" width="65" height="15" /&gt;&lt;/a&gt;&lt;strong&gt;1. It's not just a platform change.&lt;/strong&gt; Software providers that look at moving to the cloud as an A-to-A port are in for a surprise. The movement to the cloud needs to come with a complete reworking of the application architecture -- in many cases, from the ground up. Skipping this step means your software won't properly support resource and tenant management; users will quickly feel that limitation, and you'll fail.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;2. You can't charge the same amount. &lt;/strong&gt;Traditional enterprise software providers typically work multi-million-dollar deals with lucrative maintenance agreements. The cloud makes all of that unnecessary, so traditional enterprise providers that insist on receiving the same margins will find out fast that it won't work. The cloud is cheaper for you, so it should be much cheaper for your users as well.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;3. It's changing your world. &lt;/strong&gt;Many in enterprise software don't understand, or perhaps refuse to understand, that their world is changing forever. Can you say Blockbuster meets Netflix? I understand the reality is like turning a battleship because you're so fat and happy with the software profits you've been collecting for years. But the fact of the matter is that the playing field is now much more level. New providers are entering the game, and the cost of switching is actually pretty close to free.&lt;/p&gt;

  &lt;p&gt;It's time for some companies to get a clue.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Is David’s article directed to Oracle, Microsoft, IBM, HP or all four?&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="WAPA"&gt;Windows Azure Platform Appliance (WAPA), Hyper-V and Private/Hybrid Clouds&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Mark Hassall&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/MSFTmarkhas"&gt;MSFTmarkhas&lt;/a&gt;) reported &lt;a href="http://blogs.technet.com/b/server-cloud/archive/2012/01/25/dell-and-microsoft-deliver-a-foundation-for-private-cloud.aspx"&gt;Dell and Microsoft Deliver a Foundation for Private Cloud&lt;/a&gt; in a 1/25/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Dell vStart 200 for Microsoft [is] Available Today!&lt;/p&gt;

  &lt;p&gt;Last week, you heard about System Center and the Microsoft private cloud solution – and how together they help customers and partners move faster, save money and better compete today. Many of our customers are excited about getting the benefits of private cloud today and want to know how they can do that – quickly, simply and cost effectively. Today, we are excited to talk to you about one option that helps you do just that. &lt;/p&gt;

  &lt;p&gt;As part of our &lt;a href="http://dell.to/xMUats"&gt;ongoing strategic partnership&lt;/a&gt; with Dell to help customers quickly deploy and manage virtualization and private cloud technologies, we’re announcing the &lt;a href="http://dell.to/yA0EZ3"&gt;availability of Dell vStart 200m&lt;/a&gt;, a pre-built, pre-configured, simple and fast path to a Microsoft private cloud. &lt;/p&gt;

  &lt;p&gt;This &lt;a href="http://bit.ly/y8CJoR"&gt;Microsoft Private Cloud Fast Track&lt;/a&gt;-validated solution brings together the best of Dell and Microsoft technology to give you a turnkey appliance that delivers virtualization, simply and at scale. With this new solution, customers only have to take one step to move from virtualization to private cloud computing – and that is adding &lt;a href="http://bit.ly/uJKawA"&gt;Microsoft System Center&lt;/a&gt;. Built on Microsoft Hyper-V and Windows Server 2008 R2 DataCenter Edition, which includes unlimited virtualization rights, Dell vStart200m helps customers benefit from the economics of the Microsoft private cloud. Dell vStart 100m, built on Microsoft Hyper-V is also available today.&lt;/p&gt;

  &lt;p&gt;We are also announcing improved integration of Dell AIM and Microsoft System Center – giving customers deep management insight across infrastructure, operating systems and applications, and providing a simplified, integrated management experience delivered through a “single pane of glass”.&lt;/p&gt;

  &lt;p&gt;Whether you are ready to start your journey to private cloud or looking for integrated management solutions, Dell and Microsoft are committed to helping you quickly manage and deploy virtualization and private cloud solutions – today. &lt;/p&gt;

  &lt;p&gt;These new solutions from Dell are available in the U.S., Canada and Mexico in North America and Brazil now and will be available in select countries in EMEA and APJ in the near future. You can learn more about these solutions by visiting &lt;a href="http://dell.to/niV01d"&gt;dell.com/vstart&lt;/a&gt; and &lt;a href="http://dell.to/wch3cC"&gt;dell.com/aim&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mark is director, WSMM Outbound Marketing&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Kevin Remde&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/KevinRemde"&gt;KevinRemde&lt;/a&gt;) posted &lt;a href="http://feedproxy.google.com/~r/technet/wwzZ/~3/DaSdC0hOosk/breaking-news-free-private-cloud-jump-start-training.aspx"&gt;Breaking News: Free Private Cloud “Jump Start” Training&lt;/a&gt; on 1/23/2012 (Missed when published):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-tAx3gwMQQSU/TyRY_OhfQwI/AAAAAAAAaE4/l3rUGirWo5g/s1600-h/image%25255B76%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-8AjjO_6FoQg/TyRY_g46CRI/AAAAAAAAaFA/CBF0QH4mGXo/image_thumb%25255B25%25255D.png?imgmax=800" width="65" height="64" /&gt;&lt;/a&gt;Microsoft has just scheduled a FREE 2-day training course entitled &lt;strong&gt;&lt;a href="http://mctreadiness.com/MicrosoftCareerConferenceRegistration.aspx?pid=298"&gt;“Creating and Managing a Private Cloud with System Center 2012 Jump Start”&lt;/a&gt;&lt;/strong&gt;, happening on &lt;strong&gt;February 21st-22nd&lt;/strong&gt;, 2012 from &lt;strong&gt;9:00am&lt;/strong&gt; to &lt;strong&gt;5:00pm PST&lt;/strong&gt;. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://mctreadiness.com/MicrosoftCareerConferenceRegistration.aspx?pid=298"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Jump Start Training" border="0" alt="Jump Start Training" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-41-36-metablogapi/3678.image_5F00_515842B0.png" width="500" height="130" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;Adopting this exciting new computing paradigm provides a whole new landscape of technology and career direction for IT professionals. Microsoft Learning and the Microsoft System Center 2012 team have partnered to bring you an exciting opportunity to learn what you need to know to deploy, manage and maintain Microsoft’s private cloud solution. Leveraging the popular Jump Start virtual classroom approach, the industry’s most gifted cloud experts will show attendees why this new private cloud solution, based on System Center 2012 and Windows Server, has garnered so much attention. Here are the details:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Course: &lt;strong&gt;“Creating and Managing a Private Cloud with System Center 2012 Jump Start”&lt;/strong&gt; &lt;/li&gt;

    &lt;li&gt;Date/Time: &lt;strong&gt;February 21-22, 2012&lt;/strong&gt; from &lt;strong&gt;9:00am – 5:00pm PST&lt;/strong&gt; &lt;/li&gt;

    &lt;li&gt;Where: &lt;strong&gt;Live virtual classroom&lt;/strong&gt; (online from wherever you are) &lt;/li&gt;

    &lt;li&gt;Cost: &lt;strong&gt;FREE!&lt;/strong&gt; &lt;/li&gt;

    &lt;li&gt;Target audience: &lt;strong&gt;IT Professionals&lt;/strong&gt; (IT Implementers, managers, decision makers) &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;strong&gt;&lt;em&gt;“What’s a ‘Jump Start’ course?”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;From the registration page:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;&lt;em&gt;“Training specifically designed for experienced technologists whose jobs demand they know how to best leverage new, emerging Microsoft technologies. These advanced courses assume a certain level of expertise and domain knowledge, so they move quickly and cover topics in a fashion that enables teams to effectively map new skills to real-world situations.”&lt;/em&gt;&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;&lt;strong&gt;&lt;em&gt;“And.. did you say ‘FREE’?”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Yes, I did. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;&lt;em&gt;“Is there anything I can do to get ready for this?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Download and install the &lt;a href="http://www.microsoft.com/en-us/server-cloud/system-center/2012.aspx"&gt;System Center 2012&lt;/a&gt; evaluation software: &lt;strong&gt;&lt;a href="http://aka.ms/PvtCld"&gt;http://aka.ms/PvtCld&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Then go to &lt;a href="http://mctreadiness.com/MicrosoftCareerConferenceRegistration.aspx?pid=298"&gt;&lt;strong&gt;this page&lt;/strong&gt;&lt;/a&gt; for course details, schedule, speakers, registration link, and fabulous prizes.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;&lt;em&gt;“Huh? Prizes?”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Not really. I was just seeing if you were still paying attention.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Security"&gt;Cloud Security and Governance&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;No significant articles today.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Events"&gt;Cloud Computing Events&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;• Adron Hall&lt;/strong&gt; (@&lt;a href="http://twitter.com/adron"&gt;adron&lt;/a&gt;) reported on 1/28/2012 &lt;a href="http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/HGlZsQZOZ7Y/"&gt;Kav Latiolais Presenting “Better Together: Building Scalable Real Time Collaborative Apps with Node.js” @ #NodePDX&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-N2ufKtX01ik/TyWEO8Vx3MI/AAAAAAAAaKc/yFja2zmFvso/s1600-h/image%25255B30%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-GJNmserC5ag/TyWEPOMb-QI/AAAAAAAAaKk/aHkO0e50Sbw/image_thumb%25255B12%25255D.png?imgmax=800" width="53" height="66" /&gt;&lt;/a&gt;Kav is coming down from Seattle to present “Better Together: Building Scalable Real Time Collaborative Apps with Node.js”. Here’s his description of the presentation:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;&lt;a href="http://nodepdx.github.com/"&gt;&lt;img style="display: inline; float: right" alt="" align="right" src="http://adronhall.smugmug.com/Software/Meetups/PDX-Nodejs-Conference/i-tSdnGqv/0/O/nodepdx.png" width="160" height="80" /&gt;&lt;/a&gt;If you’re not using node to build collaborative real time applications you might as well be using rails. In this talk we’ll discuss patterns and pitfalls of synchronous node apps. We’ll roll up our sleeves and dig into some code demonstrating patterns that can help you get started building highly interactive applications that sync real time state with Node.js, Socket.io, and Backbone.js. You will leave this talk with insight on how to build synchronous experiences into your applications and avoid some of the pitfalls we’ve suffered.&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-m9SKu6Eurr0/TyWEPhoSzyI/AAAAAAAAaKs/zbrE4-gdznA/s1600-h/image%25255B24%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-oLLmIsobr9E/TyWEP7ShEkI/AAAAAAAAaK0/OMirSyDWuaw/image_thumb%25255B10%25255D.png?imgmax=800" width="50" height="89" /&gt;&lt;/a&gt;Kav Latiolais is a principal and co-founder at Liffft in Seattle and has been developing collaborative Node.js applications for the past year with Giant Thinkwell. He once built a horse racing app in 30 minutes on a bet. Before starting his love affair with Node.JS, Socket.IO, and CoffeeScript Kav was a Program Manager at Microsoft tasked with designing Visual Studio. Don’t tell his old coworkers he exclusively uses TextMate on his Air.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-h1KANkoxM2E/TyWEQYDI3sI/AAAAAAAAaK8/bpfXq1w_FQg/s1600-h/image%25255B34%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-I3sRj4AnNqg/TyWEQuqTlGI/AAAAAAAAaLE/pMJQx20m8EQ/image_thumb%25255B13%25255D.png?imgmax=800" width="160" height="44" /&gt;&lt;/a&gt;If you’d like to come and check out Kav’s Presentation and the other amazing presentations lined up, get involved in some coding, hear what Node.js is all about, or just hang out please &lt;a href="http://lanyrd.com/2012/nodepdx/"&gt;RSVP&lt;/a&gt; and get the event on your calendar! Besides, what better reason to come visit the amazing city of Portland, Oregon than to come hack some node.js and chill for the weekend!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tiffany Trader&lt;/strong&gt; reported &lt;a href="http://www.hpcinthecloud.com/hpccloud/2012-01-27/hadoop_summit_2012_announced_to_showcase_apache_hadoop_as_next_generation_enterprise_data_platform.html"&gt;Hadoop Summit 2012 Announced to Showcase Apache Hadoop as Next Generation Enterprise Data Platform&lt;/a&gt; in a 1/27/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Premier Apache Hadoop community event opens call for papers&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-Tbwj55j3Loo/TyRY_12ESKI/AAAAAAAAaFI/CIUKQee6x1Y/s1600-h/image_thumb3_thumb%25255B18%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb3_thumb" border="0" alt="image_thumb3_thumb" align="right" src="http://lh3.ggpht.com/-tsGbBxwlh-w/TyRZAJuGMGI/AAAAAAAAaFQ/iCrpfD3pO30/image_thumb3_thumb_thumb%25255B4%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;SUNNYVALE, Calif., Jan. 26 — Hadoop Summit 2012, the premier Apache Hadoop community event, will take place at the San Jose Convention Center, June 13-14, 2012. The event, now expanded to two days, is co-sponsored by Yahoo! and Hortonworks, and will outline the evolution of Apache Hadoop into the next generation enterprise data platform. Hadoop Summit will feature presentations from community developers, experienced users and administrators, as well as a vast array of ecosystem solution providers.&lt;/p&gt;

  &lt;p&gt;Apache Hadoop is the open source technology at the epicenter of big data and cloud computing. It enables organizations to more efficiently and cost-effectively store, process, manage and analyze the ever-increasing volume of data being created and collected every day. With Apache Hadoop, companies can connect thousands of servers to process and analyze data at supercomputing speed. Yahoo! pioneered Apache Hadoop and is a contributor to and one of the leading users of the big data platform, while Hortonworks is an independent company consisting of key architects and is the leading contributor to the Apache Hadoop technology.&lt;/p&gt;

  &lt;p&gt;The Hadoop Summit tracks include the following:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Future of Hadoop&lt;/strong&gt;: This track will take a technical look at the key projects and research efforts driving innovation in and around the Hadoop platform. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Deployment and Operations&lt;/strong&gt;: This track will focus on the deployment and operations of Hadoop clusters with an emphasis on tips, tricks and best practices. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Enterprise Data Architecture&lt;/strong&gt;: This track will focus on Hadoop as a data platform and how it fits within broader enterprise data architectures. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Applications and Data Science&lt;/strong&gt;:&lt;strong&gt; &lt;/strong&gt;This track will focus on applications, tools, algorithms and data science&lt;strong&gt; &lt;/strong&gt;as well as areas of advanced research and emerging applications that use and extend the Hadoop platform. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Analytics and Business Intelligence&lt;/strong&gt;: This track will focus on how Hadoop is powering a new generation of analytics and business intelligence solutions. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Hadoop in Action&lt;/strong&gt;: This track will be laser-focused on business innovation and provide concrete examples of how Hadoop is enabling businesses across a wide range of industries to become data driven. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;The event's call for papers is now open. The deadline to submit an abstract for consideration is February 22, 2012. The community-driven selection committee will choose the presentations that best highlight innovative use cases on how best to implement Hadoop to extract value from massive data sets and build momentum for the burgeoning Apache Hadoop market. Accepted presenters will be notified on or before March 9, 2012.&lt;/p&gt;

  &lt;p&gt;Discounted early bird registration is available now through March 30, 2012. To register for the event or to submit a speaking abstract for consideration, visit &lt;a href="http://www.hadoopsummit.org"&gt;www.hadoopsummit.org&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;Sponsorship packages are also now available. For more information on how to sponsor this year's event please visit: &lt;a href="http://www.hadoopsummit.org/sponsors"&gt;www.hadoopsummit.org/sponsors&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;About Hortonworks&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Hortonworks was formed in July 2011 by Yahoo! and Benchmark Capital in order to promote the development and adoption of Apache Hadoop, the leading open source platform for storing, managing and analyzing large volumes of data. Together with the Apache community, Hortonworks is making Hadoop more robust and easier to install, manage and use. The company and its founders are leaders in designing and delivering current and future generations of Apache Hadoop and leverage their expertise to provide unmatched technical support, training and certification programs for enterprises, systems integrators and technology vendors, including ISVs, OEMs and service providers. For more information, visit &lt;a href="http://www.hortonworks.com"&gt;www.hortonworks.com&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;About Yahoo!&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Yahoo! is the premier digital media company, creating deeply personal digital experiences that keep more than half a billion people connected to what matters most to them, across devices and around the globe. And Yahoo!'s unique combination of Science + Art + Scale connects advertisers to the consumers who build their businesses. Yahoo! is headquartered in Sunnyvale, California. For more information, visit the &lt;a href="http://www.pressroom.yahoo.com"&gt;pressroom&lt;/a&gt; or the company's blog, &lt;a href="http://www.yodel.yahoo.com"&gt;Yodel Anecdotal&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;-----&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;Source: Yahoo! Inc.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;David Pallman&lt;/strong&gt; reported on 1/26/2012 &lt;a href="http://davidpallmann.blogspot.com/2012/01/upcoming-sessions-on-web-and-cloud-at.html"&gt;Upcoming Sessions on Web and Cloud at SoCal Code Camp Jan 28 2012&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-oUnsKFGlG_4/TyRZATz6nDI/AAAAAAAAaFY/xD6oFl6EqvQ/s1600-h/image%25255B70%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-LEDd_6_rRRQ/TyRZAiYXBCI/AAAAAAAAaFg/Zgl-Yg0g-Ks/image_thumb%25255B23%25255D.png?imgmax=800" width="50" height="66" /&gt;&lt;/a&gt;Here are some talks I and my &lt;a href="http://www.neudesic.com/"&gt;Neudesic&lt;/a&gt; colleageus are giving on web, cloud, and programming at SoCal Code Camp this weekend in Orange County: 

    &lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.socalcodecamp.com/"&gt;SoCal Code Camp&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Sat Jan 28 2012 - Sun Jan 29 2012&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Mobile &amp;amp; Global with HTML5, MVC and Windows Azure&lt;/strong&gt; 

    &lt;br /&gt;David Pallmann (@davidpallmann) Sat Jan 28 12:15p 

    &lt;br /&gt;What happens when the web meets the cloud? The modern web (HTML5, mobile devices) is revolutioning the front end and our experiences, while at the same time the cloud (cloud computing, social networks) is revolutioning the back end. Putting them together gives you web-cloud applications that can run anywhere and everywhere. &lt;/p&gt;

  &lt;p&gt;&lt;a name="BTQ"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/_GdO7DQgAn3w/TGmtBfGziyI/AAAAAAAAD00/qmrRPnvlwkA/image%5B88%5D.png?imgmax=800" width="160" height="25" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;In this session you'll see how to create solutions that are &amp;quot;mobile &amp;amp; global&amp;quot; by combining HTML5, mobile devices, and open standards on the web client with the MS web platform, Windows Azure cloud computing, and social networking on the web server. We'll progressively develop a &amp;quot;mobile &amp;amp; global&amp;quot; application in 7 steps, starting with design comps and ending with global deployment on 3 continents.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Windows Azure Design Patterns&lt;/strong&gt; 

    &lt;br /&gt;Mickey Williams (@mickeyw) Sat Jan 28 2:45p 

    &lt;br /&gt;In order to design great cloud solutions architects need to understand the design patterns intrinsic to their cloud platform. In this session we will review the design patterns inherent in the Windows Azure platform services, followed by a discussion of application patterns for combining those services. Design patterns will be reviewed for compute, storage, relational data, communication, security, and networking. Key patterns will be illustrated with application examples.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Using Lucene for Full-Text Search in Azure&lt;/strong&gt; 

    &lt;br /&gt;Mickey Williams (@mickeyw) Sat Jan 28 4:00p 

    &lt;br /&gt;SQL Azure does not currently support full-text indexing. In this talk, we will walk through the use of Lucene to provide full-text search capabilities.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;F# - Functional Programming Fundamentals&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/oleksiy-tereshchenko/31/33/7a7"&gt;Oleksiy Tereshchenko&lt;/a&gt; Sat Jan 28 4:00p 

    &lt;br /&gt;F# is functional programming language. Originally, developed by Microsoft Research. Iit is fully supported by Microsoft Development Division in Visual Studio 2010. Presentation will provide overview of the language and include fundamental programming concepts. Attendees will be able to understand what it is about F# that is interesting and exciting, even if they can’t necessarily see how to apply it themselves just yet.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;F# - Functional Programming Progamming Techniques&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/oleksiy-tereshchenko/31/33/7a7"&gt;Oleksiy Tereshchenko&lt;/a&gt; Sun Jan 29 9:00a 

    &lt;br /&gt;F# is functional programming language. Originally, developed by Microsoft Research, it is fully supported by Microsoft Development Division in Visual Studio 2010. Presentation will provide overview of the functional programming techniques and demonstrate them using calculator parser. Attendees will be able to experience functional style development.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;The &lt;strong&gt;SQL Server Team&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/SQLServer"&gt;SQLServer&lt;/a&gt;) invited you on 1/26/2012 to &lt;a href="http://blogs.technet.com/b/dataplatforminsider/archive/2012/01/26/join-us-march-7-2012-for-the-virtual-launch-of-sql-server-2012.aspx"&gt;Join us March 7, 2012 for the Virtual Launch of SQL Server 2012!&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-v38AwlX4k6o/TyRZAkxg8HI/AAAAAAAAaFo/f2xLjh2Lvfw/s1600-h/image%25255B51%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-IDYYU0A_5X8/TyRZAyE7c1I/AAAAAAAAaFw/lrsl_zuF_XM/image_thumb%25255B17%25255D.png?imgmax=800" width="64" height="66" /&gt;&lt;/a&gt;On March 7, 2012 we are hosting the &lt;a href="http://www.sqlserverlaunch.com/"&gt;SQL Server 2012 Virtual Launch Event&lt;/a&gt; (VLE), to share the latest on SQL Server 2012 and the evolution of the Microsoft data platform. Through our VLE, anyone, anywhere in the world can simply log in and be a part of this amazing experience – consuming content at your own pace while still experiencing all the benefits of a tradeshow event. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;b&gt;&lt;a href="#Top"&gt;&lt;img title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/_GdO7DQgAn3w/TFxIT_td_pI/AAAAAAAADfQ/asbwuFou3jU/image%5B36%5D.png?imgmax=800" width="160" height="43" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/strong&gt;What are some great reasons to check out our VLE experience?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;&lt;u&gt;You want to learn from SQL Server insiders&lt;/u&gt;&lt;/b&gt; 

    &lt;br /&gt;Learn more about the new features of SQL Server 2012 through access to more than 30 sessions. Our experts will demonstrate how your business can go further, forward, faster by capitalizing on mission critical capabilities, new features that drive true business insights and the most cloud-ready SQL Server ever.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;&lt;u&gt;You want to engage with Partners and Customers&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt; 
        &lt;br /&gt;&lt;/u&gt;&lt;/b&gt;Visit our Partner Pavilion to discuss how partner and pioneer customer solutions integrate with SQL Server 2012.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;&lt;u&gt;You want to chat live with product experts and MVPs 
        &lt;br /&gt;&lt;/u&gt;&lt;/b&gt;Chat live with product experts and MVPs to get the inside scoop. Our team will be on hand to answer questions about SQL Server 2012 and network in the virtual lounge.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;&lt;u&gt;You want to engage with the community – and maybe win a prize!&lt;/u&gt;&lt;/b&gt; 

    &lt;br /&gt;Participate in virtual launch activities like the keynote speech, technical demos and networking lounge, and collect points to earn cool prizes such as cash gift cards, SQL Server Gear, and Xbox systems. The more points you earn, the bigger your prize could be!&lt;/p&gt;

  &lt;p&gt;Register today at: &lt;a href="http://www.sqlserverlaunch.com"&gt;www.sqlserverlaunch.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="Other"&gt;Other Cloud Computing Platforms and Services&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Chris Hoff&lt;/strong&gt; (@&lt;a href="http://twitter.com/Beaker"&gt;Beaker&lt;/a&gt;) posted &lt;a href="http://www.rationalsurvivability.com/blog/?p=3409"&gt;With Cloud, The PaaSibilities Are Endless…&lt;/a&gt; on 1/26/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/--hTTUFXYMBc/TyRZBSTKgcI/AAAAAAAAaF4/mDUZuNExo6A/s1600-h/image%25255B36%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-f06SzhO-1eI/TyRZBrw9ggI/AAAAAAAAaGA/Y1XSvaCa6Aw/image_thumb%25255B11%25255D.png?imgmax=800" width="65" height="64" /&gt;&lt;/a&gt;I read a very interesting article from ZDNet UK this morning titled “&lt;a href="http://www.zdnet.co.uk/news/cloud/2012/01/26/amazon-cuts-off-stack-at-the-paas-40094915/"&gt;Amazon Cuts Off Stack at the PaaS&lt;/a&gt;”&lt;/p&gt;

  &lt;p&gt;The gist of the article is that according to &lt;a href="http://www.allthingsdistributed.com/"&gt;Werner Vogels&lt;/a&gt; (@werner,) AWS’ CTO, they have no intention of delivering a PaaS service and instead expect to allow an ecosystem of PaaS providers, not unlike &lt;a href="http://www.heroku.com/"&gt;Heroku&lt;/a&gt;, to flourish atop their platform:&lt;/p&gt;

  &lt;blockquote&gt;
    &lt;p&gt;“We want 1,000 platforms to bloom,” said Vogels, before explaining Amazon has “no desire to go and really build a [PaaS].”&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-K8Mb6edDaCE/TyRZBzrV0jI/AAAAAAAAaGI/qeBPuERUED0/s1600-h/image%25255B40%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-0qPWOdh-kO4/TyRZCG7gouI/AAAAAAAAaGQ/w-Rgcka19ag/image_thumb%25255B12%25255D.png?imgmax=800" width="160" height="62" /&gt;&lt;/a&gt;That’s all well and good, but it lead me to scratch my head, especially with regard to what I *thought* AWS already offered in terms of PaaS with BeanStalk, which is described thusly in their FAQ:&lt;/p&gt;

  &lt;blockquote&gt;&lt;dl&gt;&lt;dt&gt;Q: What is AWS Elastic Beanstalk? &lt;/dt&gt;&lt;dd&gt;AWS Elastic Beanstalk makes it even easier for developers to quickly deploy and manage applications in the AWS Cloud. Developers simply upload their application, and Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring. &lt;/dd&gt;&lt;dt&gt;Q: How is AWS Elastic Beanstalk different from existing application containers or platform-as-a-service solutions? &lt;/dt&gt;&lt;dd&gt;Most existing application containers or platform-as-a-service solutions, while reducing the amount of programming required, significantly diminish developers’ flexibility and control. Developers are forced to live with all the decisions pre-determined by the vendor – with little to no opportunity to take back control over various parts of their application’s infrastructure. However, with AWS Elastic Beanstalk, developers retain full control over the AWS resources powering their application. If developers decide they want to manage some (or all) of the elements of their infrastructure, they can do so seamlessly by using AWS Elastic Beanstalk’s management capabilities.&lt;/dd&gt;&lt;/dl&gt;&lt;/blockquote&gt;
  &lt;dl&gt;&lt;dd&gt;While these snippets from the FAQ certainly seem to describe infrastructure components that enable PaaS (meta-PaaS?) when you combine the other elements of AWS’ offerings, it sure as heck sounds like PaaS regardless of what you call it. &lt;/dd&gt;&lt;dd&gt;In fact, a Twitter exchange with @GeorgeReese, @krishnan and @jamessaull well summarized the headscratching: &lt;/dd&gt;&lt;dd&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="AWS-Not-PaaS?" alt="" src="http://www.rationalsurvivability.com/blog/wp-content/media/2012/01/AWS-Not-PaaS.jpg" width="557" height="373" /&gt;&lt;/dd&gt;&lt;dd&gt;With all those components, AWS can certainly enable PaaS platforms like Heroku to “flourish.” &lt;/dd&gt;&lt;dd&gt;However, suggesting that despite having all the raw components and not pointing to it and saying “PaaS” is like having all the components to assemble a bomb, not package it as such, and declaring it’s not dangerous because in that state it won’t go off. &lt;/dd&gt;&lt;dd&gt;I’d say the potential for going BOOM! are real. It appears Marten Mickos was hinting at the same thing: &lt;/dd&gt;&lt;dd&gt;
      &lt;blockquote&gt;
        &lt;p&gt;However, Mickos disputed Vogels’ claim that Amazon is going to let a thousand platforms bloom.&lt;/p&gt;

        &lt;p&gt;“He will always say that, and Amazon will slowly take a step higher and higher,” he said, before pointing to Beanstalk as an example. “[But] in my view PaaS has middleware components… and I could agree that it is okay to add [those] to an IaaS.”&lt;/p&gt;
      &lt;/blockquote&gt;

      &lt;p&gt;In the long term, as I’ve stated prior, the value in platforms will be in how easy they make it for developers to create and deliver applications fluidly.&lt;/p&gt;

      &lt;p&gt;I may not be as good at marketing as some, but that sounds less like an infrastructure-centric business model and much more like an application-centric one.&lt;/p&gt;

      &lt;p&gt;Moving on up is where it’s at. I saw the scratching on the cave walls when I wrote “&lt;a href="http://www.rationalsurvivability.com/blog/?p=1523"&gt;Silent Lucidity: IaaS — Already A Dinosaur. The Evolution of PaaSasarus Rex&lt;/a&gt;” back in 2009.&lt;/p&gt;

      &lt;p&gt;What do you think? Is AWS being coy?&lt;/p&gt;
    &lt;/dd&gt;&lt;/dl&gt;

  &lt;h5&gt;Related articles&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://shop.oreilly.com/product/0636920023128.do"&gt;Understanding PaaS&lt;/a&gt; (shop.oreilly.com) &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.readwriteweb.com/cloud/2012/01/paas-makes-progress-in-2011.php"&gt;PaaS Makes Progress in 2011&lt;/a&gt; (readwriteweb.com) &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.rackspace.com/cloud/blog/2011/12/06/deploy-your-own-platform-as-a-service-paas-for-net-applications-in-minutes-with-apprenda/"&gt;Deploy Your Own Platform as a Service (PaaS) for .NET Applications in Minutes with Apprenda&lt;/a&gt; (rackspace.com) &lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Jeff Barr&lt;/strong&gt; (@&lt;a href="http://twitter.com/jeffbarr"&gt;jeffbarr&lt;/a&gt;) described &lt;a href="http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/khureF5pRbQ/new-tagging-features-for-auto-scaling-groups.html"&gt;New Tagging for Auto Scaling Groups&lt;/a&gt; in a 1/26/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/--N0RDEV0LXo/TyRZCUzPkkI/AAAAAAAAaGY/SLzlclDMRMo/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-nDYkEhyRfaY/TyRZCim0sqI/AAAAAAAAaGg/LqlEIxRS9Bg/image_thumb.png?imgmax=800" width="65" height="65" /&gt;&lt;/a&gt;You can now add up to 10 tags to any of your &lt;a href="http://aws.amazon.com/autoscaling/"&gt;Auto Scaling Groups&lt;/a&gt;. You can also, if you'd like, propagate the tags to the EC2 instances launched from your groups.&lt;/p&gt;

  &lt;p&gt;Adding tags to your Auto Scaling groups will make it easier for you to identify and distinguish them.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-whgXQnYOAIc/TyRZC1QT5LI/AAAAAAAAaGo/B83OA0e8my8/s1600-h/image%25255B6%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-LNWqQZybzfU/TyRZDDsV1LI/AAAAAAAAaGw/u4iKgEPZMEQ/image_thumb%25255B2%25255D.png?imgmax=800" width="160" height="62" /&gt;&lt;/a&gt;Each tag has a name, a value, and an optional propagation flag. If the flag is set, then the corresponding tag will be applied to EC2 instances launched from the group. You can use this feature to label or distinguish instances created by distinct Auto Scaling groups. You might be using multiple groups to support multiple scalable applications, or multiple scalable tiers or components of a single application. Either, way the tags can help you to keep your instances straight.&lt;/p&gt;

  &lt;p&gt;Read more in the newest version of the &lt;a href="http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/Welcome.html"&gt;Auto Scaling Developer Guide&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sounds to me like a minor but useful feature.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Damon Edwards&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/damonedwards"&gt;damonedwards&lt;/a&gt;) reported &lt;a href="http://feedproxy.google.com/~r/Dev2ops/~3/iyneJ-TXiTo/crowbar-is-quietly-getting-more-interesting-video.html"&gt;Crowbar is quietly getting more interesting (video)&lt;/a&gt; in a 1/25/2012 post to his dev2ops: delivering change blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-WTk74AK_gkE/TyRZDYIs4vI/AAAAAAAAaG4/VOvoy6NrPMs/s1600-h/image%25255B73%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh4.ggpht.com/-wsFh3gBUsHA/TyRZDmcRdSI/AAAAAAAAaHI/mmqcIcyYRns/image_thumb%25255B24%25255D.png?imgmax=800" width="52" height="66" /&gt;&lt;/a&gt;&lt;a href="https://github.com/dellcloudedge/crowbar"&gt;Crowbar&lt;/a&gt; is an interesting project that I've covered &lt;a href="http://dev2ops.org/blog/2011/7/19/matt-ray-talks-crowbar-chef-and-openstack-integration-for-bu.html"&gt;before&lt;/a&gt;. Born out of Dell's cloud group, much of the initial buzz described it as an installer for the cloud era... &amp;quot;kickstart on steroids&amp;quot;, if you will.&lt;/p&gt;

  &lt;p&gt;Crowbar's close association with the OpenStack project has further cemented its reputation as an installer to watch. But's it's Crowbar's quiet potential as a stack management tool that is the most interesting. Through the use of barclamps (Crowbar's modules) you can tell Crowbar to build a full stack from the BIOS config all the way up to your middleware and applications. &lt;a href="http://www.twitter.com/botchagalupe"&gt;John Willis&lt;/a&gt; on an episode of &lt;a href="http://devopscafe.org/"&gt;DevOps Cafe&lt;/a&gt; called it &amp;quot;Data Center as Code&amp;quot;.&lt;/p&gt;

  &lt;p&gt;Crowbar barclamps are also an interesting way for independent projects or vendors to ensure that their projects/products can be easily integrated into a custom platform (today this type of focus is usually in the context of making things work on OpenStack). Want to add a new component to your platform? Grab the barclamp and Crowbar will know how to do the rest. Or at least that is the promise. The project is still young and the community is still forming.&lt;/p&gt;

  &lt;p&gt;Leading open source software projects is new territory for Dell, as a company, but the Crowbar team does seem committed and community focused. I've heard some grumbles from developers that barclamp development and testing cycles can be a bit tedious due to the nature of what you are building. But no reason to believe that those types of issues won't get sorted out over time. &lt;/p&gt;

  &lt;p&gt;A couple of Crowbar related videos are below:&lt;/p&gt;

  &lt;p&gt;The first video was made by my &lt;a href="http://dtosolutions.com/"&gt;DTO Solutions&lt;/a&gt; colleague, &lt;a href="http://www.cloudmess.com/"&gt;Keith Hudgins&lt;/a&gt;, after he wrote a &lt;a href="https://github.com/khudgins/barclamp-zenoss"&gt;barclamp for Zenoss&lt;/a&gt;. It's a short demo and tour that can give you a feel for Crowbar and Barclamps.&lt;/p&gt;

  &lt;p&gt;The next video is &lt;a href="http://bartongeorge.net/about/"&gt;Barton George&lt;/a&gt; (Dell) interviewing &lt;a href="http://robhirschfeld.com/"&gt;Rob Hirshfeld&lt;/a&gt; (Dell). They start off talking about the Hadoop barclamp but quickly getting into a broader discussion about Crowbar. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;a href="#Top"&gt;&amp;lt;Return to section navigation list&amp;gt;&lt;/a&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b9dc7197-3432-483e-b297-0a47a32f4fae" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+Azure" rel="tag"&gt;Windows Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure+Platform" rel="tag"&gt;Windows Azure Platform&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Services+Platform" rel="tag"&gt;Azure Services Platform&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Storage+Services" rel="tag"&gt;Azure Storage Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Table+Services" rel="tag"&gt;Azure Table Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Blob+Services" rel="tag"&gt;Azure Blob Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Drive+Services" rel="tag"&gt;Azure Drive Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Queue+Services" rel="tag"&gt;Azure Queue Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Service+Broker" rel="tag"&gt;Azure Service Broker&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure+Access+Services" rel="tag"&gt;Azure Access Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Azure+Database" rel="tag"&gt;SQL Azure Database&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Azure+Federations" rel="tag"&gt;SQL Azure Federations&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open+Data+Protocol" rel="tag"&gt;Open Data Protocol&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OData" rel="tag"&gt;OData&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Computing" rel="tag"&gt;Cloud Computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio+LightSwitch" rel="tag"&gt;Visual Studio LightSwitch&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LightSwitch" rel="tag"&gt;LightSwitch&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Amazon+Web+Services" rel="tag"&gt;Amazon Web Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AWS" rel="tag"&gt;AWS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Hadoop" rel="tag"&gt;Hadoop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Crowbar" rel="tag"&gt;Crowbar&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OpenStack" rel="tag"&gt;OpenStack&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Codename+%22Data+Numerics%22" rel="tag"&gt;Codename &amp;quot;Data Numerics&amp;quot;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure+HPC+Scheduler" rel="tag"&gt;Windows Azure HPC Scheduler&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Node.js" rel="tag"&gt;Node.js&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Hadoop+on+Azure" rel="tag"&gt;Hadoop on Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+Foundation+Server" rel="tag"&gt;Team Foundation Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Team+Foundation+Services" rel="tag"&gt;Team Foundation Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS" rel="tag"&gt;TFS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TFS+on+Azure" rel="tag"&gt;TFS on Azure&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11646261-8891267344813571530?l=oakleafblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oakleafblog.blogspot.com/feeds/8891267344813571530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11646261&amp;postID=8891267344813571530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/8891267344813571530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/8891267344813571530'/><link rel='alternate' type='text/html' href='http://oakleafblog.blogspot.com/2012/01/windows-azure-and-cloud-computing-posts_28.html' title='Windows Azure and Cloud Computing Posts for 1/27/2012+'/><author><name>Roger Jennings (--rj)</name><uri>http://www.blogger.com/profile/01700526164060680385</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0GeAX5t9PtI/TocwxoAK69I/AAAAAAAAQos/p5d6F13mkiw/s220/OakLeafLogoMVP100px.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-OsoKl-OJ6tQ/TgtZhIThImI/AAAAAAAAMWc/azK-WT3s8xY/s72-c/image2222.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11646261.post-2692311103706311013</id><published>2012-01-28T14:14:00.001-08:00</published><updated>2012-01-29T12:03:00.835-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cerebrata'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure Federations'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Diagnostics'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Diagnostics'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.NET Data Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Links to My Cloud Computing Articles at Red Gate Software’s ACloudyPlace Blog</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-LHmGWTNIEag/TyRzVFnkeWI/AAAAAAAAaH8/e8wlPHj3jxM/s1600-h/image%25255B12%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-NNr0_7Z0hTA/TyRzVQZ4PLI/AAAAAAAAaIE/IRdCcihOIz0/image_thumb%25255B4%25255D.png?imgmax=800" width="64" height="66" /&gt;&lt;/a&gt;I’m a regular contributor of articles about cloud computing development and strategy to Red Gate Software’s (@&lt;a href="https://twitter.com/#!/redgate"&gt;redgate&lt;/a&gt;) ACloudyPlace (@&lt;a href="https://twitter.com/#!/ACloudyPlace"&gt;ACloudyPlace&lt;/a&gt;) blog. The following table lists the topics I’ve covered to date:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="614"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="80"&gt;&lt;strong&gt;Date&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="532"&gt;&lt;strong&gt;Title&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;1/18/2012&lt;/td&gt;        &lt;td valign="top" width="532"&gt;&lt;a href="http://acloudyplace.com/2012/01/upload-big-data-to-sql-azure-federated-databases-with-bcp-automatically/"&gt;Upload Big Data to SQL Azure Federated Databases with BCP Automatically&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;12/16/2011&lt;/td&gt;        &lt;td valign="top" width="532"&gt;&lt;a href="http://acloudyplace.com/2011/12/use-odata-to-execute-restful-crud-operations-on-big-data-in-the-cloud/"&gt;Use OData to Execute RESTful CRUD Operations on Big Data in the Cloud&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-QktQp3wtO4k/TyRzVRseX9I/AAAAAAAAaMs/Cs8Oi6MgWE8/s1600-h/image%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-HyhVBmmswoE/TyRzVmIChuI/AAAAAAAAaMw/WOtqDFx9fiM/image_thumb%25255B1%25255D.png?imgmax=800" width="55" height="54" /&gt;&lt;/a&gt;Red Gate Software offers the following “cloud-ready” tools:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.red-gate.com/products/sql-development/sql-compare/"&gt;SQL Compare&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/products/sql-development/sql-data-compare/"&gt;SQL Data Compare&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://lh6.ggpht.com/-Y7T2THgU6So/TyRzV9AK3hI/AAAAAAAAaM0/d-R1V9MiQek/s1600-h/image13%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh6.ggpht.com/-EHWq35JUotM/TyRzWM8JZwI/AAAAAAAAaM4/DFqY4-Nv4aE/image13_thumb.png?imgmax=800" width="55" height="41" /&gt;&lt;/a&gt;&lt;a href="http://www.red-gate.com/products/dba/sql-azure-backup/"&gt;SQL Azure Backup&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/products/sql-development/mysql-compare/"&gt;MySQL Compare&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-JXmIrf9x_j4/TyRzWYj6eSI/AAAAAAAAaIs/SeSsbpyoex0/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh3.ggpht.com/-3xYoZAtswmI/TyRzWsSkyOI/AAAAAAAAaI0/6U4B6-U3MfQ/image_thumb%25255B3%25255D.png?imgmax=800" width="134" height="35" /&gt;&lt;/a&gt;The firm acquired &lt;a href="http://www.cerebrata.com/Default.aspx"&gt;Cerebrata Software Private Ltd&lt;/a&gt; in October 2011. The press release for the acquisition is &lt;a href="http://www.red-gate.com/our-company/about/news/cerebrata-announcement"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Full disclosure&lt;/strong&gt;: I have gratis licenses for most Cerebrata products, including Cloud Storage Studio and Diagnostics Manager. I use these tools regularly.&lt;/p&gt;  &lt;hr /&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:de057779-4dd9-461b-bc16-659af866f708" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Red+Gate+Software" rel="tag"&gt;Red Gate Software&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ACloudyPlace" rel="tag"&gt;ACloudyPlace&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cerebrata+Software" rel="tag"&gt;Cerebrata Software&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Storage+Studio" rel="tag"&gt;Cloud Storage Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Diagnostics+Manager" rel="tag"&gt;Diagnostics Manager&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Azure" rel="tag"&gt;Windows Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cloud+Computing" rel="tag"&gt;Cloud Computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/OData" rel="tag"&gt;OData&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open+Data+Protocol" rel="tag"&gt;Open Data Protocol&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Big+Data+Analytics" rel="tag"&gt;Big Data Analytics&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Azure" rel="tag"&gt;SQL Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SQL+Azure+Federations+Migration+Wizard" rel="tag"&gt;SQL Azure Federations Migration Wizard&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11646261-2692311103706311013?l=oakleafblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oakleafblog.blogspot.com/feeds/2692311103706311013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11646261&amp;postID=2692311103706311013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/2692311103706311013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/2692311103706311013'/><link rel='alternate' type='text/html' href='http://oakleafblog.blogspot.com/2012/01/links-to-my-cloud-computing-articles-at.html' title='Links to My Cloud Computing Articles at Red Gate Software’s ACloudyPlace Blog'/><author><name>Roger Jennings (--rj)</name><uri>http://www.blogger.com/profile/01700526164060680385</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-0GeAX5t9PtI/TocwxoAK69I/AAAAAAAAQos/p5d6F13mkiw/s220/OakLeafLogoMVP100px.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-NNr0_7Z0hTA/TyRzVQZ4PLI/AAAAAAAAaIE/IRdCcihOIz0/s72-c/image_thumb%25255B4%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11646261.post-1654152279604684399</id><published>2012-01-28T10:20:00.000-08:00</published><updated>2012-01-30T11:37:39.835-08:00</updated><title type='text'>Deploying “Cloud Numerics” Sample Applications to Windows Azure HPC Clusters</title><content type='html'>&lt;h4&gt;Introduction&lt;/h4&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-k7P1oOZuAYQ/TyBJSLmBfOI/AAAAAAAAZuE/gCIqkSeyTBs/s1600-h/image%25255B35%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://lh5.ggpht.com/-vM6Ti73s_Eo/TyBJU60hh4I/AAAAAAAAZuM/RvOXhVI2Qz0/image_thumb%25255B17%25255D.png?imgmax=800" width="159" height="45" /&gt;&lt;/a&gt;In addition to the basic MSCloudNumerics Visual Studio template and “Cloud Numerics” sample application described in my &lt;a href="http://oakleafblog.blogspot.com/2012/01/introducing-microsoft-codename-cloud.html"&gt;Introducing Microsoft Codename “Cloud Numerics” from SQL Azure Labs&lt;/a&gt; of 1/23/2011, the &lt;a href="https://connect.microsoft.com/site1267/Microsoft%20Codename%20Cloud%20Numerics"&gt;&amp;quot;Cloud Numerics&amp;quot; Microsoft Connect Site&lt;/a&gt;’s &lt;a href="http://connect.microsoft.com/site1267/Downloads/DownloadDetails.aspx?DownloadID=40598"&gt;Example applications&lt;/a&gt; download offers three additional end-to-end examples:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Latent Semantic Indexing (LSI) document classification example &lt;/li&gt;    &lt;li&gt;Statistics functionality demonstration &lt;/li&gt;    &lt;li&gt;Time-series analysis of cereal yield data &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This post describes how to configure and deploy two 8-core HPC clusters hosted in Windows Azure and submit the LSICloudApplication to the Windows Azure HPC Scheduler for processing. Configuring, deploying and submitting the other two examples differs only slightly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; 1/30/2012: Added review and link to a PDF copy of David Skillcorn’s &lt;a href="http://www.amazon.com/Understanding-Complex-Datasets-Decompositions-Knowledge/dp/1584888326/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1327951181&amp;amp;sr=1-1"&gt;&lt;em&gt;Understanding Complex Data Sets: Data Mining with Matrix Decomposition&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;(Chapman &amp;amp; Hall/CRC, 2007) in the “Learning about the Latent Semantic Indexing Example” section below.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; 1/28/2012: Added step 2 to the “Extracting and Running the Latent Semantic Indexing Example” section to change build configuration from the default Debug to Release. This change prevents failure of the job submitted to the Windows Azure HPC Scheduler in step 33.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: See the &lt;a href="http://oakleafblog.blogspot.com/2012/01/introducing-microsoft-codename-cloud.html"&gt;Introducing Microsoft Codename “Cloud Numerics” from SQL Azure Labs&lt;/a&gt; post’s “‘Cloud Numerics’” Prerequisites section (updated 1/28/2012) if your Visual Studio 2010 installation doesn’t have the Visual C++ features installed.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating a Windows Azure Pay-As-You-Go Subscription &lt;/li&gt;    &lt;li&gt;Learning about the Latent Semantic Indexing Example &lt;/li&gt;    &lt;li&gt;Extracting and Running the Latent Semantic Indexing Example &lt;/li&gt;    &lt;li&gt;Configuring and Deploying the Windows Azure HPC Cluster &lt;/li&gt;    &lt;li&gt;Using the Windows Azure HPC Scheduler Web Portal &lt;/li&gt;    &lt;li&gt;Running the Latent Semantic Indexing Example Locally &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Creating a Windows Azure Pay-As-You-Go Subscription &lt;/h4&gt;  &lt;p&gt;The example applications store their results in Windows Azure blobs, so you must have a Windows Azure subscription with a Windows Azure storage account and SQL Azure database to run these projects. Unlike other SQL Azure Labs CTPs, such as &lt;a href="https://www.hadooponazure.com/Account/BillingHistory"&gt;Apache Hadoop-based Services for Windows Azure&lt;/a&gt; (which is free), users must provide and pay for their own resources. You can’t take advantage of the Windows &lt;a href="https://www.windowsazure.com/en-us/pricing/free-trial/"&gt;Azure 3 Month Free Trial&lt;/a&gt; because it provides 750 hours per month of a small compute instance. Compute instances of various sizes aren’t interchangeable with trial subscriptions. For these reasons, “Cloud numerics” requires a pay-as-you-go subscription:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-Vx7ddn5XdXY/TyA_oRbcopI/AAAAAAAAZiE/IbvPR0JrKnE/s1600-h/image10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-ronl7BhtM5w/TyA_szk65HI/AAAAAAAAZiM/stfqhElilbM/image_thumb5.png?imgmax=800" width="642" height="301" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This tutorial assumes that you have a pay-as-you-go subscription. If you don’t, go to the &lt;a href="https://account.windowsazure.com/Subscriptions?wa=wsignin1.0"&gt;Account page&lt;/a&gt;, click Add Subscription and sign up with your credit card.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;A deployed Codename “Cloud Numerics” application with the minimum number of head (1), compute (2) and Web FrontEnd (1) nodes will cost you $2.16/hour while it’s deployed. Compute nodes are Extra Large instances, which use 8 cores each, so 18 cores are deployed at US$0.12/core*hour. You also will be charged about US$0.33/day (US$9.99/month) for a 1-GB SQL Azure Web edition database.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Note&lt;/strong&gt;: You can run the LSICloudApplication project locally with a 3-Month Trial Subscription’s Windows Azure storage account. See the “Running the Latent Semantic Indexing Example Locally” section near the end of this post for detai
