<?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-02T16:27:35.844-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>1345</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11646261.post-7183944615089029395</id><published>2012-02-02T16:27:00.000-08:00</published><updated>2012-02-02T16:27:35.960-08:00</updated><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='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='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='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='Cloud Computing'/><title type='text'>Windows Azure and Cloud Computing Posts for 2/1/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; 2/2/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;• Cory Fowler&lt;/strong&gt; (@&lt;a href="http://twitter.com/SyntaxC4"&gt;SyntaxC4&lt;/a&gt;) described getting the &lt;a href="http://blog.syntaxc4.net/post/2012/02/01/Windows-Azure-Storage-Emulator-Account-Name-and-Key.aspx"&gt;Windows Azure Storage Emulator Account Name and Key&lt;/a&gt; in a 2/1/2012 post:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/--fOanL4Aol4/TyrWB1rNFNI/AAAAAAAAalQ/h0ze838o_i4/s1600-h/image%25255B46%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/-k7otLjKr90c/TyrWCXrdW_I/AAAAAAAAalY/0_cWrIO0r_4/image_thumb%25255B18%25255D.png?imgmax=800" width="65" height="64" /&gt;&lt;/a&gt;It’s almost funny to say, but I’m working on a legacy Windows Azure Application in which the need of the Windows Azure Storage Account Name and Account Key need to be given instead of a Storage Account Connection String.&lt;/p&gt;    &lt;h5&gt;What’s the Difference? You need the Name &amp;amp; Key for a Connection String&lt;/h5&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;While this is true in some scenarios, there is one distinct difference especially when it comes down to running in the local Storage Emulator. The following are considered Connection Strings:&lt;/p&gt;    &lt;pre&gt;&amp;lt;Setting name=&amp;quot;DataConnectionString&amp;quot; value=&amp;quot;usedevelopmentstorage=true&amp;quot; /&amp;gt;&lt;/pre&gt;

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

  &lt;pre&gt;&amp;lt;appSettings&amp;gt;
     &amp;lt;add key=&amp;quot;DataConnectionString&amp;quot; value=&amp;quot;DefaultEndpointsProtocol=https;AccountName=myuniqueaccountname;AccountKey=superlongsecurestoragekey&amp;quot; /&amp;gt;
&amp;lt;/appSettings&amp;gt;&lt;/pre&gt;

  &lt;p&gt;The second example of a connection string could be easily parsed to extract the AccountName and AccountKey, unlike the first example which is absolutely impossible to provide any valuable information. If you’re using the original Microsoft Sample code for Windows Azure Storage Session State Management which doesn’t use the convention of the connection string, you’d be sadly out of luck. This is what you’ll find in the Web.Config file:&lt;/p&gt;

  &lt;pre&gt;&amp;lt;appSettings&amp;gt;
     &amp;lt;add key=&amp;quot;AccountName&amp;quot; value=&amp;quot;myuniqueaccountname&amp;quot;/&amp;gt;
     &amp;lt;add key=&amp;quot;AccountKey&amp;quot; value=&amp;quot;superlongsecurestoragekey&amp;quot;/&amp;gt;
&amp;lt;/appSettings&amp;gt;&lt;/pre&gt;

  &lt;h5&gt;Oh No, We’re doomed right?&lt;/h5&gt;

  &lt;p&gt;Not at all. Microsoft has provided the &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/gg432983.aspx"&gt;storage credentials for the local Storage Emulator&lt;/a&gt; on MSDN. Here’s a quick place to copy the default name and key:&lt;/p&gt;

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

  &lt;pre&gt;devstoreaccount1&lt;/pre&gt;

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

  &lt;pre&gt;Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== &lt;/pre&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Mariano Vazquez&lt;/strong&gt; (@&lt;a href="http://twitter.com/marianodvazquez"&gt;marianodvazquez&lt;/a&gt;) explained &lt;a href="http://nodeblog.cloudapp.net/browsing-blobs-within-a-container-using-the-azure-node-sdk"&gt;Browsing Blobs within a container using the Windows Azure Node SDK&lt;/a&gt; in a 1/30/2012 post to Southworks’ Node on Azure blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-RvRhoVfwQko/Tyrm93p7QnI/AAAAAAAAasI/WsdsFzku_eM/s1600-h/image%25255B17%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/-vp8GnVIRHiE/Tyrm-L7hIsI/AAAAAAAAasQ/m17rBK04QIU/image_thumb%25255B7%25255D.png?imgmax=800" width="60" height="66" /&gt;&lt;/a&gt;The last couple of weeks we were working on a new, exciting project: a collaborative, real-time markdown editor that runs on a &lt;strong&gt;NodeJS&lt;/strong&gt; server, hosted on &lt;strong&gt;Windows Azure&lt;/strong&gt; (you'll hear more about this soon). One of the features that this app will have is the ability to store the .markdown files in either your local disk or &lt;strong&gt;Azure Blob Storage&lt;/strong&gt;. To achieve this, we investigated the best way to list the containers and blobs of a specific account, and navigate them like we were dealing with an hierarchical structure. We found out that this can be done, but is not as easy and it sounds (you have to use a combination of the &lt;strong&gt;prefix&lt;/strong&gt; and &lt;strong&gt;delimiter&lt;/strong&gt; options of the &lt;strong&gt;listBlobs&lt;/strong&gt; operation, along with inspecting the &lt;strong&gt;BlobPrefix&lt;/strong&gt; element returned in the Blobs REST API response). &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-6zxT5rINk5M/Tyrm-faYRUI/AAAAAAAAasY/b6zYxOjw82c/s1600-h/image%25255B21%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/-oPCkf8hx3gw/Tyrm-ocgbBI/AAAAAAAAasg/I6BYHwTIrTQ/image_thumb%25255B9%25255D.png?imgmax=800" width="160" height="47" /&gt;&lt;/a&gt;In the next lines, we are going to explain how you can implement this functionality in your application. We start from showing the blobs in a simple, flat-list to demonstrate how to organize them in a more complex structure, like if you were navigating your local file system directories.&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;To access blob storage, we used the &lt;a href="https://github.com/WindowsAzure/azure-sdk-for-node"&gt;Windows Azure SDK for Node.js&lt;/a&gt; (you can install this module in your node application by doing &lt;code&gt;npm install azure&lt;/code&gt;). Also, don't forget to install the &lt;a href="https://www.windowsazure.com/en-us/develop/nodejs/"&gt;Windows Azure SDK for Node.js&lt;/a&gt; to emulate the Azure environment locally.&lt;/p&gt;

  &lt;h5&gt;Basic scenario&lt;/h5&gt;

  &lt;p&gt;This is all the code you need to list the containers in your storage account, and show the blobs inside. Because all blobs are stored inside a container, you need to perform two separated calls: one to retrieve all containers in the account and other to retrieve the blobs inside a particular container. &lt;/p&gt;

  &lt;pre&gt;&lt;code&gt;var azure = require('azure');

...

function Home () {
    this.blobService = azure.createBlobService();
};

Home.prototype = {
    showContainers: function (req, res) {
        var self = this;
        self.blobService.listContainers(function(err, result){
            // some code here to show the results
        });
    },
    showBlobs: function(req, res){
        var self = this;
        var containerName = req.query['containerName'];
        if (!containerName)
            self.showContainers(req, res);
        else
            self.blobService.listBlobs(containerName, function(err, result){
                // some code here to show the results
            });
    },

    ...
};
&lt;/code&gt;&lt;/pre&gt;

  &lt;p&gt;Below is a sample result of what you may get. In this case, we listed only the blob names. Notice that the &lt;strong&gt;listBlobs&lt;/strong&gt; operation is returning every blob within the container, using flat blob listing (more info about flat blob listing &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storageclient.blobrequestoptions.useflatbloblisting.aspx"&gt;here&lt;/a&gt;).&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Simple sample Result" alt="" src="http://nodeblog.cloudapp.net/browsing-blobs-within-a-container-using-the-azure-node-sdk/simple-sample-result.png" width="560" height="463" /&gt;&lt;/p&gt;

  &lt;p&gt;There's nothing wrong with the code above, and it might be sufficient for you and your business needs (actually, it will work great if all your blobs are children of the container). But what happens if your containers have a considerable amount of blobs, organized in a logic way, and you want to retrieve them in a lazy manner? If that's the case you're facing, keep reading.&lt;/p&gt;

  &lt;h5&gt;Using directories approach&lt;/h5&gt;

  &lt;p&gt;You can filter the results of the &lt;strong&gt;listBlob&lt;/strong&gt; operation by setting the &lt;strong&gt;prefix&lt;/strong&gt; and &lt;strong&gt;delimiter&lt;/strong&gt; parameters. The first one is used, as its name claims, to return only the blobs whose names begin with the value specified. The delimiter has two purposes: to skip from the result those blobs whose names contains the delimiter, and to include a &lt;strong&gt;BlobPrefix&lt;/strong&gt; element in the &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd135734.aspx"&gt;REST API&lt;/a&gt; response body. This element will act as a placeholder for all blobs whose names begin with the same substring up to the appearance of the delimiter, and will be used to simulate a directory hierarchy (the folders will be listed there).&lt;/p&gt;

  &lt;pre&gt;&lt;code&gt;var azure  = require('azure');

...

function Home () {
    this.blobService = azure.createBlobService();
};

function getFiles(collection){
    var items = [];
    for(var key in collection){
        var item = collection[key];
        var itemName = item.name.split('/')[item.name.split('/').length - 1];
        items.push({ 'text': itemName, 'classes': 'file'});
    }
    return items;
}

function getFolders(containerName, collection){
    var items = [];
    //if BlobPrefix contains one folder is a simple JSON. Otherwise is an array of JSONs
    if (collection &amp;amp;&amp;amp; !collection.length){
        temp = collection;
        collection = [];
        collection.push(temp);
    }
    for(var key in collection){
        var item = collection[key];
        var itemName = item.Name.replace(/\/$/, '').split('/')[item.Name.replace(/\/$/, '').split('/').length - 1];
        items.push({ 'text': itemName, 'classes': 'folder' });
    }
    return items;
}

Home.prototype = {

    ...

    listBlobs: function(containerName, prefix, delimiter, callback){
        var self = this;
        self.blobService.listBlobs(containerName,{ 'prefix': prefix, 'delimiter': delimiter}, function(err, result, resultCont, response){
            if(!err){
                var files = getFiles(result);
                var folders = getFolders(containerName, response.body.Blobs.BlobPrefix);
                var childs = folders.concat(files);
                // return the childs
            }
        });
    },

    ...
};
&lt;/code&gt;&lt;/pre&gt;

  &lt;p&gt;This is what we're doing in the lines above:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;First, we parse the result to access the blobs returned (by calling getFiles). &lt;/li&gt;

    &lt;li&gt;To generate the folders, we parse the &lt;strong&gt;BlobPrefix&lt;/strong&gt; element (located inside the Response Body). &lt;/li&gt;

    &lt;li&gt;Lastly, we join these two collections into one. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;We created this &lt;a href="https://github.com/nanovazquez/common/tree/master/azure-blob-explorer-tree-view"&gt;sample&lt;/a&gt; to demonstrate how you can use all of this in a real-world scenario. It shows you how to correctly parse the JSON returned by the &lt;strong&gt;listBlobs&lt;/strong&gt; operation, and how to use this information to populate a control in the View, like a &lt;a href="https://github.com/jzaefferer/jquery-treeview"&gt;jQuery Treeview Plugin&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Showing the blobs in a TreeView" alt="" src="http://nodeblog.cloudapp.net/browsing-blobs-within-a-container-using-the-azure-node-sdk/treeview-sample-result.png" width="560" height="424" /&gt;&lt;/p&gt;

  &lt;p&gt;Enjoy coding!&lt;/p&gt;
&lt;/blockquote&gt;



&lt;hr /&gt;





&lt;p&gt;&lt;strong&gt;• Josh Wills&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/josh_wills"&gt;josh_wills&lt;/a&gt;) described the “practice of data science” in a &lt;a href="http://www.cloudera.com/blog/2012/01/seismic-data-science-hadoop-use-case/"&gt;Seismic Data Science: Reflection Seismology and Hadoop&lt;/a&gt; post of 1/25/2012 to Cloudera’s Developer Center blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-lTy8kcLluyE/TyrWCk5FDsI/AAAAAAAAalg/eF2s_awXIFI/s1600-h/image%25255B86%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/-3eyfWCfP5go/TyrWCxJ158I/AAAAAAAAalo/VWdvfnTazyo/image_thumb%25255B36%25255D.png?imgmax=800" width="48" height="66" /&gt;&lt;/a&gt;When most people first hear about data science, it’s usually in the context of how prominent web companies work with very large data sets in order to predict clickthrough rates, make personalized recommendations, or analyze UI experiments. The solutions to these problems require expertise with statistics and machine learning, and so there is a general perception that data science is intimately tied to these fields. However, in my conversations at &lt;a href="http://biglearn.org"&gt;academic conferences&lt;/a&gt; and with Cloudera customers, I have found that many kinds of scientists– such as astronomers, geneticists, and geophysicists– are working with very large data sets in order to build models that do not involve statistics or machine learning, and that these scientists encounter data challenges that would be familiar to data scientists at Facebook, Twitter, and LinkedIn.&lt;/p&gt;

  &lt;h5&gt;The Practice of Data Science&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-aCyOtG4lOJg/TyrWDBZA6cI/AAAAAAAAalw/ge1JhsvaLv0/s1600-h/image%25255B83%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/-YX8gz_s6V98/TyrWDdgKhfI/AAAAAAAAal4/DGbJzxMJOp8/image_thumb%25255B35%25255D.png?imgmax=800" width="162" height="41" /&gt;&lt;/a&gt;The term “data science” has been subject to criticism on the grounds that it doesn’t mean anything, e.g., “&lt;a href="http://blog.revolutionanalytics.com/2011/05/data-science-whats-in-a-name.html"&gt;What science doesn’t involve data?&lt;/a&gt;” or “&lt;a href="https://twitter.com/#!/chl/statuses/119036176068902914"&gt;Isn’t data science a rebranding of statistics?&lt;/a&gt;” The source of this criticism could be that data science is not a solitary discipline, but rather a set of techniques used by many scientists to solve problems across a wide array of scientific fields. As &lt;a href="http://www.linkedin.com/in/dpatil"&gt;DJ Patil&lt;/a&gt; wrote in his &lt;a href="http://radar.oreilly.com/2011/09/building-data-science-teams.html"&gt;excellent overview of building data science teams&lt;/a&gt;, the key trait of all data scientists is the understanding “that the heavy lifting of [data] cleanup and preparation isn’t something that gets in the way of solving the problem: it &lt;em&gt;is&lt;/em&gt; the problem.”&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-fv4-IBn5eSU/TyrWDsjmTEI/AAAAAAAAamA/_selACGkUW8/s1600-h/image%25255B91%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/-YXerV9tCMOw/TyrWD0svKtI/AAAAAAAAamI/OobhCp3rzgE/image_thumb%25255B39%25255D.png?imgmax=800" width="160" height="41" /&gt;&lt;/a&gt;I have found a few more characteristics that apply to the work of data scientists, regardless of their field of research:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Inverse problems.&lt;/strong&gt; Not every data scientist is a statistician, but all data scientists are interested in extracting information about complex systems from observed data, and so we can say that data science is related to the study of &lt;a href="http://en.wikipedia.org/wiki/Inverse_problem"&gt;inverse problems&lt;/a&gt;. Inverse problems arise in almost every branch of science, including &lt;a href="http://en.wikipedia.org/wiki/Medical_imaging"&gt;medical imaging&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Remote_sensing"&gt;remote sensing&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Astronomy"&gt;astronomy&lt;/a&gt;. We can also think of DNA sequencing as an inverse problem, in which the genome is the underlying model that we wish to reconstruct from a collection of observed DNA fragments. Real-world inverse problems are often &lt;a href="http://en.wikipedia.org/wiki/Ill-posed_problem"&gt;ill-posed&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Condition_number"&gt;ill-conditioned&lt;/a&gt;, which means that scientists need &lt;a href="http://www.drewconway.com/zia/?p=2378"&gt;substantive expertise&lt;/a&gt; in the field in order to apply reasonable regularization conditions in order to solve the problem. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Data sets that have a rich set of relationships between observations.&lt;/strong&gt; We might think of this as a kind of &lt;a href="http://en.wikipedia.org/wiki/Metcalfe's_law"&gt;Metcalfe’s Law&lt;/a&gt; for data sets, where the value of a data set increases nonlinearly with each additional observation. For example, a single web page doesn’t have very much value, but 128 billion web pages can be used to build a search engine. A DNA fragment in isolation isn’t very useful, but millions of them can be combined to sequence a genome. A single adverse drug event could have any number of explanations, but &lt;a href="http://www.cloudera.com/blog/2011/11/using-hadoop-to-analyze-adverse-drug-events/"&gt;millions of them can be processed to detect suspicious drug interactions&lt;/a&gt;. In each of these examples, the individual records have rich relationships that enhance the value of the data set as a whole. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Open-source software tools with an emphasis on data visualization.&lt;/strong&gt; One indicator that a research area is full of data scientists is an active community of open source developers. The &lt;a href="http://www.r-project.org/"&gt;R Project&lt;/a&gt; is a widely known and used toolset that cuts across a variety of disciplines, and has even been used as a basis for specialized projects like &lt;a href="http://www.bioconductor.org/"&gt;Bioconductor&lt;/a&gt;. Astronomers have been using tools like &lt;a href="http://www.aips.nrao.edu/index.shtml"&gt;AIPS&lt;/a&gt; for processing data from radio telescopes and &lt;a href="http://iraf.noao.edu/"&gt;IRAF&lt;/a&gt; for data from optical telescopes for more than 30 years. &lt;a href="http://bowtie-bio.sourceforge.net/index.shtml"&gt;Bowtie&lt;/a&gt; is an open source project for performing very fast DNA sequence alignment, and the &lt;a href="http://www.cloudera.com/blog/2009/10/analyzing-human-genomes-with-hadoop/"&gt;Crossbow&lt;/a&gt; Project combines Bowtie with Apache Hadoop for distributed sequence alignment processing. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;We can use the term “data scientist” as a specialization of “scientist” in the same way that we use the term “theoretical physicist” as a specialization of “physicist.” Just as there are theoretical physicists that work within the various subdomains of physics, such as cosmology, optics, or particle physics, there are data scientists at work within every branch of science.&lt;/p&gt;

  &lt;h5&gt;Data Scientists Who Find Oil: Reflection Seismology&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Reflection_seismology"&gt;Reflection seismology&lt;/a&gt; is a set of techniques for solving a classic inverse problem: given a collection of seismograms and associated metadata, generate an image of the subsurface of the Earth that generated those seismograms. These techniques are primarily used by exploration and production companies in order to locate oil and natural gas deposits, although they were also used to identify the location of the &lt;a href="http://en.wikipedia.org/wiki/Chicxulub_Crater"&gt;Chicxulub Crater&lt;/a&gt; that has been linked to the &lt;a href="http://www.sciencemag.org/content/327/5970/1214.abstract"&gt;extinction of the dinosaurs&lt;/a&gt;.&lt;/p&gt;

  &lt;p align="center"&gt;&lt;a href="http://www.epa.gov/esd/cmb/GeophysicsWebsite/pages/reference/methods/Marine_Geophysical_Methods/Marine_Seismic_Methods.htm"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://www.epa.gov/esd/cmb/GeophysicsWebsite/pages/reference/_img/NewImages/Marine/Marine%20Seismic%20Cartoon.jpg" width="481" height="403" /&gt;&lt;/a&gt;Marine Seismic Survey&lt;/p&gt;

  &lt;p&gt;Seismic data is collected by surveying an area that is suspected to contain oil or gas deposits. Seismic waves are generated from a &lt;em&gt;source,&lt;/em&gt; which is usually an air gun in marine surveys or a machine called a &lt;a href="http://nl.wikipedia.org/wiki/Bestand:Vibroseis_Vehicle.jpg"&gt;Vibroseis&lt;/a&gt; for land-based surveys. The seismic waves reflect back to the surface at the interfaces between rock layers, where an array of receivers record the amplitude and arrival times of the reflected waves as a time series, which is called a &lt;em&gt;trace&lt;/em&gt;. The data that is generated from a single source is called a &lt;em&gt;shot&lt;/em&gt; or &lt;em&gt;shot record,&lt;/em&gt; and a modern seismic survey may consist of tens of thousands of shots and multiple terabytes of trace data.&lt;/p&gt;

  &lt;p align="center"&gt;&lt;a href="http://www.epa.gov/esd/cmb/GeophysicsWebsite/pages/reference/methods/Surface_Geophysical_Methods/Seismic_Methods/Seismic_Reflection_Methods.htm"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://www.epa.gov/esd/cmb/GeophysicsWebsite/pages/reference/_img/fig251.jpg" width="500" height="221" /&gt;&lt;/a&gt;Common Depth Point (CDP) Gather&lt;/p&gt;

  &lt;p&gt;In order to solve the inversion problem, we take advantage of the geometric relationships between traces that have different source and receiver locations but a &lt;em&gt;common depth point&lt;/em&gt; (also known as a common midpoint). By comparing the time it took for the seismic waves to travel from the different source and receiver locations and experimenting with different velocity models for the waves moving through the rock, we can estimate the depth of the common subsurface point that the waves reflected off of. By aggregating a large number of these estimates, we can construct a complete image of the subsurface. As we increase the density and the number of traces, we can create higher quality images that improve our understanding of the subsurface geology.&lt;/p&gt;

  &lt;p align="center"&gt;&lt;a href="http://www.wired.com/wiredscience/tag/seismic-image/"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="" src="http://clasticdetritus.files.wordpress.com/2008/11/nankai3dseismic.jpeg" width="560" height="354" /&gt;&lt;/a&gt;A 3D seismic image of Japan's southeastern margin&lt;/p&gt;

  &lt;p&gt;Additionally, seismic data processing has a long history of using open-source software tools that were initially developed in academia and were then adopted and enhanced by private companies. Both the &lt;a href="http://www.cwp.mines.edu/cwpcodes/"&gt;Seismic Unix&lt;/a&gt; project, from the Colorado School of Mines, and &lt;a href="http://sepwww.stanford.edu/doku.php?id=sep:software:seplib"&gt;SEPlib&lt;/a&gt;, from Stanford University, have their roots in tools created by graduate students in the late 1970s and early 1980s. Even the most popular commercial toolkit for seismic data processing, &lt;a href="http://www.halliburton.com/ps/Default.aspx?navid=221&amp;amp;pageid=874"&gt;SeisSpace&lt;/a&gt;, is built on top of an open source foundation, the &lt;a href="http://sourceforge.net/apps/mediawiki/javaseis/index.php?title=Main_Page"&gt;JavaSeis&lt;/a&gt; project.&lt;/p&gt;

  &lt;h5&gt;Hadoop and Seismic Data Processing&lt;/h5&gt;

  &lt;p&gt;Geophysicists have been pushing the limits of high-performance computing for more than three decades; they were &lt;a href="http://sepwww.stanford.edu/sep/biondo/HTML/Computing.html"&gt;early adopters&lt;/a&gt; of the first &lt;a href="http://www.cray.com/About/History.aspx"&gt;Cray supercomputers&lt;/a&gt; as well as the massively parallel &lt;a href="http://en.wikipedia.org/wiki/Connection_Machine"&gt;Connection Machine&lt;/a&gt;. Today, the most challenging seismic data processing tasks are performed on custom compute clusters that take advantage of multiple GPUs per node, high-performance networking and storage systems for fast data access.&lt;/p&gt;

  &lt;p&gt;The data volume of modern seismic surveys and the performance requirements of the compute clusters means that data from seismic surveys that are not undergoing active processing are often stored offsite on tape. If a geophysicist wants to re-examine an older survey, or study the effectiveness of a new processing technique, he must file a request to move the data into active storage and then consume precious cluster resources in order to process the data.&lt;/p&gt;

  &lt;p&gt;Fortunately, Apache Hadoop has emerged as a cheap and reliable online storage system for petabyte-scale data sets. Even better, we can export many of the most I/O intensive steps in the seismic data processing into the Hadoop cluster itself, thus freeing precious resources in the supercomputer cluster for the most difficult and urgent processing tasks.&lt;/p&gt;

  &lt;p&gt;&lt;a href="https://github.com/cloudera/seismichadoop"&gt;Seismic Hadoop&lt;/a&gt; is a project that we developed at Cloudera to demonstrate how to store and process seismic data in a Hadoop cluster. It combines Seismic Unix with &lt;a href="https://github.com/cloudera/crunch"&gt;Crunch&lt;/a&gt;, the Java library we developed for creating MapReduce pipelines. Seismic Unix gets its name from the fact that it makes extensive use of &lt;a href="http://en.wikipedia.org/wiki/Pipeline_(Unix)"&gt;Unix pipes&lt;/a&gt; in order to construct complex data processing tasks from a set of simple procedures. For example, we might build a pipeline in Seismic Unix that first applies a filter to the trace data, then edits some metadata associated with each trace, and finally sorts the traces by the metadata that we just edited:&lt;/p&gt;

  &lt;pre&gt;sufilter f=10,20,30,40 | suchw key1=gx,cdp key2=offset,gx key3=sx,sx b=1,1 c=1,1 d=1,2 | susort cdp gx&lt;/pre&gt;

  &lt;p&gt;Seismic Hadoop takes this same command and builds a Crunch pipeline that performs the same operations on a data set stored in a Hadoop cluster, replacing the local &lt;em&gt;susort&lt;/em&gt; command with a distributed sort across the cluster using MapReduce. Crunch takes care of figuring out how many MapReduce jobs to run and which processing steps are assigned to the map phase and which are assigned to the reduce phase. Seismic Hadoop also takes advantage of Crunch’s support for streaming the output of a MapReduce pipeline back to the client in order to run the utilities for visualizing data that come with Seismic Unix.&lt;/p&gt;

  &lt;h5&gt;Challenges to Solve Together&lt;/h5&gt;

  &lt;p&gt;Talking to a geophysicist is a little bit like seeing into the future: the challenges they face today are the challenges that data scientists in other fields will be facing five years from now. There are two challenges in particular that I would like the broader community of data scientists and Hadoop developers to be thinking about:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Reproducibility.&lt;/strong&gt; Geophysicists have developed tools that make it easy to understand and reproduce the entire history of analyses performed on a particular data set. One of the most popular open source seismic processing toolkits, &lt;a href="http://www.reproducibility.org/wiki/Main_Page"&gt;Madagascar&lt;/a&gt;, even chose &lt;a href="http://reproducibility.org"&gt;reproducibility.org&lt;/a&gt; as its home page. Reproducible research has enormous benefits in terms of data quality, transparency, and education, and all of the tools we develop should be built with reproducibility in mind. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Dynamic and resource-aware scheduling of jobs on heterogeneous clusters. &lt;/strong&gt;&lt;a href="http://www.cloudera.com/blog/2011/11/apache-hadoop-0-23-0-has-been-released/"&gt;MR2 and YARN&lt;/a&gt; will unleash a &lt;a href="http://en.wikipedia.org/wiki/Cambrian_explosion"&gt;Cambrian explosion &lt;/a&gt;of data-intensive processing jobs on Hadoop clusters. What was once only MapReduce jobs will now include &lt;a href="https://issues.apache.org/jira/browse/MAPREDUCE-2911"&gt;MPI jobs&lt;/a&gt;, &lt;a href="https://github.com/mesos/spark-yarn"&gt;Spark queries&lt;/a&gt;, and &lt;a href="http://codingwiththomas.blogspot.com/2011/10/apache-hama-upcoming-features.html"&gt;BSP-style &lt;/a&gt;computations. Different jobs will have radically different resource requirements in terms of CPU, memory, disk, and network utilization, and we will need fine-grained resource controls, intelligent defaults, and robust mechanisms for recovering from task failures across all job types. &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;It is an unbelievably exciting time to be working on these big data problems. &lt;a href="http://www.cloudera.com/company/careers/"&gt;Join us&lt;/a&gt; and be part of the solution!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Josh is a data scientist for Cloudera and the creator of Crunch.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Andrew Brust&lt;/strong&gt; (@&lt;a href="http://twitter.com/andrewbrust"&gt;andrewbrust&lt;/a&gt;) asserted “By responding to potential threats with thoughtfulness, and a zeal to add value, SQL and Big Data could be big business for Redmond” as a deck for his &lt;a href="http://reddevnews.com/articles/2012/02/01/big-data-and-sql-server-disruption-or-harmony.aspx"&gt;Big Data and SQL Server: Disruption or Harmony?&lt;/a&gt; article of 2/1/2012 for the Redmond Developer News site:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-nKwmVvdgbJ8/TynWcYmTF4I/AAAAAAAAafY/2NECG7AIO30/s1600-h/image13.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/-1RFk9oJyGBY/TynWcm0kTiI/AAAAAAAAafg/xbjmToAYKEU/image_thumb5.png?imgmax=800" width="53" height="66" /&gt;&lt;/a&gt;The SQL Server relational engine matured a long time ago. There have been advances, of course, in performance, fault tolerance and high availability, not mention encryption, compression and file-system integration. And, yes, there's been support for XML, geospatial data and even a service broker. But these have been improvements on the margins. All these features are new flavors of icing; the cake has stayed the same. &lt;/p&gt;

  &lt;p&gt;And yet, over the 20-year lifetime of SQL Server, Microsoft has continued to add value to the product, even as the core features have gone into maintenance mode. The big story here has been business intelligence: BI capabilities started in SQL Server 7 with OLAP Services, and have been expanded in meaningful ways with every subsequent release. It's been a great strategy and it still is. But will it keep working? &lt;/p&gt;

  &lt;p&gt;Core capabilities can't stay static forever; eventually disruption comes along. Today that disruption is here, coming from Big Data, Hadoop and its MapReduce distributed-computing approach. As strong as SQL Server BI capabilities are (and they're getting even stronger with SQL Server 2012), if Microsoft can't embrace Big Data technology, SQL Server could find itself in a position of desperation, going from underdog to contender, to retiree. What's a poor enterprise software company to do? &lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Build Bridges, Don't Burn Them&lt;/b&gt; 

    &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-NuS3JYDi4xc/TynWc6E9BII/AAAAAAAAafo/mNXME5Zhqa4/s1600-h/image_thumb3_thumb2.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/-moBzyBxFY7c/TynWdP_ZwjI/AAAAAAAAafw/ieKmLrLRN1o/image_thumb3_thumb_thumb.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;Microsoft could ignore Hadoop, but that would be foolish. It could try to build a competitor, which it almost did with the Microsoft Research Dryad project, but I fear not too many people would have come to that party. Microsoft could just adopt Hadoop, plain vanilla, but that would most likely be a race to the bottom, and it wouldn't even win. Really, Microsoft must mix Hadoop into its bag of tricks and do what it has always done best: take a raw technology and make it approachable to the enterprise. I can't be sure yet, but I think that's what Microsoft has done, and it has enhanced the value of Windows Azure in the process. &lt;/p&gt;

  &lt;p&gt;With code name &amp;quot;Project Isotope,&amp;quot; Microsoft has taken the step of implementing Hadoop on Windows. It's a no-slouch effort, too: Microsoft's distribution of Hadoop is being developed in concert with Hortonworks, a startup company founded and staffed by many former Hadoop team members at Yahoo! (where the open source project began). But what Microsoft has also done is integrate Hadoop into its BI stack, and that may be one of the smartest moves it's made in quite some time. &lt;/p&gt;

  &lt;p&gt;Microsoft has created an Excel add-in for Hive, which provides a SQL-like abstraction over Hadoop and MapReduce. The add-in is based on an ODBC driver, which in turn is compatible with PowerPivot, so business users can do meaningful analysis on Big Data, on their own terms. And because the same engine that drives PowerPivot has been implemented inside Analysis Services in SQL Server 2012, that product has access to Hadoop now, too. With that, Microsoft has joined the Big Data and Enterprise BI worlds. It has also tied together SQL Server and Hadoop. &lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Simplify and Succeed&lt;/b&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;Hadoop runs on Windows Server and on Windows Azure, with an installer that makes setup really easy. In addition to those configurations, Microsoft allows Windows Azure users to provision an entire Hadoop cluster from a Web portal, without any discrete installation steps at all. Once the cluster's up, customers can connect to its head node via Remote Desktop. The full Java-based command-line personality of Hadoop is there if you want it, but there are also Hive and JavaScript consoles in the browser. And then it only takes a minute or two to build out a connection from Microsoft BI tools or Excel, putting Hadoop to work for users fitting a number of profiles. It's classic Microsoft, mixed with equal parts open source and Java. &lt;/p&gt;

  &lt;p&gt;I've said before that Microsoft does some of its best work when it embraces standards from outside the company. That's what happened with jQuery and ASP.NET, and it may well be what happens with HTML5 and JavaScript in Windows 8. In the case of implementing Hadoop, Microsoft makes Windows Azure more valuable and more agnostic. It brings continued relevance to Windows Server and SQL Server. And it widens the reach and utility of Hadoop. By responding to a potential threat with thoughtfulness -- and a zeal to add value -- Big Data could be big business for Redmond.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Full disclosure&lt;/strong&gt;: I’m a contributing editor for Visual Studio Magazine, which is published by 1105 Media who also own the Redmond Developer News site.&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="SDS"&gt;SQL Azure Database, Federations and Reporting &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;• Herve Roggero&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/hroggero"&gt;hroggero&lt;/a&gt;) posted a &lt;a href="http://geekswithblogs.net/hroggero/archive/2012/02/02/quick-review-of-backup-tools-for-sql-azure.aspx"&gt;Quick Review of Backup tools for SQL Azure&lt;/a&gt; on 2/1/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-E86JiENjZUc/TyrWEB0Ol5I/AAAAAAAAamQ/WSovWlZoTV0/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://lh5.ggpht.com/-PZNHNK5A_ps/TyrWEeLFFzI/AAAAAAAAamY/O2N92Yk8CYE/image_thumb%25255B2%25255D.png?imgmax=800" width="58" height="62" /&gt;&lt;/a&gt;The landscape of SQL Azure backups is changing rapidly. A few tools are becoming available at no charge and Microsoft is adding capabilities over time. Here a quick update.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Microsoft Tools&lt;/strong&gt;&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;Microsoft offers two primary backup mechanisms so far:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Export/Import feature available on the Azure Management portal &lt;/li&gt;

    &lt;li&gt;The COPY operation as part of its T-SQL CREATE DATABASE statement &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;These mechanisms do not offer a scheduling component and do not work together. To obtain a transactionally consistent backup, you first need to perform the COPY operation manually, then run the Export function.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Free Tools&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;You have other tools on the market that are a bit more comprehensive at no charge. Here are a few:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Enzo Backup for SQL Azure (Standard Edition) &lt;/li&gt;

    &lt;li&gt;Red Gate's SQL Azure Backup (backup only; no restore; no cloud backup) &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;These are the only two third-party products available at no charge I am aware of right now. Note that Red Gate's product provides a simple copy operation to a local SQL Server database, not really a backup/restore solution. However it does the job well if you want to get a local copy of your data. Enzo Backup is more comprehensive and offers many more functions, such as a built-in scheduler, cloud backup devices (in Blobs) and a restore capability.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Paid-For Tools&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Enzo Backup for SQL Azure (Advanced Edition) &lt;/li&gt;

    &lt;li&gt;SQLAzureBackup (basic command-line BCP wrapper, no cloud backup) &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Regarding the tools you can purchase, SQLAzureBackup is a product you can purchase, although it seems somewhat limited in its capabilities. You can nonetheless use it to export your data locally and restore the database back into SQL Azure. Enzo Backup Advanced Edition is a more powerful flavor of the free version that leverages multithreading for faster operations.&lt;/p&gt;

  &lt;p&gt;Here is a link to an MSDN article that offers additional information on how to backup SQL Azure: &lt;a href="http://blogs.msdn.com/b/davidmcg/archive/2011/09/29/data-backup-strategies-for-windows-and-sql-azure.aspx"&gt;http://blogs.msdn.com/b/davidmcg/archive/2011/09/29/data-backup-strategies-for-windows-and-sql-azure.aspx&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;For the time being Enzo Backup appears to have significantly more capabilities than the other products, and it can be used at no charge by visiting Blue Syntax's website (&lt;a href="http://www.bluesyntax.net"&gt;http://www.bluesyntax.net&lt;/a&gt;). &lt;/p&gt;

  &lt;p&gt;[Disclaimer: I am the author of Enzo Backup for SQL Azure; this blog intends to provide a quick overview of the current tools available on the market; please investigate the tools referenced here and visit the MSDN link provided to make an educated decision]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Benjamin Guinebertière&lt;/strong&gt; explained how to &lt;a href="http://blogs.msdn.com/b/benjguin/archive/2012/02/01/use-ssis-to-push-data-to-sql-azure-utiliser-ssis-pour-pousser-des-donn-233-es-vers-sql-azure.aspx"&gt;Use SSIS to push data to SQL Azure | Utiliser SSIS pour pousser des données vers SQL Azure&lt;/a&gt; in a 1/31/2012 post. From the English version:&lt;/p&gt;

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

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-vqOG4xwkoBE/TynWd0XMvBI/AAAAAAAAaf4/GS-wn5Hn24k/s1600-h/image%25255B8%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/-5I1NKXby_h8/TynWeB1cPqI/AAAAAAAAagA/fjA0LVj2d58/image_thumb%25255B2%25255D.png?imgmax=800" width="50" height="66" /&gt;&lt;/a&gt;The goal of this blog post is to show that it is as easy with SQL Azure as with SQL Server to push data with SSIS.&lt;/p&gt;

  &lt;p&gt;In this sample, let’s use SQL Server 2008 R2, which is the latest SQL Server version in production (1).&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;The scenario is to push some data from SQL Server 2008 R2 on premises to SQL Azure in the cloud. This is done with SQL Server 2008 R2 Integration Services (SSIS).&lt;/p&gt;

  &lt;p&gt;If and when starting from an empty SQL Azure database, in order to create the schema, one would typically use &lt;a href="http://blogs.msdn.com/b/benjguin/archive/2011/05/03/vid-233-o-sql-server-vers-sql-azure-sql-server-to-sql-azure-demo.aspx"&gt;SQL Azure Migration Wizard&lt;/a&gt; which has an option to generate schema only.&lt;/p&gt;

  &lt;p&gt;Here are the steps to create a very simple SSIS package and execute it (in debug mode):&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/3146.image_5F00_4285EF2D.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-46-20-metablogapi/7331.image_5F00_thumb_5F00_07521362.png" width="560" height="393" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/2022.image_5F00_0F8638F9.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-46-20-metablogapi/8715.image_5F00_thumb_5F00_7752A8D0.png" width="560" height="421" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/8867.image_5F00_2C9BBB36.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-46-20-metablogapi/3681.image_5F00_thumb_5F00_271D24C5.png" width="560" height="421" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/0842.image_5F00_3CB75D62.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-46-20-metablogapi/5241.image_5F00_thumb_5F00_3BDEF778.png" width="494" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/8546.image_5F00_7A64451E.png"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/4237.image_5F00_thumb_5F00_18625313.png" width="560" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/3568.image_5F00_70DB60DB.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-46-20-metablogapi/1581.image_5F00_thumb_5F00_5B11787E.png" width="287" height="147" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/8446.image_5F00_5960ACAA.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-46-20-metablogapi/1184.image_5F00_thumb_5F00_2CD77CC4.png" width="560" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/4212.image_5F00_350BA25B.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-46-20-metablogapi/8422.image_5F00_thumb_5F00_69E881CB.png" width="519" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/3125.image_5F00_47444350.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-46-20-metablogapi/7827.image_5F00_thumb_5F00_52F98A82.png" width="484" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/0564.image_5F00_17597BC2.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-46-20-metablogapi/4375.image_5F00_thumb_5F00_40ED46F5.png" width="491" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/3201.image_5F00_5E7F21F4.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-46-20-metablogapi/7180.image_5F00_thumb_5F00_6AA09C1B.png" width="492" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/1122.image_5F00_0F51B393.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-46-20-metablogapi/1122.image_5F00_thumb_5F00_5F476211.png" width="560" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/0143.image_5F00_622CA0F7.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-46-20-metablogapi/1614.image_5F00_thumb_5F00_15F49749.png" width="256" height="322" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/2287.image_5F00_3F88627C.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-46-20-metablogapi/2703.image_5F00_thumb_5F00_45630615.png" width="357" height="160" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/2768.image_5F00_0A9B5D3F.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-46-20-metablogapi/8535.image_5F00_thumb_5F00_7B184B6F.png" width="560" height="342" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/4834.image_5F00_6D658F67.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-46-20-metablogapi/8623.image_5F00_thumb_5F00_16F95A9B.png" width="513" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/2337.image_5F00_62788852.png"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/6038.image_5F00_thumb_5F00_0C6860AE.png" width="560" height="444" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/5140.image_5F00_017B5999.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-46-20-metablogapi/6545.image_5F00_thumb_5F00_5485F6BD.png" width="486" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;NB: the SSIS package needs an outbound access to port 1433 in order to connect to SQL Azure. The &lt;a href="http://blogs.msdn.com/b/benjguin/archive/2011/12/05/create-a-sql-azure-server-cre-233-er-un-serveur-sql-azure.aspx"&gt;SQL Azure firewall must also have been opened&lt;/a&gt; for the public IP address the SSIS package will use to access the Internet.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/6457.image_5F00_18E5E7FD.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-46-20-metablogapi/4073.image_5F00_thumb_5F00_6947C970.png" width="560" height="426" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/8686.image_5F00_34C6F728.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-46-20-metablogapi/2804.image_5F00_thumb_5F00_1EFD0ECB.png" width="189" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/1727.image_5F00_045072B2.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-46-20-metablogapi/3884.image_5F00_thumb_5F00_1B2F442E.png" width="494" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/8255.image_5F00_586FF8F5.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-46-20-metablogapi/6505.image_5F00_thumb_5F00_27409888.png" width="560" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/8231.image_5F00_0A76FDA6.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-46-20-metablogapi/2474.image_5F00_thumb_5F00_294D7184.png" width="210" height="197" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/5078.image_5F00_195E2CC0.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-46-20-metablogapi/5001.image_5F00_thumb_5F00_15242F2E.png" width="560" height="422" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Here is a synopsis of what we just did. Data was copied from SQL Server 2008 R2 to SQL Azure thru SSIS exactly as it would have been from SQL Server to SQL Server.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-46-20-metablogapi/4405.image_5F00_3249D738.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-46-20-metablogapi/4174.image_5F00_thumb_5F00_0B6B9B2B.png" width="560" height="407" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;This sample SSIS package was very simple, because its goal was to show connectivity is seamless. Of course, in real life this package would contain much more shapes in order to copy several tables, transform data and so on.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://www.benjguin.com/"&gt;Benjamin&lt;/a&gt;&lt;/p&gt;

  &lt;hr /&gt;

  &lt;p&gt;(1) SQL Server 2012 is in Release Candidate 0 for now so I expect companies to have SQL Server 2008 R2 deployed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In my opinion, George Huey’s SQL Azure Migration Wizard is a simpler and more straightforward method of uploading data to SQL Azure. See my &lt;a href="http://oakleafblog.blogspot.com/2010/01/using-sql-azure-migration-wizard-v313.html"&gt;Using the SQL Azure Migration Wizard v3.3.3 with the AdventureWorksLT2008R2 Sample Database&lt;/a&gt; of 7/10/2010 for more details.&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="OData"&gt;MarketPlace DataMarket, Social Analytics and OData &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;• &lt;/strong&gt;The &lt;strong&gt;Codename “Social Analytics” Team&lt;/strong&gt; posted the promised &lt;a href="http://blogs.msdn.com/b/microsoft_codename_social_analytics/archive/2012/02/02/lab-bonus-enhanced-sentiment-analysis-for-twitter-from-microsoft-research.aspx"&gt;Lab Bonus! Enhanced Sentiment Analysis for Twitter from Microsoft Research&lt;/a&gt; on 2/2/2012:&lt;/p&gt;

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

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-O0522OTJEOk/TysiT8JIbQI/AAAAAAAAatI/kF490uKlGx0/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: 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/-5iVDGy_YSgY/TysiUH7QbxI/AAAAAAAAatQ/iZi4vyRPdXM/image_thumb%25255B6%25255D.png?imgmax=800" width="65" height="46" /&gt;&lt;/a&gt;In this release, we enhanced our sentiment software by upgrading to the latest version of code from the same Microsoft Research team we used in prior releases. The major improvement in this version of their code is a new classifier specifically trained on Tweets. The sentiment analysis code we used in prior releases from Microsoft Research was trained on short sentences and paragraphs. We predict that the accuracy of sentiment analysis will improve in Social Analytics by using the classifier trained specifically on tweets for Twitter content items. We will continue to use the sentence and paragraph classifiers on all other content.&lt;/p&gt;

  &lt;p&gt;The tweet classifier was trained on nearly 4 million tweets from over a year’s worth of English Twitter data. It is based on a study of how people express their moods on Twitter with mood-indicating hashtags. We mapped over 150 different mood-bearing hashtags to positive and negative affect, and used the hashtags as a training signal to learn which words and word pairs in a tweet are highly correlated with positive or negative affect. &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;How we use the sentiment software in Social Analytics&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;We use the MSR sentiment software to assess the tone of all content items as part of our enrichment process. When the assessment is complete we store both that ranking and the reliability of that assessment the these 2 fields respectively; CalculatedToneID and ToneReliability. Our API and sample client Silverlight UI will expose content item as either positive or negative if the sentiment engine scores the item with a reliability percentage over a certain threshold we determine.&lt;/p&gt;

  &lt;p&gt;Here is a simple explanation of the three fields related to sentiment in the ContentItem table:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;b&gt;Field&lt;/b&gt;&lt;/li&gt;

    &lt;li&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/li&gt;

    &lt;li&gt;&lt;b&gt;CalculatedToneID&lt;/b&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;The sentiment (or tone) of the content item as determined by the sentiment software:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;
      &lt;p&gt;3 = Neutral&lt;/p&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;5 = Positive&lt;/p&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;6 = Negative&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;b&gt;ToneReliability&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;The reliability of the tone calculation as determined by the sentiment software. The reliability thresholds are currently 80% for positive sentiment and 90% for negative sentiment. If we’re below the reliability threshold, the CalculatedToneId will be set to neutral.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;ToneID&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;If a user sets the sentiment manually in our UI or thru an API call, the tone they set is stored in this field. If ToneID is set, we show ToneID rather than CalculatedToneID in the UI and return it in API calls.&lt;/p&gt;

  &lt;p&gt;For more details on this Microsoft Research project, check out &lt;a href="http://research.microsoft.com/tweetaffect"&gt;http://research.microsoft.com/tweetaffect&lt;/a&gt; ! [See post below]&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;See &lt;a href="http://oakleafblog.blogspot.com/2011/11/i-just-completed-new-feature-that.html"&gt;My Microsoft Codename “Social Analytics” Windows Form Client Detects Anomaly in VancouverWindows8 Dataset&lt;/a&gt; and &lt;a href="http://oakleafblog.blogspot.com/2011/11/querying-microsofts-codename-social.html"&gt;Querying Microsoft’s Codename “Social Analytics” OData Feeds with LINQPad&lt;/a&gt; for more details on sentiment analysis of tweets.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Scott Counts&lt;/strong&gt;, &lt;strong&gt;Munmun de Choudhury&lt;/strong&gt; and &lt;strong&gt;Michael Gamon&lt;/strong&gt; of Microsoft Research authored &lt;a href="http://research.microsoft.com/en-us/projects/tweetaffect/"&gt;Affect detection in tweets: The case for automatic affect detection&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-gJqZlnQaf08/TysiUejYJVI/AAAAAAAAatY/0FhZybdvsi8/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/-i23UoZDIyTk/TysiUqbqyjI/AAAAAAAAatg/rPtbCWLDkrY/image_thumb%25255B5%25255D.png?imgmax=800" width="65" height="46" /&gt;&lt;/a&gt;Detecting affect in free text has a wide range of possible applications:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;
      &lt;p&gt;What are the positive and negative talking points of your customers?&lt;/p&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;What opinions are out there on products and services (on Twitter, Facebook, in product reviews, etc.)?&lt;/p&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;How does mood and sentiment trend over time, geography and populations?&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Similarly, there are different techniques to automatically detect affect: some systems use hand-curated word lists of positive and negative opinion terms, others use statistical models that are trained on opinion-heavy text. The challenge is to come up with a system that works reasonably well across various domains and types of content. In other cases, though, it would be better to use a classifier specific to a particular task, in which case the challenge is in creating, or finding, enough annotated text to train a classifier.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;People&lt;/strong&gt;&lt;/p&gt;

  &lt;table border="0" cellspacing="0" cellpadding="2" width="560"&gt;&lt;tbody&gt;
      &lt;tr&gt;
        &lt;td valign="top" width="186"&gt;
          &lt;p align="center"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Scott Counts" alt="Scott Counts" src="http://research.microsoft.com/en-us/people/i/counts.png" /&gt;&lt;a href="http://research.microsoft.com/en-us/people/counts/"&gt;Scott Counts&lt;/a&gt;&lt;/p&gt;
        &lt;/td&gt;

        &lt;td valign="top" width="186"&gt;
          &lt;p align="center"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Munmun De Choudhury" alt="Munmun De Choudhury" src="http://research.microsoft.com/en-us/people/i/munmund.png" /&gt;Munmun De Choudhury &lt;/p&gt;
        &lt;/td&gt;

        &lt;td valign="top" width="186"&gt;
          &lt;p align="center"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Michael Gamon" alt="Michael Gamon" src="http://research.microsoft.com/en-us/people/i/mgamon.png" /&gt;&lt;a href="http://research.microsoft.com/en-us/people/mgamon/"&gt;Michael Gamon&lt;/a&gt;&lt;/p&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;

  

  &lt;p&gt;Recently we have conducted a study based on the psychological literature where we identified over 150 different mood hastags that people use on Twitter. We mapped these hashtags into positive and negative affect and used them as a training signal to identify affect from the tweet text. We collected nearly four million tweets from a span of one year and trained a text classifier on this data.&lt;/p&gt;

  &lt;h5&gt;How the classifier works:&lt;/h5&gt;

  &lt;p&gt;The classifier is trained on text with known affect (positive or negative). For each such text, words and word pairs are extracted and counted. At training time, the classification algorithm (maximum entropy classifier) assigns numerical weights to the words an word pairs depending on how strongly they correlate with positive or negative opinion. At runtime, a new text is passed in and words and word pairs are extracted from the new text. These are passed into the classifier, the weights for the words/pairs are looked up and combined in a classifier-specific mathematical formulation, and the output is a prediction (positive or negative) and a probability.&lt;/p&gt;

  &lt;h5&gt;Training time:&lt;/h5&gt;

  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://research.microsoft.com/en-us/projects/sentiment/train.png" width="560" height="442" /&gt;&lt;/p&gt;

  &lt;h5&gt;Runtime: &lt;/h5&gt;
  &lt;img src="http://research.microsoft.com/en-us/projects/sentiment/run.png" width="560" height="265" /&gt;

  &lt;p&gt;©2012 Microsoft Corporation. All rights reserved.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;See also my &lt;a href="http://oakleafblog.blogspot.com/2011/11/twitter-sentiment-analysis-brief.html"&gt;Twitter Sentiment Analysis: A Brief Bibliography&lt;/a&gt; of 11/26/2011 and &lt;a href="http://oakleafblog.blogspot.com/2011/11/my-continued-analysis-of-microsoft.html"&gt;New Features Added to My Microsoft Codename “Social Analytics” WinForms Client Sample App&lt;/a&gt; of 11/21/2011.&lt;/p&gt;

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

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

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

&lt;p&gt;The &lt;strong&gt;Codename “Data Explorer” Team&lt;/strong&gt; (@&lt;a href="http://twitter.com/DataExplorer"&gt;DataExplorer&lt;/a&gt;) described &lt;a href="http://blogs.msdn.com/b/dataexplorer/archive/2012/02/01/consuming-data-explorer-published-data-feeds-in-visual-studio-primer.aspx"&gt;Consuming “Data Explorer” published data feeds in Visual Studio primer&lt;/a&gt; in a 2/1/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;b&gt;Part 1 – Consuming a Basic Open Feed&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-CtRzElfGs5g/TynWeRTC83I/AAAAAAAAagI/HuB4fLnfhvo/s1600-h/image34.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/-FfIwgCCGnCM/TynWeorI5QI/AAAAAAAAagQ/yXuCFoYKtI8/image_thumb13.png?imgmax=800" width="65" height="66" /&gt;&lt;/a&gt;In a previous &lt;a href="http://blogs.msdn.com/b/dataexplorer/archive/2011/11/01/publish-capabilities-in-data-explorer.aspx"&gt;post&lt;/a&gt; we discussed the Publishing capabilities of Microsoft Codename “Data Explorer”. After mashing up your data and generating interesting results, you can share your findings literally with the world at large. One of the formats available to publish data is as an &lt;a href="http://www.odata.org/"&gt;OData feed&lt;/a&gt;, which can be used to allow programmatic access to the results. &lt;/p&gt;

  &lt;p&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;/a&gt;In this post we cover a basic example of consuming a published feed in Visual Studio (VS) using a simple console application along with some pointers to set it up. We are actively working on improving the ease of access to published results in “Data Explorer” from VS and other tools, so bear with us as we iron out the wrinkles and please reach out to us if you run into any issues. Our goal is to reduce the need for function calls by adding extra user interface support, but in the meantime, for those of you who like to tinker, here are some roll-back-your-sleeves-and-get-your-hands-dirty instructions.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;1. Ensuring the published mashup is set up to be consumable&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;Currently, in order to consume a published OData feed using VS, resources need to have primary keys and include only supported data types (more on this below). For the purposes of this example, the mashup also needs to be published as visible to everyone, including unauthenticated users (meaning, that no authentication mechanism is requested when trying to access the feed). We will cover the explanation for how to access feeds secured via a feed key in a subsequent blog post.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;1.a. Verifying the mashup resources can be externally consumed as a feed&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;First and foremost, all published resources that are to be consumed by VS need to have a primary key. You can ensure that a given table has a primary key by using the Table.AddKey() function. We are working on an “add key” button to the user interface to facilitate this, but in the meantime you can manually add a primary key using the formula bar.&lt;/p&gt;

  &lt;p&gt;For example, let’s start with a very simple table of IDs, First and Last names, created by directly inputting the text into “Data Explorer” and converting to a table:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Create a new mashup (call it, say, “Basic publish to VS”) and add data by inputting text. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;blockquote&gt;
    &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/3010.P1I01_5F00_CreatingSimpleTableByAddingText.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/3010.P1I01_5F00_CreatingSimpleTableByAddingText.jpg" width="560" height="324" /&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;/blockquote&gt;

  &lt;ul&gt;
    &lt;li&gt;Use “To Table” after pressing “Done” to convert the free-form text into a table. &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-48-46-ODataVSPart1/6558.P1I02_5F00_UseToTableForFreeFormText.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/6558.P1I02_5F00_UseToTableForFreeFormText.jpg" width="560" height="222" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Take the default options (using spaces as delimiters and the first row as headers) to create the table. &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-48-46-ODataVSPart1/3414.P1I03_5F00_TakingDefaultTableCreationSettings.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/3414.P1I03_5F00_TakingDefaultTableCreationSettings.jpg" width="560" height="354" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;With a simple table in place, we can now start the process to make it consumable. &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-46-ODataVSPart1/7230.P1I04_5F00_SampleTable.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/7230.P1I04_5F00_SampleTable.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;The first step is to add a primary key. To invoke the Table.AddKey() function using the formula bar, click on the &lt;b&gt;fx&lt;/b&gt; icon next to the Edit button and select “New Task”:&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-46-ODataVSPart1/2821.P1I05_5F00_SampleTableNewTask.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/2821.P1I05_5F00_SampleTableNewTask.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;In the new task, call the function on the TableFromText reference by typing it in as seen in the figure. This function call makes the “ID” column the primary key (since primary keys must be unique, remember that multiple columns can be used to create a key, thus ensuring uniqueness). Note that “TableFromText” happens to be the name of the previous task.&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-46-ODataVSPart1/8875.P1I06_5F00_TableAddKeyFunction.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/8875.P1I06_5F00_TableAddKeyFunction.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Once sure that the table has a primary key, there are a couple of caveats regarding the data that will be exposed in the feed:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Currently, the set of supported data types between VS and “Data Explorer” is different, so in order to ensure VS consumption, the data published in “Data Explorer” (which supports a larger set of data types) needs to be adjusted to be consumed in VS. Among the data types not yet recognized in VS are Time, Duration, DateTimeOffset, and Geospatial. Attempting to import a feed with these data types will cause the entire VS import operation to fail, so make sure that the feed you wish to import into VS does not have any of these data types exposed. &lt;/li&gt;

    &lt;li&gt;Similarly, an exposed service operation that returns a keyed-table type will import correctly into VS, but the service operations will be ignored. &lt;/li&gt;

    &lt;li&gt;Exposed service operations that return tables without keys will fail the VS import, though, as will service operations that have parameters. &lt;/li&gt;

    &lt;li&gt;Lastly, for now tables with navigation properties will also fail the VS import, but we are actively working on a fix that should address this in the near future. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;With the above in mind, and with a mashup that can be consumed by VS via feed, we are ready to publish and consume the data.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;1.b. Publishing the mashup&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;When publishing the mashup, for this example we will make the published results visible to everyone, including unauthenticated users, to allow programmatic access (we will cover the more complex case of consuming authenticated feeds in a future post).&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-46-ODataVSPart1/8284.P1I07_5F00_MakeVisibleToEveryone.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/8284.P1I07_5F00_MakeVisibleToEveryone.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Click on Publish and follow the link to access the publish page. From there, copy the full web address under “Data Feed” for use in programmatic access. &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-46-ODataVSPart1/1263.P1I08_5F00_PublishPageODataFeed.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/1263.P1I08_5F00_PublishPageODataFeed.jpg" width="560" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;This link to the feed is what will allow VS to access the data.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;2. Consuming a feed in Visual Studio&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;Once the feed has been created in a consumable format, there are a few things to be aware of when programmatically accessing the feed via VS.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;2.a. Installing the Microsoft WCF Data Services October 2011 CTP&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;In order to successfully add a service reference using the steps outlined below, be sure to install the community technical preview that included the updated version of the WCF Data Services library; click &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27728"&gt;here&lt;/a&gt; for the Download Center page.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;2.b. Adding a service reference in Visual Studio&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;In your VS project, right-click on References or on Service References to “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-01-48-46-ODataVSPart1/3007.P1I09_5F00_AddingServiceReference.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/3007.P1I09_5F00_AddingServiceReference.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Enter the feed URL from the Data Explorer publish page into the Address box and click Go. Make sure the URL you enter matches the published feed URL exactly (for example, verify there are no trailing spaces). You should be able to see the published resources and click OK to add the service.&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-46-ODataVSPart1/1351.P1I10_5F00_CompletingTheAddingOfServiceReference.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/1351.P1I10_5F00_CompletingTheAddingOfServiceReference.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;2.c. Using the service reference in a console application&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;Here is a sample console program to consume the above feed:&lt;/p&gt;

  &lt;pre&gt;using System;&lt;br clear="all" /&gt;using System.Collections.Generic;&lt;br clear="all" /&gt;using System.Linq;&lt;br clear="all" /&gt;using System.Text; &lt;/pre&gt;

  &lt;pre&gt;namespace ConsumingDEpublishedDataInVSPart1&lt;br clear="all" /&gt;{&lt;br clear="all" /&gt;    class Program&lt;br clear="all" /&gt;    {&lt;br clear="all" /&gt;        static void Main(string[] args)&lt;br clear="all" /&gt;        {&lt;br clear="all" /&gt;            // Note: Make sure you replace the URI &lt;br clear="all" /&gt;            // with the feed URL used when adding a service reference.&lt;br clear="all" /&gt;            EntityCatalog catalog = new EntityCatalog(new &lt;br clear="all" /&gt;            Uri(&amp;quot;https://ws32842467.dataexplorer.sqlazurelabs.com/&lt;br clear="all" /&gt; Published/Basic%20publish%20to%20VS%20test/Feed&amp;quot;));&lt;br clear="all" /&gt;            foreach (EntityType0 element in catalog.Text1)&lt;br clear="all" /&gt;            {   //Note: ‘Text1’ is the name of your mashup resource&lt;br clear="all" /&gt;                Console.WriteLine(element.ID + &amp;quot; &amp;quot; + &lt;br clear="all" /&gt;element.FirstName &lt;br clear="all" /&gt;                                                 + &amp;quot; &amp;quot; &lt;br clear="all" /&gt;element.LastName + &amp;quot; &amp;quot;);&lt;br clear="all" /&gt;            }&lt;br clear="all" /&gt;            Console.WriteLine(&amp;quot;Press any key to continue...&amp;quot;);&lt;br clear="all" /&gt;            Console.ReadKey();&lt;br clear="all" /&gt;        }&lt;br clear="all" /&gt;    }&lt;br clear="all" /&gt;}&lt;/pre&gt;

  &lt;p&gt;As you can see in the figure below, the two “EntityCatalog” references are unresolved (and there are a couple of other interesting service-specific items as well). Note that the resource name in our mashup (“Text1”) is used when accessing the elements in the feed. Note also that the column names (“ID”, “FirstName”, and “LastName”) are also used when accessing each element.&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-46-ODataVSPart1/7624.P1I11_5F00_InitialConsoleAppForAccessingDEFeed.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/7624.P1I11_5F00_InitialConsoleAppForAccessingDEFeed.jpg" width="560" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Before this code can compile, we need to resolve the “EntityCatalog” references via a “using” statement.&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-46-ODataVSPart1/0777.P1I12_5F00_AddingUsingStatementToResolveDEFeedReferences.jpg"&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/0777.P1I12_5F00_AddingUsingStatementToResolveDEFeedReferences.jpg" width="560" height="273" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;This resolves both the “EntityCatalog” and “EntityType0” references because they are names generated by the “Data Explorer” feed.&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-46-ODataVSPart1/3414.P1I13_5F00_DESpecificReferencesResolvedViaUsingStatement.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/3414.P1I13_5F00_DESpecificReferencesResolvedViaUsingStatement.jpg" width="560" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;As a quick aside, those names and their relationship to the mashup resources can be seen in the $metadata description of the “Data Explorer” feed. &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-46-ODataVSPart1/4578.P1I14_5F00_ServiceFeedMetadata.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/4578.P1I14_5F00_ServiceFeedMetadata.jpg" width="560" height="126" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;The above code, when compiled and run, will output the data in the table from our simple mashup.&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-46-ODataVSPart1/2806.P1I15_5F00_SimpleProgramOutput.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/2806.P1I15_5F00_SimpleProgramOutput.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;This pattern can of course be extended to extract data from more meaningful or complex tables. The metadata for the feed (which is accessible by adding “/$metadata” to the feed URL and opening it up in a browser) can be used to tailor the queries over the exposed feed, accessing data from different resources.&lt;/p&gt;

  &lt;p&gt;We are still working hard to improve the experience of consuming “Data Explorer” feeds using VS but hopefully the above example can unlock some interesting new ways to work with your data.&lt;/p&gt;

  &lt;p&gt;What do you think? Let us know your thoughts and stay tuned as we further integrate and simplify the user interface to more easily publish and consume your data with Microsoft Codename “Data Explorer”.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;3. Some troubleshooting FAQs&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;While support for programmatic consumption using VS is still a work in progress, following the above steps should allow you to create a service reference and pull data from your feed. Here are some common issues with setting the reference up; please have a look to see if they help, or ask a question in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/dataexplorer/threads"&gt;our forum&lt;/a&gt; with more specific issues you find.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;3.a. I encounter an Add Service Reference Error. What’s up with that?&lt;/b&gt;&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-46-ODataVSPart1/6523.P1I16_5F00_AddServiceReferenceError.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/6523.P1I16_5F00_AddServiceReferenceError.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Depending on the specific details, this Add Service Reference Error may mean that an incorrect feed URL was used. For instance, one common mistake may be to use the link to the “Data Explorer” publish page rather than the full feed URL (which is the publish page link plus “/Feed”). Double check that the address you use is the full feed link that is presented in the publish page, and not the publish page’s URL.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;3.b. Why does the service require me to enter a user name and password?&lt;/b&gt;&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-46-ODataVSPart1/8666.P1I17_5F00_ServerNeedsToAuthenticateYourRequest.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/8666.P1I17_5F00_ServerNeedsToAuthenticateYourRequest.jpg" width="560" height="230" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;This is most likely due to having selected “Make visible to workspace consumers only” instead of “Make visible to everyone, including unauthenticated users” when publishing the mashup. For this example, try going back to “Data Explorer”, and republish by making visible to everyone. We will explain how to consume feeds protected by a feed key in a future blog post.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;3.c. Why do I get an “Unrecognized version 3.0” error?&lt;/b&gt;&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-46-ODataVSPart1/4666.P1I18_5F00_UnrecognizedVersion30.jpg"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/4666.P1I18_5F00_UnrecognizedVersion30.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;This error crops up if the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27728"&gt;WCF Data Services October 2011 CTP&lt;/a&gt; is not installed. Please see above and verify that this CTP is installed.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;4. Resources used in this post&lt;/b&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;The publicly available publish page for the basic feed used in this post can be found at &lt;a href="https://ws32842467.dataexplorer.sqlazurelabs.com/Published/Basic%20publish%20to%20VS%20test"&gt;https://ws32842467.dataexplorer.sqlazurelabs.com/Published/Basic%20publish%20to%20VS%20test&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;The feed URL used for this post is available at &lt;a href="https://ws32842467.dataexplorer.sqlazurelabs.com/Published/Basic%20publish%20to%20VS%20test/Feed"&gt;https://ws32842467.dataexplorer.sqlazurelabs.com/Published/Basic%20publish%20to%20VS%20test/Feed&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;The sample VS project used for this post can be downloaded &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-46-ODataVSPart1/5148.ConsumingDEpublishedDataInVSPart1.zip"&gt;here&lt;/a&gt;. &lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-m3IAW5wWfgA/Tysp8NXY7sI/AAAAAAAAats/tDwFx-L4vgk/s1600-h/image%25255B19%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/-eRGUu84OXwk/Tysp8ZciaZI/AAAAAAAAat0/EJSJGAK1adE/image_thumb%25255B7%25255D.png?imgmax=800" width="63" height="66" /&gt;&lt;/a&gt;&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/2011/12/mashup-big-data-with-microsoft-codename.html"&gt;Mashup Big Data with Microsoft Codename “Data Explorer” - An Illustrated Tutorial&lt;/a&gt; and &lt;a href="http://oakleafblog.blogspot.com/2011/11/blogger-borks-edits-with-windows-live.html"&gt;More Features and the Download Link for My Codename “Social Analytics” WinForms Client Sample App&lt;/a&gt; posts of December 2011, and &lt;a href="http://searchcloudcomputing.techtarget.com/tip/Microsoft-cloud-service-lets-citizen-developers-crunch-big-data"&gt;Microsoft cloud service lets citizen developers crunch big data&lt;/a&gt; article of 1/14/2012 for SearchCloudComputing.com describe working in Visual Studio 2010 with Social Analytics data sources.&lt;/p&gt;

&lt;p&gt;You can open a live demo of my “Data Explorer” mashup by clicking &lt;a href="https://ws24675086.dataexplorer.sqlazurelabs.com/Published/SocialAnalyticsMashup"&gt;here&lt;/a&gt; and read more about it in a &lt;a href="http://pinpoint.microsoft.com/en-us/applications/microsoft-codename-data-explorer-mashup-with-social-analytics-data-12884933388"&gt;Microsoft Pinpoint entry&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;The &lt;strong&gt;OData Team&lt;/strong&gt; reported &lt;a href="http://www.odata.org/blog/2012/1/30/odata-service-validation-tool-update-7-new-rules"&gt;OData Service Validation Tool Update: 7 new rules&lt;/a&gt; on 1/30/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&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;OData Service Validation Tool&lt;/a&gt; was updated with 4 more new rules and couple other changes:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;2 new &lt;a href="http://services.odata.org/Validation/RuleSet/Rules?$filter=Target eq 'Common'&amp;amp;$orderby=Initial_Release desc"&gt;common rules&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;2 new &lt;a href="http://services.odata.org/Validation/RuleSet/Rules?$filter=Target eq 'Entry'&amp;amp;$orderby=Initial_Release desc"&gt;entry rules&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;Added new rule targets for &lt;a href="http://services.odata.org/Validation/RuleSet/Rules?$filter=Target eq 'Link'&amp;amp;$orderby=Initial_Release desc"&gt;Link&lt;/a&gt;, &lt;a href="http://services.odata.org/Validation/RuleSet/Rules?$filter=Target eq 'Property'&amp;amp;$orderby=Initial_Release desc"&gt;Property&lt;/a&gt; and &lt;a href="http://services.odata.org/Validation/RuleSet/Rules?$filter=Target eq 'Value'&amp;amp;$orderby=Initial_Release desc"&gt;Value&lt;/a&gt; payload type (targets that we used to call Other) &lt;/li&gt;

    &lt;li&gt;Added Not Applicable test result category to all code rules &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;This rule update brings the total number of rules in the validation tool to &lt;strong&gt;140&lt;/strong&gt;. You can see the list of the active rules &lt;a href="http://services.odata.org/validation/roadmap.htm#rules"&gt;here&lt;/a&gt; and the list of rules that are under development &lt;a href="http://services.odata.org/Validation/RuleSet/Rules?$filter=Status eq 'Approved'"&gt;here&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="NET"&gt;Windows Azure Access Control, Service Bus and Workflow &lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Matias Woloski&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/woloski"&gt;woloski&lt;/a&gt;) described &lt;a href="http://nodeblog.cloudapp.net/using-windows-azure-access-control-service-acs-from-a-node-app"&gt;Using Windows Azure Access Control Service (ACS) from a node express app&lt;/a&gt; in a 2/1/2012 post to his Node on Azure blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-N_FXlzph9hI/TyrWFFEbzYI/AAAAAAAAamg/iaak9FpRSxk/s1600-h/image%25255B23%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/--TDb7wJ9pb0/TyrWFWvPy8I/AAAAAAAAamo/mbAey9EqmSs/image_thumb%25255B9%25255D.png?imgmax=800" width="58" height="66" /&gt;&lt;/a&gt;In this article we will explain how to use &lt;a href="https://www.windowsazure.com/en-us/home/tour/access-control/"&gt;Windows Azure Access Control Service&lt;/a&gt; (ACS) from a node.js applicaiton. You might be wondering, what else Widows Azure ACS will provide that everyauth already does. Windows Azure ACS will provide single-sign-on to applications written in different languates/platforms and will also allow you to integrate with &amp;quot;enterprise Security Token Service&amp;quot; like Active Directory Federaetion Services (ADFS), SiteMinder or PingFederate, a common requirement for Software as a Service applications targeted to enterprise customers.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-yOOZlzGK8Z4/TyrWFtCsf_I/AAAAAAAAamw/woeRBSJpkss/s1600-h/image%25255B27%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/-ci6-4-EihA0/TyrWF79JH7I/AAAAAAAAam4/6TntnT0-XBk/image_thumb%25255B11%25255D.png?imgmax=800" width="160" height="47" /&gt;&lt;/a&gt;To do the integration we decided to extend &lt;a href="https://github.com/bnoguchi/everyauth"&gt;everyauth&lt;/a&gt; which provided a good infrastructure to base our work on. &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;If you want to &lt;strong&gt;know how it works&lt;/strong&gt; and how it was implemented read &lt;a href="http://nodeblog.cloudapp.net/implementing-windows-azure-acs-with-everyauth"&gt;Implementing Windows Azure ACS with everyauth&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;If you want to &lt;strong&gt;know how to use&lt;/strong&gt; Windows Azure ACS in your node app keep reading. &lt;/p&gt;

  &lt;h5&gt;How to configure your node application with everyauth and Windows Azure ACS&lt;/h5&gt;

  &lt;p&gt;We are assuming that you already created the node.js Azure Service and added a node web role (&lt;code&gt;New-AzureService&lt;/code&gt; and &lt;code&gt;Add-AzureNodeWebRole&lt;/code&gt;) using the &lt;a href="https://www.windowsazure.com/en-us/develop/nodejs/"&gt;SDK&lt;/a&gt; or you simply have a regular node app.&lt;/p&gt;

  &lt;p&gt;Follow these steps to add support for &lt;a href="https://github.com/bnoguchi/everyauth"&gt;everyauth&lt;/a&gt; and configure the parameters required by &lt;a href="https://www.windowsazure.com/en-us/home/tour/access-control/"&gt;Windows Azure Access Control Service&lt;/a&gt;.&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;
      &lt;p&gt;Add everyauth to your app &lt;code&gt;package.json&lt;/code&gt; and execute &lt;code&gt;npm install&lt;/code&gt; (we haven't send a pull request to everyauth yet, so for now you can point to &lt;code&gt;darrenzully&lt;/code&gt; fork)&lt;/p&gt;

      &lt;pre&gt;&lt;code&gt;&amp;quot;everyauth&amp;quot;: &amp;quot;https://github.com/darrenzully/everyauth/tarball/master&amp;quot;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;Configure everyauth strategies. In this case we will configure only &lt;code&gt;azureacs&lt;/code&gt;. You will need to create a &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh674478.aspx"&gt;Windows Azure ACS namespace&lt;/a&gt;. The only caveat when creating the namespace is setting the &amp;quot;Return URL&amp;quot;. You will probably &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/gg429779.aspx"&gt;create one Relying Party&lt;/a&gt; for each environment (dev, qa, prod) and each of them will have a different &amp;quot;Return URL&amp;quot;. For instance, dev will be &lt;code&gt;http://localhost:port/auth/azureacs/callback&lt;/code&gt; and prod could be &lt;code&gt;https://myapp.com/auth/azureacs/callback&lt;/code&gt; (notice the &lt;code&gt;/auth/azureacs/callback&lt;/code&gt;, that's where the module will listen the POST with the token from ACS)&lt;/p&gt;

      &lt;pre&gt;&lt;code&gt;var everyauth = require('everyauth');&lt;br /&gt;everyauth.debug = true;  // true= if you want to see the output of the steps&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;everyauth.azureacs&lt;br /&gt;  .identityProviderUrl('https://YOURNAMESPACE.accesscontrol.windows.net/v2/wsfederation/')&lt;br /&gt;  .entryPath('/auth/azureacs')&lt;br /&gt;  .callbackPath('/auth/azureacs/callback')&lt;br /&gt;  .signingKey('d0jul....YOUR_SIGNINGK=_KEY......OEvz24=')&lt;br /&gt;  .realm('YOUR_APPLICATION_REALM_IDENTIFIER')&lt;br /&gt;  .homeRealm('') // if you want to use a default idp (like google/liveid)&lt;br /&gt;  .tokenFormat('swt')  // only swt supported for now&lt;br /&gt;  .findOrCreateUser( function (session, acsUser) {&lt;br /&gt;     // you could enrich the &amp;quot;user&amp;quot; entity by storing/fetching the user from a db&lt;br /&gt;    return null;&lt;br /&gt;  });&lt;br /&gt;  .redirectPath('/');&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;Add the middleware to express or connect:&lt;/p&gt;

      &lt;pre&gt;&lt;code&gt;var app = express.createServer(&lt;br /&gt;    express.bodyParser()&lt;br /&gt;  , express.static(__dirname + &amp;quot;/public&amp;quot;)&lt;br /&gt;  , express.cookieParser()&lt;br /&gt;  , express.session({ secret: 'azureacssample'})&lt;br /&gt;  , express.bodyParser()&lt;br /&gt;  , express.methodOverride()&lt;br /&gt;  , everyauth.middleware()&lt;br /&gt;); &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;Add the everyauth view helpers to express:&lt;/p&gt;

      &lt;pre&gt;&lt;code&gt;  everyauth.helpExpress(app);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;p&gt;Render the login url, and user info/logout url on a view &lt;/p&gt;

      &lt;pre&gt;&lt;code&gt;- if (!everyauth.loggedIn)&lt;br /&gt;    h2 You are NOT Authenticated&lt;br /&gt;    p To see how this example works, please log in using the following link:&lt;br /&gt;    #azureacs-login&lt;br /&gt;        a(href='/auth/azureacs', style='border: 0px') Go to authentication server.&lt;br /&gt;  - else&lt;br /&gt;    h2 You are Authenticated&lt;br /&gt;    h3 Azure ACS User Data&lt;br /&gt;    p = JSON.stringify(everyauth.azureacs.user)&lt;br /&gt;h3&lt;br /&gt;    a(href='/logout') Logout&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
    &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;That's it, you can now run the app.&lt;/p&gt;

  &lt;h5&gt;Sample application&lt;/h5&gt;

  &lt;p&gt;If you want to test the experience you can try &lt;a href="http://azureacs.cloudapp.net/"&gt;http://azureacs.cloudapp.net/&lt;/a&gt; (we might take this down, so no warranties, if you want ro run it locally the code is @ &lt;a href="https://github.com/darrenzully/node-azureacs-sample"&gt;https://github.com/darrenzully/node-azureacs-sample&lt;/a&gt;).&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-qBXN4gUUwKU/TyrWHRjzHnI/AAAAAAAAanA/fPcTFMjeN1g/s1600-h/image%25255B43%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://lh5.ggpht.com/-cYLgcj013Ho/TyrWIRTRp2I/AAAAAAAAanI/ke9l-5zfApk/image_thumb%25255B17%25255D.png?imgmax=800" width="562" height="827" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: in production you should use HTTPS to avoid man in the middle and impersonation attacks&lt;/p&gt;

  &lt;p&gt;Enjoy node and federated identity!&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;&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;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;• Yvonne Muench&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/yvmuench"&gt;yvmuench&lt;/a&gt;) asked &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/02/02/need-to-change-your-go-to-market-for-saas-here-s-how-one-isv-did-it-with-windows-azure.aspx"&gt;Need to Change Your Go-To-Market for SaaS? Here’s How One ISV Did It with Windows Azure&lt;/a&gt; in a 2/2/2012 post to the Windows Azure blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-4PWiB55u5k0/TyreQ_a6AYI/AAAAAAAAarI/SSgCFiURbsM/s1600-h/image%25255B3%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/-SIPPN4ohL-k/TyreRJZNWmI/AAAAAAAAarQ/sT_syoBjyak/image_thumb%25255B1%25255D.png?imgmax=800" width="65" height="65" /&gt;&lt;/a&gt;In a &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2011/08/19/i-ve-built-a-windows-azure-application-how-should-i-market-it.aspx"&gt;previous post&lt;/a&gt;, I wrote about traditional ISVs creating spinoffs to market and sell their Software-as-A-Service (SaaS) apps. Recently I was surprised to see &lt;a href="http://glassboard.com/"&gt;Glassboard&lt;/a&gt; from &lt;a href="http://sepialabs.com/"&gt;Sepia Labs&lt;/a&gt;, a spinoff of &lt;a href="http://www.newsgator.com/?mkwid=eb4WN2EXe&amp;amp;pcrid=784501299"&gt;NewsGator&lt;/a&gt;, come across my desk. I’m familiar with NewsGator. Based in Denver, CO, they have 8 years experience in SaaS, and multiple &lt;a href="http://www.windowsazure.com/en-us/?WT.mc_id=cmp_pst001_blg_post0046"&gt;Windows Azure&lt;/a&gt; apps under their belt. Why would they go to the trouble of creating a spinoff for their latest Windows Azure app? Almost a third of their revenue is already subscription based, and they are by no means new to the rigors of SLAs, uptime and support – issues that challenge many SaaS newcomers. I called JB Holston, CEO of NewsGator and Walker Fenton, CEO of Sepia Labs to find out. Turns out, they have lot in common with many traditional ISVs using Windows Azure and SaaS for the first time – they are trying to reach a new customer segment. And which customers you’re going after can change everything. Here’s their story…&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-VTGCdSiiXlY/TyreRW8dJjI/AAAAAAAAarY/dZ95__BsLaw/s1600-h/image%25255B7%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/-5BWSxxMkJmU/TyreRz4c7AI/AAAAAAAAarg/VrvTFKQM4CE/image_thumb%25255B3%25255D.png?imgmax=800" width="160" height="39" /&gt;&lt;/a&gt;According to Holston, Facebook is defining the way people interact online. Consumers like what Facebook offers and want more of it in the corporate space. Both NewsGator and Glassboard take their cues from that reality, operating in the social computing space. NewsGator’s marquee offering, &lt;a href="http://www.newsgator.com/social-sites-2010-trial.aspx"&gt;Social Sites 2010&lt;/a&gt;, is an enterprise social computing product that’s attached to SharePoint 2010. By all accounts it’s doing pretty well… per a Jan 11, 2012 &lt;a href="http://techcrunch.com/2012/01/11/newsgator/"&gt;TechCrunch article&lt;/a&gt; NewsGator added one million new paid seats over the course of 2011, on top of its existing two million. Forrester’s &lt;a href="http://info.newsgator.com/ForresterWave2011.html?leadsource=web"&gt;Q3 2011 report&lt;/a&gt; rates them among the leaders in enterprise social platforms. Customers are &lt;b&gt;global 2000 enterprises&lt;/b&gt; worldwide, reached through a &lt;b&gt;direct sales force&lt;/b&gt; about 35 strong, augmented by 50+ &lt;b&gt;channel partners&lt;/b&gt;. It’s largely installed &lt;b&gt;on premises&lt;/b&gt;, and sold most often through a &lt;b&gt;perpetual license&lt;/b&gt; pricing strategy. Most of that should sound pretty familiar to other traditional ISVs. &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;The newer Glassboard offering, which launched in Aug 2011, still operates in the social computing arena. Glassboard is about sharing privately with groups - essentially Facebook without the ads, with better privacy, and with very cool Bing maps integration for location. &lt;/p&gt;

  &lt;p&gt;Watch this Channel 9 video for more on the technical reasons behind why they chose Windows Azure, including a demo of how different phone platforms process messages using notifications.&lt;/p&gt;

  &lt;p&gt;&lt;iframe style="width: 512px; height: 288px" src="http://channel9.msdn.com/Blogs/bruceky/Social-Media-Goes-Mobile-with-Glassboard-on-Azure/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;

  &lt;p&gt;However, beyond the common social computing focus of the two products, most aspects of the Glassboard opportunity are completely different from Social Sites 2010. Glassboard is completely cloud-based and integrates with SharePoint Online. But the differences go deeper than that:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;b&gt;WHO they target: &lt;/b&gt;Glassboard targets small businesses (SMBs) looking for private social collaboration they can easily use internally and with partners, suppliers and customers. Glassboard even extends into the consumer space, as the app is popular amongst teachers, families, and others who are uncomfortable with Facebook’s privacy policies. To encourage trial among these price sensitive customers, they use a Freemium pricing model i.e. the app is free until you pass a certain threshold of use. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;WHAT they offer:&lt;/b&gt; SMBs and consumers need turnkey, low touch, intuitive apps. That dictates a different design and engineering ethic. Fenton called it a “mobile first interface” that works on iPhones, Androids, and WP7. In fact, Fenton’s goal for his design center was “an app my Mom can download from an app store and use without asking anyone.” In other words, entirely self-provisioning. That’s a growing trend in enterprise apps, but an imperative in lower-end small business and consumer apps. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;HOW they make it happen: &lt;/b&gt;Glassboard reaches SMBs and consumers in four ways, all via marketing: 

      &lt;ul&gt;
        &lt;li&gt;&lt;i&gt;Online marketplaces –&lt;/i&gt;&lt;b&gt; &lt;/b&gt;see&lt;b&gt; &lt;/b&gt;their listings in &lt;a href="http://office365.pinpoint.microsoft.com/en-US/applications/glassboard-12884926412"&gt;Office 365 Marketplace&lt;/a&gt;, &lt;a href="http://www.windowsphone.com/en-US/apps/e3bfa5f1-9401-472a-a686-177ea66f1d41"&gt;Windows Phone Marketplace&lt;/a&gt;, the &lt;a href="http://itunes.apple.com/us/app/glassboard/id453661198?ls=1&amp;amp;mt=8"&gt;iTunes Store&lt;/a&gt;, &lt;a href="https://market.android.com/details?id=com.sepialabs.glassboard"&gt;Android Market&lt;/a&gt; and &lt;a href="http://www.amazon.com/Sepia-Labs-Glassboard/dp/B006CUYCHY/ref=sr_1_2?ie=UTF8&amp;amp;qid=1326689606&amp;amp;sr=8-2"&gt;Amazon’s Appstore for Android&lt;/a&gt;. &lt;/li&gt;

        &lt;li&gt;&lt;i&gt;Digital marketing –&lt;/i&gt; online advertising, primarily Facebook ads &lt;/li&gt;

        &lt;li&gt;&lt;i&gt;Social marketing –&lt;/i&gt; they are active on Facebook, Google+, Twitter, LinkedIn &lt;/li&gt;

        &lt;li&gt;&lt;i&gt;Viral marketing –&lt;/i&gt; users get additional free product above the Freemium threshold for referring colleagues and friends. &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Well when you put it that way, if the WHO, the WHAT and the HOW is different, a spinoff begins to make a ton of sense. Though NewsGator is successful with Social Sites 2010, they’d probably struggle with Sepia Lab’s Glassboard. Direct sales don’t work too well in reaching numerous and fragmented SMBs and consumers. Neither does a freemium pricing model get a commission-based sales force very excited. Glassboard called for a wholly new Go-To-Market strategy, namely a switch from sales-led to marketing-led demand generation. When Holston realized he had a team of folks within NewsGator that were passionate about this new category, he created a spinoff to release those passions. Walker Fenton had been responsible for the mobile group within NewsGator so Holston put him in charge of Sepia Labs. He gave him some personnel, some office space as well as HR and accounting support from the parent company. He also gave him NewsGator’s legacy online services. Fenton continues to manage those under Sepia Labs and uses the revenue streams to partially fund new product development, like Glassboard. He makes it look easy. To learn more, follow the official &lt;a href="http://glassboard.com/blog/"&gt;Glassboard blog&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;• Mick Badran&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/mickba"&gt;mickba&lt;/a&gt;) described &lt;a href="http://blogs.breeze.net/mickb/2012/02/02/AzureCurrentIPRangeOfDataCenters.aspx"&gt;Azure: Current IP Range of Data Centers&lt;/a&gt; in a 2/1/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-ZjAvealhMR4/TyrWIiZTrAI/AAAAAAAAanQ/xGsm47DN4is/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://lh3.ggpht.com/-oyQJCxkrQF4/TyrWI1JtueI/AAAAAAAAanY/7MspXrLo4YE/image_thumb%25255B14%25255D.png?imgmax=800" width="43" height="52" /&gt;&lt;/a&gt;With the ever changing Azure space, chances are you’ve had services working a treat and then one day just fail. &lt;/p&gt;

  &lt;p&gt;“Can’t connect…&amp;quot; etc. &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;This has happened to me twice this week – with over 14 IP Address ranges defined in the client’s firewall rules. &lt;/p&gt;

  &lt;p&gt;It appears that my service bus services were spun up or assigned another IP outside the ‘allowed range’. &lt;/p&gt;

  &lt;p&gt;It gets frustrating at times as generally the process goes as follows: &lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Fill out a form to request firewall changes. Include as much detail as possible. &lt;/li&gt;

    &lt;li&gt;Hand to the client and they delegate to their security/ops team to implement. &lt;/li&gt;

    &lt;li&gt;Confirmation comes back. &lt;/li&gt;

    &lt;li&gt;Start up ServiceBus service &lt;/li&gt;

    &lt;li&gt;Could work?? may fail – due to *another* IP address allocated in Windows Azure not on the ‘allowed list of ranges’. &lt;/li&gt;

    &lt;li&gt;Fill out another form asking for another IP Address… &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;
    &lt;br /&gt;By the 3rd iteration of this process it all is beginning to look very unprofessional. (in comparison, these guys are used to tasks such as ‘Access to SQL Server XXX – here’s the ports, there’s the machine and done’. Azure on the other hand – ‘What IP Addresses do you need? What ports?’… we need better information in this area) &lt;/p&gt;

  &lt;p&gt;Anyway – here’s the most update to date list 10/02/2011: &lt;a href="http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx"&gt;http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;• Marco Chiappetta&lt;/strong&gt; asserted “Startup accelerator TechStars and the Microsoft BizSpark Team have joined forces to offer startups up to $60,000 in Cloud Services on Windows Azure” in a deck for his &lt;a href="http://www.networkworld.com/community/blog/microsoft-and-techstars-team-giving-away-free-cloud-services-fledgling-startups?source=NWWNLE_nlt_cloud_security_2012-02-02"&gt;Microsoft and TechStars Team Up; Giving Away Free Cloud Services to Fledgling Startups&lt;/a&gt; article of 1/31/2012 for NetworkWorld’s Microsoft Subnet blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-lIADTn30SX0/TyrWJDTLgII/AAAAAAAAang/IA8I0F4EkMM/s1600-h/image%25255B49%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/-kfuZcQmmon0/TyrWJdsxyZI/AAAAAAAAano/k6hKcV7ABAA/image_thumb%25255B19%25255D.png?imgmax=800" width="46" height="46" /&gt;&lt;/a&gt;Microsoft and &lt;a href="http://www.techstars.com/"&gt;TechStars&lt;/a&gt;, a prominent startup accelerator which operates programs in Boulder (Colorado), Boston, New York, Seattle and Texas, just announced a new program in which high-potential startups could &lt;a href="http://www.networkworld.com/community/blog/microsoft-imagine-cup-grants-awarded-four-teams-around-globe"&gt;earn $60,000&lt;/a&gt; worth of compute and storage Cloud Services on Windows Azure over a two-year period. The goal of the alliance is to not only help fledgling startups fast-track their businesses, but to get them using Microsoft’s cloud services.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-N-3J3VixEEg/TyrWJgf4HfI/AAAAAAAAanw/cm6Rgh9cBBw/s1600-h/image%25255B57%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/-paLmt_oG16g/TyrWJ6h465I/AAAAAAAAan4/eQWkbdmpEUw/image_thumb%25255B23%25255D.png?imgmax=800" width="133" height="98" /&gt;&lt;/a&gt;&lt;em&gt;“Our passion is helping startups succeed around the world by providing funding and mentorship from the best and brightest Internet entrepreneurs and investors on the planet. The enhanced relationship with Microsoft will allow us to provide our founders with even more valuable support and services,”&lt;/em&gt; said David Cohen, founder and CEO of TechStars. &lt;em&gt;“Access to technologies such as Windows Azure and other software and services from Microsoft through the BizSpark Plus program gives our companies a leg up in the all-encompassing race to scale and succeed.”&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;img alt="" src="http://www.networkworld.com/community/files/user25941/techstar.jpg" width="550" height="308" /&gt; 

    &lt;br /&gt;&lt;em&gt;Image Source: TechStars Website&lt;/em&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;Many of the hottest startups today are building cloud applications or smart devices that heavily leverage the cloud. In doing so, some of the startups are able to more quickly and affordably drive user adoption and generate revenue than ever before, which in turn help scale the businesses. &lt;a href="http://www.networkworld.com/community/blog/microsoft-reports-record-quarterly-revenue"&gt;Microsoft&lt;/a&gt; postulates that Windows Azure offers an ideal platform for the creation of the Web applications and services that many of these startups are building and are attempting to get them to use Azure early and often.&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;a href="http://lh4.ggpht.com/-gKVi0y40W18/TyrWKIFBXbI/AAAAAAAAaoA/iwy0vZLGqbA/s1600-h/image%25255B53%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/-wZK-Wh9FwTk/TyrWKSpHmbI/AAAAAAAAaoI/AQT775Ofigk/image_thumb%25255B21%25255D.png?imgmax=800" width="160" height="27" /&gt;&lt;/a&gt;“TechStars is a great partner with a proven track record of attracting world-class startups. We are excited at the opportunity to work together to help startups when they need it most, with the products, resources and connections they need the most,&lt;/em&gt;” said Dan’l Lewin, corporate vice president, Strategic and Emerging Business Development, &lt;a href="http://www.networkworld.com/community/blog/25941"&gt;Microsoft&lt;/a&gt;.&lt;em&gt; “Working with entrepreneurs on the forefront of the cloud revolution is especially rewarding. Windows Azure is a powerful, integrated platform, making it easy for startups to get their services up and running quickly with minimal overhead. This is the first offer from our new BizSpark Plus program, and we look forward to supporting TechStars members across a number of markets and technology offerings.”&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;Graduates and current enrollees in the TechStars program are eligible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;BusinessWire&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/BusinessWire"&gt;BusinessWire&lt;/a&gt;) reported &lt;a href="http://azure.ulitzer.com/node/2149892"&gt;CopperEgg™ Expands Server Monitoring into Windows Azure Environments&lt;/a&gt; in a 2/1/2012 press release via the Azure Cloud on Ulitzer:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-qwoNN-g01iw/TynWe1Ls-XI/AAAAAAAAagY/-jx0_PfSmds/s1600-h/image44.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/-cikyGhjN0nw/TynWfMJrX8I/AAAAAAAAagg/d2K1Nszvnaw/image_thumb17.png?imgmax=800" width="160" height="79" /&gt;&lt;/a&gt;CopperEgg, Corp., a real-time monitoring company, today announced the support of Windows Azure™ server monitoring with RevealCloud Pro™. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;amp;url=https%3A%2F%2Fapp.copperegg.com%2Fsignup%2F%3Futm_source%3Drelease%26utm_medium%3Dwire%26utm_campaign%3DAzure_launch&amp;amp;esheet=50153261&amp;amp;lan=en-US&amp;amp;anchor=RevealCloud+Pro&amp;amp;index=1&amp;amp;md5=c7c34331b1e0933302a4135827be5123"&gt;RevealCloud Pro&lt;/a&gt; is a SaaS-based server monitoring service that provides a detailed, common view of all of your servers, running any OS, across public and private clouds, and virtual and physical environments. It provides real-time, in-depth insight into all the components participating in application and service delivery, which is critical for monitoring changing loads as well as identifying, isolating and addressing performance issues before service quality is impacted. RevealCloud Pro now supports server monitoring for Windows, Windows Azure, Hyper-V, Linux, Mac OSX and FreeBSD operating systems. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-En2a9iZ-9PM/TynWfT8Bm1I/AAAAAAAAago/qLTOwVIhFkg/s1600-h/image48.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/-pOhZNCuc13Q/TynWfs8K-ZI/AAAAAAAAagw/yH02bFi0K9I/image_thumb19.png?imgmax=800" width="160" height="71" /&gt;&lt;/a&gt;Today users expect applications and services to perform seamlessly. If an application stops responding – even for a few seconds – customers get easily frustrated and often abandon their efforts, resulting in lost revenue and/or productivity. Server monitoring using RevealCloud Pro provides split-second monitoring of the operating and performance metrics for servers that support critical application services, no matter where they are located. This enables IT and development teams to accelerate time-to-market during the development phase, optimize deployments as they learn customer usage patterns, and identify early warning signs of service degradation. &lt;/p&gt;

  &lt;p&gt;“Our customers upload large volumes of data in batches regularly and when that occurs, we need to scale up quickly so we can process the data efficiently. Using RevealCloud Pro we now have instant insight as to when our servers are reaching capacity,” said Carl Ryden, chief technology officer of &lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;amp;url=http%3A%2F%2Fwww.precisionlender.com&amp;amp;esheet=50153261&amp;amp;lan=en-US&amp;amp;anchor=PrecisionLender&amp;amp;index=2&amp;amp;md5=ccfc4b6288b9c7fade762099cfc2c820"&gt;PrecisionLender&lt;/a&gt;. “Then using their WebHooks combined with the Azure Management API, we’ve implemented automatic scaling of our servers so we can address load spikes without any intervention on our part. For 15 minutes worth of work and a couple dollars a month, we couldn’t have asked for a better server monitoring solution.” &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;“RevealCloud Pro is quickly gaining traction with our customers deploying and managing services in the cloud, virtual environments and data centers,” said Scott Johnson, CEO of CopperEgg. “The addition of &lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;amp;url=http%3A%2F%2Fwww.copperegg.com%2F%3Futm_source%3Drelease%26utm_medium%3Dwire%26utm_campaign%3DAzure_launch&amp;amp;esheet=50153261&amp;amp;lan=en-US&amp;amp;anchor=server+monitoring&amp;amp;index=3&amp;amp;md5=225f65b59bd2299cd8f894ee847d9475"&gt;server monitoring&lt;/a&gt; for Windows Azure addresses the needs of developers building services on the Azure platform as well as hybrid environments, who are looking for a robust server monitoring solution that is quickly deployed, easy to use and provides instant insight into server health.” &lt;/p&gt;

  &lt;p&gt;&lt;b&gt;CopperEgg’s Server Monitoring – Key Benefits&lt;/b&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;b&gt;Monitor servers across environments&lt;/b&gt;: including clouds, virtual and physical servers. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;Install in 10 seconds:&lt;/b&gt; package for automatic deployment on new instances, so you never lose an instance. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;Get real-time updates:&lt;/b&gt; get instant visibility into the performance and health of your systems and detect trends as they develop. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;Customize alerts&lt;/b&gt;: set thresholds for alerts and direct them to individuals or groups as applicable for instant insight into the health of a system. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;Tailor views: &lt;/b&gt;see your whole infrastructure from a sortable top-level systems view; or tag and group systems as needed for optimal server monitoring. &lt;/li&gt;

    &lt;li&gt;&lt;b&gt;Enable server monitoring from any browser:&lt;/b&gt; PC, Mac, iPad, iPhone, Android or other mobile device. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Server monitoring with CopperEgg’s RevealCloud Pro is available &lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;amp;url=https%3A%2F%2Fapp.copperegg.com%2Fsignup%2F%3Futm_source%3Drelease%26utm_medium%3Dwire%26utm_campaign%3DAzure_launch&amp;amp;esheet=50153261&amp;amp;lan=en-US&amp;amp;anchor=here&amp;amp;index=4&amp;amp;md5=f221fad8f6e2a8aa63cd6e23bf1d4609"&gt;here&lt;/a&gt; with a $15 instant credit on a ‘pay for consumption’ basis. &lt;/p&gt;

  &lt;p&gt;&lt;b&gt;About CopperEgg&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;CopperEgg provides real-time insight into the speed and availability of applications and services deployed on cloud, virtual and physical servers. Our SaaS-based &lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;amp;url=http%3A%2F%2Fwww.copperegg.com%2Fproduct%2Frevealcloud%2F%3Futm_source%3Drelease%26utm_medium%3Dwire%26utm_campaign%3DAzure_launch&amp;amp;esheet=50153261&amp;amp;lan=en-US&amp;amp;anchor=server+monitoring+tools&amp;amp;index=5&amp;amp;md5=a10ed5c1f544ad7e96e2127bd17e1c20"&gt;server monitoring tools&lt;/a&gt; are designed to install in seconds with no configuration and immediately deliver fine-grained visibility into critical performance metrics, insight into developing trends, and split-second decision support for organizations of all sizes. CopperEgg is backed by Silverton Partners and based in Austin, Texas. For more information, visit: &lt;a href="http://cts.businesswire.com/ct/CT?id=smartlink&amp;amp;url=http%3A%2F%2Fwww.copperegg.com%2F%3Futm_source%3Drelease%26utm_medium%3Dwire%26utm_campaign%3DAzure_launch&amp;amp;esheet=50153261&amp;amp;lan=en-US&amp;amp;anchor=www.copperegg.com&amp;amp;index=6&amp;amp;md5=d6275f40b4ccca6a930d44eb91138e0b"&gt;www.copperegg.com&lt;/a&gt;. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Himanshu Singh&lt;/strong&gt; posted &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/02/01/ifs-360-scheduling-always-optimal-on-windows-azure.aspx"&gt;IFS 360 Scheduling – Always Optimal on Windows Azure&lt;/a&gt; on 2/1/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-rVTSW66rHqo/TynWgCbte8I/AAAAAAAAag4/_DUl9yNDBGA/s1600-h/image31.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/-rJxVl1BDYF0/TynWgbj1-sI/AAAAAAAAahA/r37rWaUqdFk/image_thumb12.png?imgmax=800" width="52" height="66" /&gt;&lt;/a&gt;IFS has announced the immediate availability of IFS 360 Scheduling on &lt;a href="http://www.windowsazure.com/en-us/?WT.mc_id=cmp_pst001_blg_post0045"&gt;Windows Azure&lt;/a&gt; as part of its strategy to leverage cloud computing, citing Windows Azure as a cost-efficient platform for innovative business solutions.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-0GmcmZeGOmg/TynWg2qUpqI/AAAAAAAAahI/tYHPGFvljXc/s1600-h/image27.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/-l4bNHgCOu0U/TynWhLXaL7I/AAAAAAAAahQ/1we3PLtnj5g/image_thumb11.png?imgmax=800" width="55" height="66" /&gt;&lt;/a&gt;IFS 360 Scheduling empowers organizations to deliver on-site customer service excellence. Optimizing resource plans to minimize travel and maximize productive work time for hundreds, or even thousands, of technicians is a complex and compute-intensive task, and IFS 360 Scheduling’s ‘always optimizing’ approach means the schedule is constantly up-to-date no matter what is happening out in the field – for organizations with tight deadlines to meet, minutes matter.&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;Meeting tough customer expectations and providing consistent service demands a reliable and robust computing infrastructure. The speed of deployment on Windows Azure and on-demand scaling of resources echo the needs of these dynamic environments, for which resource scheduling is mission critical.&lt;/p&gt;

  &lt;p&gt;You can read more on the IFS announcement on their &lt;a href="http://www.ifsworld.com/en/news/2012/2012-02-01-IFS-brings-mobile-workforce-scheduling-to-the-cloud"&gt;website&lt;/a&gt;, more about the work of IFS 360 Scheduling &lt;a href="http://www.360scheduling.com/"&gt;here&lt;/a&gt;, and a recent blog posting by IFS’ CTO Dan Matthews on &lt;a href="http://blogs.ifsworld.com/2011/09/the-cloud-all-swings-and-roundabouts/"&gt;cloud computing&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Himanshu Singh&lt;/strong&gt; (pictured below) posted &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/01/31/aidmatrix-delivers-global-humanitarian-relief-faster-with-windows-azure.aspx"&gt;Real-World Windows Azure: Interview with Michael Ross, VP of Delivery at Aidmatrix&lt;/a&gt; on 2/1/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-FpQWBYgrhVQ/TynWhRg-QXI/AAAAAAAAahY/dSEs7kOkET4/s1600-h/image24.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/-P4qSW1XK6ms/TynWh03DaCI/AAAAAAAAahg/26ZNImXBL2c/image_thumb10.png?imgmax=800" width="52" height="66" /&gt;&lt;/a&gt;As part of the Real World Windows Azure interview series, I talked to Michael Ross, vice president for Delivery at &lt;a href="http://www.aidmatrix.org/"&gt;Aidmatrix&lt;/a&gt;, about using &lt;a href="http://www.windowsazure.com/en-us/?WT.mc_id=cmp_pst001_blg_post0044"&gt;Windows Azure&lt;/a&gt; to help power its humanitarian aid delivery solutions. Here’s what he had to say.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Himanshu Kumar Singh:&lt;/b&gt; Tell me about the Aidmatrix Foundation.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-kHqCnbrQ4Pg/TynWiKzaRnI/AAAAAAAAaho/SiHUC99voYk/s1600-h/image21.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/-XJWFfacaopA/TynWiRyF02I/AAAAAAAAahw/HvYRUdR-YlE/image_thumb9.png?imgmax=800" width="160" height="34" /&gt;&lt;/a&gt;&lt;b&gt;Michael Ross:&lt;/b&gt; Well, we create web-based supply-chain management (SCM) solutions that help our partners optimize distributing humanitarian relief. We started in 2001 and are headquartered in Dallas, with offices in Wisconsin, Washington D.C., Germany and India. More than 40,000 leading nonprofit, business, and government partners leverage our solutions to mobilize more than $1.5 billion in aid annually, worldwide. The donated goods, money and services impact the lives of more than 65 million people.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; How does Aidmatrix leverage technology to deliver humanitarian aid?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; Increasingly, technology plays a vital role in enabling the rapid, targeted distribution of relief supplies to those in need. Our solutions help NGOs procure, manage and deliver humanitarian relief more efficiently by having real-time access to know what inventory is on hand and what unmet needs still exist. In this way, NGOs can save money in their purchasing, be more efficient in their distribution, and more responsive and transparent with their donors. .&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; Are there also technology challenges you face?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; To perform optimally both in daily humanitarian relief and unplanned disasters, we need to ensure that our applications can consistently deliver the highest levels of stability and throughput performance. And because we work with so many different kinds of partner organizations, our solutions need to synchronize with business systems that run on diverse operating system platforms. They also need to flexibly scale to handle massive bursts in demand. Following several recent natural disasters, our applications have experienced usage spikes on the order of 1,000 times the standard rate.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; How much demand is there for technology for humanitarian aid from Aidmatrix?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; In 2010, we noted a 20 percent year-over-year increase in the number of people who used our applications. And as more NGOs adopt technology as a strategic part of their global operational success, the demand will continue to grow.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; How has this increase in demand impacted your ability to meet global needs?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; This rapid growth has only compounded the challenges that we face in deploying, configuring, and scaling online relief management solutions. For example, for several years, we hosted our applications in data centers in the United States but in response to recent requests for services from humanitarian organizations in Europe, we’ve needed to locate additional server resources overseas. Setting up and maintaining data centers around the globe can be expensive and time-consuming. In a few cases, we’ve needed to pre-position assets and leave them turned off. Instead of paying for what we use, we’ve ended up investing up front for resources that we may or may not eventually need. But that’s all part of being ready for unplanned disasters.&lt;/p&gt;

  &lt;p&gt;We also found that the time required to source and deploy new hardware impacted our agility. In mid-2010, we began a partnership with a large food bank network that has locations spread across the United Kingdom. After a few weeks, we noticed that the distance between our servers and end users caused the application to run slowly and even time out before people could complete their donations.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; What was the solution?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; To empower more partners to help more people around the world, we needed the ability to scale applications at a moment’s notice while maintaining reliable performance. With an eye on keeping operating costs as low as possible, we began to investigate the advantages of moving to the cloud. In considering this change, we wanted to minimize the time needed to migrate existing applications and placed a priority on a cloud technology platform that would support the agile development of new functionality, along with the creation of new solutions to meet the unforeseen demands of future humanitarian crises.&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;b&gt;HKS:&lt;/b&gt; What led you to choose Windows Azure?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; After evaluating several cloud services technologies, including Amazon Elastic Compute Cloud (EC2), we decided to adopt Windows Azure because, simply put, Windows Azure gives us all the tools we need to be more agile. It offers platform-as-a-service capabilities, so we don’t have to push out updates or worry about building out our own redundancy system. Plus, it incorporates a familiar development environment, so we can maximize productivity.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; Which of your solutions did you move to Windows Azure first?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; The first solution we moved to Windows Azure was the Aidmatrix Program Metrics and Evaluation, which one of our U.S. partners uses to track the services delivered to clients at more than 1,000 locations. Moving the database component to Microsoft SQL Azure took five minutes, and we instantly gained high availability, along with reliable fault tolerance and security, at a fraction of what it would cost to build out those capabilities ourselves.&lt;/p&gt;

  &lt;p&gt;In early 2011, working with Accenture and Avanade, we also moved our Online Warehouse solution, which provides end-to-end inventory management tools for tracking relief supplies, to Windows Azure. The conversion process for each of these applications took approximately six weeks to complete.&lt;/p&gt;

  &lt;p&gt;We also recently used Windows Azure to configure and deploy a web portal application built by Microsoft to assist Second Harvest Japan, the Japanese food banking network. I deployed the application to the Microsoft data center in Hong Kong from home following the tsunami and I didn’t need to worry about how many instances to deploy because I could quickly scale out server resources if needed.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; Are you using any other Windows Azure technologies?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; We take advantage of several Windows Azure technologies to ensure reliable, scalable performance. For example, we will use Windows Azure Connect to enable data sharing between our Online Warehouse solution and the on-premises operational systems used by our partners, including Oracle and SAP enterprise resource planning systems. And we rely on Windows Azure storage services to collect data on session state management so our staff can monitor application performance and troubleshoot issues in near real time.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;HKS:&lt;/b&gt; What are some of the benefits you’ve seen from your move to Windows Azure?&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;MR:&lt;/b&gt; One of the key benefits has been noticeable cost savings. Because we no longer need to purchase, set up, and maintain database management and web servers, we expect to save 20 percent on data center costs, which could mean up to $100,000 in savings. We will be able to redirect the time and money we save toward creating and enhancing applications that help save lives. And instead of spending valuable resources on server upkeep, we can redirect time and cost savings to higher-value tasks, like developing a new module for one of our applications.&lt;/p&gt;

  &lt;p&gt;Another benefit is the global availability of Microsoft data centers and the pay-as-you-go model, which enables us to ensure cost-efficient dynamic scalability for our solutions. Our applications need to handle usages spikes of 1,000 times the normal load. With Windows Azure, we can scale up or down in a very agile and efficient way, which is essential for the kind of work we do.&lt;/p&gt;

  &lt;p&gt;Finally, the growing ecosystem of ISVs that have adopted Windows Azure allows us to accelerate our own development lifecycle. Taking advantage of functionality from other ISVs speeds our development and ultimately increases the value of our solutions. This is a major benefit of working with a cloud provider like Microsoft that has a large and growing network of partners.&lt;/p&gt;

  &lt;p&gt;Read the full &lt;a href="http://www.microsoft.com/casestudies/Windows-Azure/The-Aidmatrix-Foundation/Humanitarian-Aid-Provider-Uses-Cloud-Solution-to-Respond-Faster-to-Global-Needs/4000011611"&gt;case study&lt;/a&gt;. Learn how &lt;a href="https://www.windowsazure.com/en-us/home/case-studies/"&gt;others&lt;/a&gt; are using Windows Azure.&lt;/p&gt;
&lt;/blockquote&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/31/handling-two-known-issues-with-windows-azure-node-js-sdk-0-5-2.aspx"&gt;Handling two known issues with Windows Azure node.js SDK 0.5.2&lt;/a&gt; in a 1/31/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-rd0YDSnTIv0/TynWil7WvoI/AAAAAAAAah4/LOpV82aJNhE/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/-KPAB8RtJEZs/TynWi9YyJiI/AAAAAAAAaiA/auC-3zg0LR0/image_thumb.png?imgmax=800" width="65" height="60" /&gt;&lt;/a&gt;My recent development work with Windows Azure Node.js SDK 0.5.2 helped me to found two issues. Until next SDK update is available please use the given workaround to solve your problem.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Issues 1: &lt;/b&gt;Exception while testing your node.js application in Compute Emulator&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-4O8Jy81IPXc/TyrWKgBobKI/AAAAAAAAaoQ/VkW95DTBXUI/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://lh3.ggpht.com/-NXHI0HX9rsU/TyrWLKBoPeI/AAAAAAAAaoY/gItbwzcUIiI/image_thumb%25255B13%25255D.png?imgmax=800" width="160" height="47" /&gt;&lt;/a&gt;After you installed the latest available Node.js SDK 0.5.2 and launch your node application in Azure Emulator as below:&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;gt;&amp;gt; Start-AzureEmulator -Launch&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/4628.node502_5F00_11.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/4628.node502_5F00_11.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;You might see an exception as below:&lt;/p&gt;

  &lt;p&gt;&amp;gt;&amp;gt; Windows Azure Web Role Entry Point host has stopped working…&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/1586.node502_5F00_12.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/1586.node502_5F00_12.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Root Cause:&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;The issue appears to be with server.js.logs, when the web role is started, IISConfigurator changes the ACL for the web role directory (and all contained directories). This process if server.js.logs is present and cause IISConfigurator process to crash which ultimately cause your role to show above error.&lt;/p&gt;

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

  &lt;p&gt;Please delete the server.js.logs folder before launching the emulator and you will not see the problem. I have tested this workaround and it does work fine with SDK 0.5.2.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Issues 2: &lt;/b&gt;Unable to publish MongoDB enabled Node.js app to Azure&lt;/p&gt;

  &lt;p&gt;When you try to publish a MongoDB enabled node.js app using “Publish-AzureService” powershell command, you might get an error and publish process interrupted.&lt;/p&gt;

  &lt;p&gt;PS&amp;gt;&amp;gt; Publish-AzureService&lt;/p&gt;

  &lt;p&gt;Publish-AzureService : Object reference not set to an instance of an object.&lt;/p&gt;

  &lt;p&gt;NullReferenceException&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/3681.node502_5F00_13.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/3681.node502_5F00_13.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Root Cause:&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;When you try to publish the application, the code look for certificate node in the CSCFG file and it this node is not present it generate an exception as seen by you. As certificate node ins CSCFG file is optional so the code must not dependent on it. PG could not repro this issue because they had Certificate node I their CSCFG and did not look for dependencies. We sure can overcome this problem by defining empty Certificates nodes in Role sections of cscfg.&lt;/p&gt;

  &lt;p&gt;&lt;b&gt;Solution:&lt;/b&gt;&lt;/p&gt;

  &lt;p&gt;So to work around this issue please add the empty Certificate node in your CSCFG file in the appropriate section.&lt;/p&gt;

  &lt;p&gt;&amp;lt;Certificates/&amp;gt;&lt;/p&gt;
&lt;/blockquote&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/31/nougakudocompanion-a-ruby-on-rails-companion-for-windows-azure.aspx"&gt;NougakuDoCompanion: A “Ruby on Rails” companion for Windows Azure&lt;/a&gt; in a 1/31/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-MjWTzKBiWNk/TynWjsH4_WI/AAAAAAAAaiI/PzGg2rHRhto/s1600-h/image%25255B5%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/-m7H3SiXHAvM/TynWj3DZkEI/AAAAAAAAaiQ/F-1r_DHTXCU/image_thumb%25255B1%25255D.png?imgmax=800" width="65" height="60" /&gt;&lt;/a&gt;I was recently informed about a great “Ruby on Rails” companion package to run your Ruby on Rails application on Windows Azure.&lt;/p&gt;

  &lt;p&gt;With this package you can:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Run multiple instance of Ruby Application on Windows Azure &lt;/li&gt;

    &lt;li&gt;Deploy your application virtually from any machine &lt;/li&gt;

    &lt;li&gt;Connect to SQL Azure &lt;/li&gt;
  &lt;/ol&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;The application architectures is 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.ruby101.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.ruby101.png" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Companion Package information:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://nougakudo.codeplex.com/"&gt;http://nougakudo.codeplex.com/&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Documentation:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://nougakudo.codeplex.com/documentation"&gt;http://nougakudo.codeplex.com/documentation&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Test results:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;NougakuDo 1.0.5 tested with Rails 3.0.9 &lt;/li&gt;

    &lt;li&gt;NougakuDo 1.1.7 tested with Rails 3.1.0 &lt;/li&gt;

    &lt;li&gt;NougakuDo 1.1.9 tested with Rails 3.1.1 &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="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;) posted &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/02/02/lightswitch-community-amp-content-rollup-january-2012.aspx"&gt;LightSwitch Community &amp;amp; Content Rollup–January 2012&lt;/a&gt; on 2/2/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-QHVjpaSbbc8/TyrWLQBJ8QI/AAAAAAAAaog/cSLE1UTNZ_8/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/-gZ7vEl2WKxA/TyrWLuUZ_FI/AAAAAAAAaoo/3ucBcbDzHI8/image_thumb%25255B31%25255D.png?imgmax=800" width="54" height="66" /&gt;&lt;/a&gt;Last Fall I started posting a rollup of interesting community happenings, content, samples and extensions popping up around &lt;a href="http://msdn.com/lightswitch"&gt;Visual Studio LightSwitch&lt;/a&gt;. If you missed those rollups you can check them out here: &lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/09/29/lightswitch-community-amp-content-rollup-september.aspx"&gt;LightSwitch Community &amp;amp; Content Rollup–September 2011&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/10/31/lightswitch-community-amp-content-rollup-october-2011.aspx"&gt;LightSwitch Community &amp;amp; Content Rollup–October 2011&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/11/30/lightswitch-community-amp-content-rollup-november-2011.aspx"&gt;LightSwitch Community &amp;amp; Content Rollup–November 2011&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/05/lightswitch-community-amp-content-rollup-december-2011.aspx"&gt;LightSwitch Community &amp;amp; Content Rollup–December 2011&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-JfqTJhHw9M0/TyrWL41v0QI/AAAAAAAAaow/w7k0S216hwU/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/-oktBgWKT6dY/TyrWMJxzGPI/AAAAAAAAao4/mr2oBODSYfY/image_thumb%25255B33%25255D.png?imgmax=800" width="160" height="49" /&gt;&lt;/a&gt;Looks like folks took a few well-deserved days to ramp back into the groove after the holidays (including myself). But there were still a lot of awesome things around LightSwitch this month, especially the number of submissions &lt;a href="http://www.codeproject.com/Competitions/524/LightSwitch-Star-Contest.aspx"&gt;The Code Project&lt;/a&gt; had in the LightSwitch Star Contest. A lot of really interesting applications and some great case studies for LightSwitch as well as some for Azure. Check them out…&lt;/p&gt;

  &lt;h5&gt;&lt;a href="http://www.codeproject.com/Competitions/524/LightSwitch-Star-Contest.aspx"&gt;“LightSwitch Star” Contest&lt;/a&gt;&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=232292"&gt;&lt;img style="display: inline; float: right" border="0" alt="“LightSwitch Star” Contest on CodeProject" align="right" src="http://i.msdn.microsoft.com/ff796201.LightSwitchStarContest(en-us,MSDN.10).jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;In November The Code Project launched the &lt;a href="http://www.codeproject.com/Competitions/524/LightSwitch-Star-Contest.aspx"&gt;“LightSwitch Star” contest&lt;/a&gt;. They’re looking for apps that show off the most productivity in a business as well as apps that use extensions in a unique, innovative way. Prizes are given away each month. Soon they will announce the January winners as well as the two grand prize winners of an &lt;b&gt;&lt;a href="http://www.amazon.com/U31SD-DH31-13-3-Inch-Light-Laptop-Black/dp/B005PAIQG0/ref=dp_ob_title_ce"&gt;ASUS U31SD-DH31 Laptop&lt;/a&gt;&lt;/b&gt;! &lt;/p&gt;

  &lt;p&gt;Check out all the submission we had in January and make sure to log onto Code Project and vote &lt;a href="http://www.codeproject.com/KB/LightSwitch/#LightSwitch+Star+Contest"&gt;for your favorites&lt;/a&gt;. Here’s a breakdown of the 13 apps that were submitted in January (see all &lt;a href="http://www.codeproject.com/KB/LightSwitch/#LightSwitch+Star+Contest"&gt;34 apps that have been submitted here&lt;/a&gt;). There are some very creative “business apps” here – like a campaign manager for Dungeons &amp;amp; Dragons! &lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=G3xQ4bdL6GE&amp;amp;list=FLgFBc_I8vOTYjXOj0uyQTJA&amp;amp;index=5&amp;amp;feature=plpp_video"&gt;Profiling-Pro (video)&lt;/a&gt; – Project profiler that helps make sure your software projects are done on time &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/314201/Luminous-Commands"&gt;Luminous Commands For LightSwitch&lt;/a&gt; - Luminous Commands provides two pieces of functionality that was missing from LS RTM but wanted by many users &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/314208/Access-Control-Manager"&gt;Access Control Manager&lt;/a&gt; - The Access Control Manager tracks user access to applications and other products (such as hardware, cellphones, etc.) by creating requests for access by the supervisor of the user &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/316162/Light-Enterprise-Solution"&gt;Light Enterprise Solution&lt;/a&gt; - An article about applications that is an enterprise system targeted for Small &amp;amp; Medium Enterprises in Malaysia and Singapore &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/316676/Lightswitch-Job-Hunter-Application"&gt;LightSwitch Job Hunter Application&lt;/a&gt; - Job application tracker for those out of work built using Visual Studio LightSwitch 2011. &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=ppOb5DHBR-4&amp;amp;list=FLgFBc_I8vOTYjXOj0uyQTJA&amp;amp;index=1&amp;amp;feature=plpp_video"&gt;Job Hunter LightSwitch Application (video)&lt;/a&gt; - This is a demo video of a free application that is intended to help job applicants. The application and source code are free to download &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=fifFyOQuADU&amp;amp;list=FLgFBc_I8vOTYjXOj0uyQTJA&amp;amp;index=2&amp;amp;feature=plpp_video"&gt;Illuminous overview (video)&lt;/a&gt; - Illuminous is a comprehensive college management tool developed using Visual Studio LightSwitch. &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/318840/Data-Centre-A-Product-Information-and-Promotion-Ma"&gt;Data Centre: A Product Information and Promotion Management System&lt;/a&gt; - A system for easily and effectively storing product information and managing promotions. &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/317928/Visual-Studio-LightSwitch-Application-Database-Scr"&gt;Visual Studio LightSwitch Application Database Script Generator&lt;/a&gt; - A tool to generate Sql server DB script from the LightSwitch internal database &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/319456/MyBizz-Portal-The-smallest-LightSwitch-application"&gt;MyBizz Portal&lt;/a&gt; - The &amp;quot;smallest&amp;quot; LightSwitch application you have ever seen. A portal to other LightSwitch applications. &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/321845/Client-Management-System"&gt;Client Management System&lt;/a&gt; - A complete CRM solution that manages the entire customer lifecycle. &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://staging.codeproject.com/Articles/322680/BPO-Productivity-Tool"&gt;BPO Productivity Tool&lt;/a&gt; - This is is primarily built as a custom LightSwitch Shell Extension in which I embed PRISM to manage all LightSwitch and non-LightSwitch views. &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/322658/Birthright-Campaign-Manager"&gt;Birthright Campaign Manager&lt;/a&gt; - Birthright Campaign Manager is an open source role playing computer aid for Birthright, a campaign setting for Dungeons &amp;amp; Dragons. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;There are a lot of really interesting real-world LightSwitch production applications that were submitted. Some departmental apps, a few personal apps, some enterprise apps as well as a couple start-up companies. There are also some great case studies here for Azure, in particular:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/318840/Data-Centre-A-Product-Information-and-Promotion-Ma"&gt;Data Centre: A Product Information and Promotion Management System&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/316162/Light-Enterprise-Solution"&gt;Light Enterprise Solution&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/302593/Orion"&gt;Orion - MiniCRM LightSwitch and Azure&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Developer Center Updates&lt;/h5&gt;

  &lt;h5&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff938857"&gt;Learn Page Updates&lt;/a&gt;&lt;/h5&gt;

  &lt;p&gt;In December I kicked off a &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/tags/beginning+lightswitch+series/"&gt;series aimed at beginner developers&lt;/a&gt; just getting started with LightSwitch and was featured in the &lt;a href="http://msdn.microsoft.com/en-us/hh708735"&gt;MSDN Flash Newsletter&lt;/a&gt;. In January we updated the &lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff938857"&gt;Learn page of the Developer Center&lt;/a&gt; to feature this series and it’s been getting some great traffic!&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff938857"&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/1777.image_5F00_3.png" width="477" height="418" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;I also released the completed source code for the sample we build in the series: &lt;a href="http://code.msdn.microsoft.com/Begining-LightSwitch-508763ea"&gt;Beginning LightSwitch - Address Book Sample&lt;/a&gt;&lt;/p&gt;

  &lt;h5&gt;How Do I Videos – Learning Made Easier&lt;/h5&gt;

  &lt;p&gt;We also updated all the How Do I video pages to show the sequential list of videos so that you can easily get to the previous and next videos in the series. This makes it a lot easier to navigate through the over 20 videos in the correct order. Just click into &lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff949856"&gt;any video page like this one&lt;/a&gt; and you will see the video navigator at the bottom of the page.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff949856"&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/4807.image_5F00_6.png" width="468" height="414" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;h5&gt;Notable Content this Month&lt;/h5&gt;

  &lt;p&gt;Here’s some more of the fun things the team and community released in January. &lt;/p&gt;

  &lt;h5&gt;Extensions released in January (&lt;a href="http://visualstudiogallery.msdn.microsoft.com/site/search?f[0].Type=SearchText&amp;amp;f[0].Value=LightSwitch&amp;amp;sortBy=Date"&gt;see all 73 of them here!&lt;/a&gt;):&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/df61b7a8-f3dc-4e91-a544-76acbcc465e9"&gt;Extended Text Box Extension &lt;/a&gt;&lt;/li&gt;

    &lt;li&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/6cb027ee-cd5f-47a6-ad63-c40a925891e3"&gt;Visual Studio LightSwitch application DB script generator &lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;The team also released a control extension sample that you can learn from. Check out the announcement on the team blog: &lt;a href="http://blogs.msdn.com/b/lightswitch/archive/2012/01/17/many-to-many-control-released.aspx"&gt;Many-to-Many Control Released!&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Build your own extensions by visiting the &lt;a href="http://msdn.microsoft.com/en-us/lightswitch/hh304488"&gt;LightSwitch Extensibility page&lt;/a&gt; on the &lt;a href="http://msdn.com/lightswitch"&gt;LightSwitch Developer Center&lt;/a&gt;. &lt;/p&gt;

  &lt;h5&gt;Team Articles:&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&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; &lt;/li&gt;

    &lt;li&gt;&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; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/20/using-different-edit-screens-based-on-record-types-table-inheritance.aspx"&gt;Using Different Edit Screens Based on Record Types (Table Inheritance)&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2012/01/12/creating-cascading-drop-down-lists-in-visual-studio-lightswitch.aspx"&gt;Creating Cascading Drop Down Lists in Visual Studio LightSwitch&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/lightswitch/archive/2012/01/12/drop-down-lists-tips-amp-tricks-beth-massi.aspx"&gt;Drop-down Lists Tips &amp;amp; Tricks &lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Community Articles:&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/90/List-Box-That-Can-Be-Ordered-By-The-End-User.aspx"&gt;List Box That Can Be Ordered By The End-User&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/92/Save-is-a-pain-in-the-As.aspx"&gt;Save (is a pain in the) As&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/93/Using-The-Sheel-Shah-Many-To-Many-Control.aspx"&gt;Using The Many-To-Many Control&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/94/Using-the-ComponentOne-Excel-for-Silverlight-Control-with-LightSwitch.aspx"&gt;Using the ComponentOne Excel for Silverlight Control with LightSwitch&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/95/Application-Logo.aspx"&gt;Application Logo&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/96/A-LightSwitch-Web-Installer-Wizard.aspx"&gt;A LightSwitch Web Installer Wizard&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/97/Creating-a-Visual-Studio-LightSwitch-Screen-Template.aspx"&gt;Creating a Visual Studio LightSwitch Screen Template&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/98/Creating-A-LightSwitch-Theme-Extension-using-Expression-Blend.aspx"&gt;Creating A LightSwitch Theme Extension using Expression Blend&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://janvanderhaegen.wordpress.com/2012/01/18/extensions-made-easy-usesmallimage-and-custom-ordering/"&gt;Extensions Made Easy: UseSmallImage and custom ordering.&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://janvanderhaegen.wordpress.com/2012/01/17/centric-rad-race-may-the-better-technology-win/"&gt;Centric RAD race: may the better technology win…&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://janvanderhaegen.wordpress.com/2012/01/10/lightswitch-achievements-chapter-one-introduction-the-idea/"&gt;LightSwitch Achievements: Chapter one (Introduction) – The idea&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://janvanderhaegen.wordpress.com/2012/01/08/extensions-made-easy-1-11-navigation-sample-explained/"&gt;Extensions made easy 1.11 : navigation sample explained&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://powerbala.com/2012/01/01/extending-lightswitch-textbox-walk-through/"&gt;Extending LightSwitch TextBox : Walk-Through&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchregularguy.wordpress.com/2012/01/27/resources-for-beginners/"&gt;Resources for Beginners&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://lightswitchregularguy.wordpress.com/2012/01/29/an-easy-way-to-create-many-to-many-relationships/"&gt;An Easy Way to Create Many-to-Many Relationships&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;&lt;strong&gt;Presentations:&lt;/strong&gt;&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.techdays.ca/contentlibrary/video/en/2011-lightswich-is-hot!-really-hot!!.aspx"&gt;LightSwitch is Hot! Really Hot!!&lt;/a&gt;&lt;/strong&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://www.kunal-chowdhury.com/2012/01/presented-lightswitch-for-business.html"&gt;Presented “LightSwitch for Business Application Development” in Microsoft Monday&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;Samples (&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/hh204519"&gt;see all of them here&lt;/a&gt;):&lt;/h5&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/Extended-Text-Box-b8c7b911"&gt;Extended Text Box Extension - Source Code&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/NavigationDemo-having-some-f2629c9c"&gt;NavigationDemo: having some fun in LightSwitch with the EME navigation model&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/Many-to-Many-Control-for-52cd8c6c"&gt;Many to Many Control for Visual Studio LightSwitch&lt;/a&gt; &lt;/li&gt;

    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/Begining-LightSwitch-508763ea"&gt;Beginning LightSwitch - Address Book Sample&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h5&gt;LightSwitch Team Community Sites&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://www.facebook.com/vslightswitch"&gt;&lt;img style="display: inline; float: right" border="0" alt="" align="right" src="http://badge.facebook.com/badge/151211271561073.1904.953280091.png" width="137" height="84" /&gt;&lt;/a&gt; The &lt;a href="http://www.facebook.com/vslightswitch"&gt;Visual Studio LightSwitch Facebook Page&lt;/a&gt; has been increasing in activity thanks to you all. Become a fan! Have fun and interact with us on our wall. Check out the cool stories and resources. &lt;/p&gt;

  &lt;p&gt;Also here are some other places you can find the LightSwitch team: &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/category/vslightswitch"&gt;LightSwitch MSDN Forums&lt;/a&gt; 

    &lt;br /&gt;&lt;a href="http://msdn.com/lightswitch"&gt;LightSwitch Developer Center&lt;/a&gt; 

    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/lightswitch"&gt;LightSwitch Team Blog&lt;/a&gt; 

    &lt;br /&gt;&lt;a href="http://twitter.com/#!/VSLightSwitch"&gt;LightSwitch on Twitter&lt;/a&gt; (@VSLightSwitch, #VisualStudio #LightSwitch) &lt;/p&gt;

  &lt;h5&gt;Join Us!&lt;/h5&gt;

  &lt;p&gt;The community has been using the hash tag #LightSwitch on twitter when posting stuff so it’s easier for me to catch it (although this is a common English word so you may end up with a few weird ones ;-)). &lt;a href="http://twitter.com/#!/search/realtime/%23LightSwitch"&gt;Join the conversation!&lt;/a&gt; And if I missed anything please add a comment to the bottom of this post and let us know!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Reminder&lt;/strong&gt;: Visual Studio LightSwitch items are included in these posts because LightSwitch is the quickest, easiest and best route for the new breed of “citizen programmers” to get apps running on Windows Azure. &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;For more about “citizen programmers,” see my &lt;a href="http://searchcloudcomputing.techtarget.com/tip/Microsoft-cloud-service-lets-citizen-developers-crunch-big-data"&gt;Microsoft cloud service lets citizen developers crunch big data&lt;/a&gt; article of 1/24/2012 for SearchCloudComputing.com. &lt;/li&gt;

  &lt;li&gt;See also Mike Wade’s &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh547097.aspx"&gt;Deploying LightSwitch Applications to Windows Azure&lt;/a&gt; article from the November 2011 issue of &lt;em&gt;MSDN Magazine&lt;/em&gt;. &lt;/li&gt;
&lt;/ul&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;) described &lt;a href="http://janvanderhaegen.wordpress.com/2012/02/01/lightswitch-achievements-chapter-two-events-classic-events-the-observer/"&gt;LightSwitch achievements: Chapter two (Events) – Classic events: “The observer”&lt;/a&gt; on 2/1/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-qhrU9Voa9BI/TynWkIn9Y2I/AAAAAAAAaiY/BxYnAm-JbFM/s1600-h/image51.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/-TufX1B74O6o/TynWkS43FPI/AAAAAAAAaig/4YUE-h3zFeo/image_thumb20.png?imgmax=800" width="65" height="65" /&gt;&lt;/a&gt;&lt;em&gt;In &lt;a href="http://janvanderhaegen.wordpress.com/lightswitch-achievements/"&gt;this blog post series&lt;/a&gt;, we’re going to create a fun extension that will stimulate the users of our LightSwitch applications by rewarding them with points and achievements when they use the application…&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-tw9TEwPlzyA/TynWkoDtQbI/AAAAAAAAaio/5IOlK6uQA2E/s1600-h/image_thumb16.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://lh3.ggpht.com/-OPMi37TgQvA/TynWk0NWLbI/AAAAAAAAaiw/_1bmKSUFb-0/image_thumb1_thumb1.png?imgmax=800" width="171" height="54" /&gt;&lt;/a&gt;&lt;em&gt;Also, in this particular post, I wrote my first VB.NET code ever, which seems to be the .NET language of choice of about 1/3rd of my readers… All comments on the VB.NET code will be considered positive feedback, no matter what you write or how you write it!&lt;/em&gt;&lt;/p&gt;

  &lt;h5&gt;Functional POV&lt;/h5&gt;

  &lt;p&gt;Conceptually, when talking about events in .NET, where are talking about a message that one object sends to zero-to-many other objects to let them know that something happened. There’s four important elements here:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;the sender (aka the source): the object that sends the message &lt;/li&gt;

    &lt;li&gt;the message: what happened &lt;/li&gt;

    &lt;li&gt;the timing: when did it happen &lt;/li&gt;

    &lt;li&gt;the event handlers (aka the listeners): the objects that want to take an action for the event &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Most events will find their use in the presentation layer of our applications, where we want to execute code when the user clicks a button, hover the mouse cursor over an image, …&lt;/p&gt;

  &lt;h5&gt;Semantics POV&lt;/h5&gt;

  &lt;p&gt;It’s hard to talk code without a small example..&lt;/p&gt;

  &lt;pre&gt;using System;

namespace ConsoleApplicationCSharp
{

    //1. Define the event &amp;quot;signature&amp;quot;, usually (but NOT required) has two arguments: sender &amp;amp; event arguments.
    public delegate void ChangedEventHandler(object sender, EventArgs e);

    public class ClassWithEvent
    {
        //2. Define the event.
        public event ChangedEventHandler Changed;

        public void InvokeTheEvent()
        {
            Console.WriteLine(&amp;quot;Firing the event&amp;quot;);
            // 3. Invoking the event (can only be done from inside the class that defined the event)
            if (Changed != null)
                Changed(this, EventArgs.Empty);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var classWithEvent = new ClassWithEvent();
            //4. Adding an event handler to the event
            classWithEvent.Changed += new ChangedEventHandler(classWithEvent_Changed);
            classWithEvent.InvokeTheEvent();

            Console.ReadKey();
        }

        static void classWithEvent_Changed(object sender, EventArgs e)
        {
            Console.WriteLine(&amp;quot;The event has fired&amp;quot;);
        }
    }
}&lt;/pre&gt;

  &lt;p&gt;And the same example in VB.NET (&lt;em&gt;I think…&lt;/em&gt;)&lt;/p&gt;

  &lt;pre&gt;Imports System

Namespace ConsoleApplicationVB

    '1. Define the event &amp;quot;signature&amp;quot;, usually (but NOT required) has two arguments: sender &amp;amp; event arguments.
    Public Delegate Sub ChangedEventHandler(sender As Object, e As EventArgs)

    Public Class ClassWithEvent
        '2. Define the event.
        Public Event Changed As ChangedEventHandler

        Public Sub InvokeTheEvent()
            Console.WriteLine(&amp;quot;Firing the event&amp;quot;)
            ' 3. Invoking the event (can only be done from inside the class that defined the event)
            RaiseEvent Changed(Me, EventArgs.Empty)
        End Sub
    End Class

    Module Program

        Sub Main()
            Dim classWithEvent As New ClassWithEvent
            ' 4. Adding an event handler
            AddHandler classWithEvent.Changed, AddressOf classWithEvent_Changed
            classWithEvent.InvokeTheEvent()
            Console.ReadKey()
        End Sub

        Private Sub classWithEvent_Changed(sender As Object, e As EventArgs)
            Console.WriteLine(&amp;quot;The event has fired&amp;quot;)
        End Sub
    End Module

End Namespace&lt;/pre&gt;

  &lt;p&gt;Just as the functional POV, the code samples reveal that when dealing with events, there are four important elements:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;What happened&lt;/strong&gt;: the first step is to define the event “signature”, which happens in the form of a delegate. There’s a lot of “standard” event signatures provided by the .NET framework and I would advise you to use them over custom events, but as the samples show, it’s really easy to roll your own. Event signatures will often have two arguments: sender (a reference to the source, the object that raised the event), and (a subclass of) EventArgs (additional information about what happened). &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;The sender&lt;/strong&gt;: we add a property to the class that exposes the event, and add the .NET keyword “event”. Conceptually, it’s ok to think of this property as a “collection of method references” that all match the signature from step1. &lt;em&gt;From a technical POV, what we actually do is add a property which is an empty delegate, aka method pointer that has no value yet. On a traditional property, the compiler will generate two “subroutines”: “get” and “set”. When we add the keyword “event” to the property declaration however, the compiler will add two “subroutines” called “add” and “remove”. In the generated “add” subroutine, the value (new delegate) will be combined with the existing value, as opposed to a normal property, where the “set” will replace the existing value, and ofcourse the opposite happens in the “remove” “subroutine”.&lt;/em&gt; &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;When it happened&lt;/strong&gt;: raising the event is quite simple: do a null-reference check then call the delegate (C#, more technical) or use the (VB.Net, more descriptive) keyword RaiseEvent. Conceptually, each method in our “collection of method references” from step 2 will be called. &lt;em&gt;Raising the event can only be done from inside the class that defined it, although often you will see classes that expose this functionality to anyone ( depending on the access modifier: private/public/…).&lt;/em&gt; &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;The event handlers&lt;/strong&gt;: these are the classes that subscribed to the event, in other words: told the sender they want to be notified when the event occurs, in the form of a method being called. To do this, use the VB.Net keyword AddHandler, or the C# operator +=. &lt;em&gt;Both ways are just semantics that when compiled, result in the “add” subroutine from step 2 being called.&lt;/em&gt; &lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;&lt;em&gt;There’s a lot more technical aspects of events that I could discuss, the most important ones would be Garbage Collection (or more specifically: the prevention of GC on the event handlers) and thread safety, but let’s not forget that this is a LightSwitch blog, so let’s find out why this information is important for the Achievements extension that we are building in this blog post series…&lt;/em&gt;&lt;/p&gt;

  &lt;h5&gt;LightSwitch POV&lt;/h5&gt;

  &lt;p&gt;I wanted to take you in this shallow dive in events in .NET, because for our achievements extension, where most of the code resides in the model layer, not in the presentation layer, we’ll choose not to use this classic observer pattern, and use the event mediator pattern instead. To justify exactly why we’ll go with a different pattern, it’s important to understand the conceptual and technical differences between the two…&lt;/p&gt;

  &lt;p&gt;However, the achievements extension will have a little bit of graphical artwork to it, and for this code (/XAML) there’s one event in particular that could use some special attention: INotifyPropertyChanged.&lt;/p&gt;

  &lt;h5&gt;What’s INotifyPropertyChanged?&lt;/h5&gt;

  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx"&gt;INotifyPropertyChanged&lt;/a&gt; is an interface that exposes just one property: the &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx"&gt;PropertyChanged&lt;/a&gt; event. This event is extremely important in the &lt;a href="http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx"&gt;MVVM pattern&lt;/a&gt;, because the bindings that we define in XAML recognize this event and will subscribe to it. A Binding instance will update its value (&lt;em&gt;“refresh the view”&lt;/em&gt;) if the source raises the event.&lt;/p&gt;

  &lt;p&gt;The viewmodel that implements this interface can use the &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.propertychangedeventargs.aspx"&gt;PropertyChangedEventArgs&lt;/a&gt; in two ways:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Fill in the PropertyName: by doing this, the sender signifies to the listeners that one particular property has changed, and that all bindings on this property should update. &lt;/li&gt;

    &lt;li&gt;Leave the PropertyName blank: by doing this, the sender signifies to the listeners that the object changed so radically, that all bindings to any property on this object should update. It’s basically requesting a general “refresh” of the view. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;em&gt;INotifyPropertyChanged has a brother called &lt;a href="http://msdn.microsoft.com/en-us/library/system.collections.specialized.inotifycollectionchanged.aspx"&gt;INotifyCollectionChanged&lt;/a&gt;, also recognized by bindings, useful for “ItemsSource” properties, …&lt;/em&gt;&lt;/p&gt;

  &lt;h5&gt;An easy base class…&lt;/h5&gt;

  &lt;p&gt;If you are using &lt;a href="http://janvanderhaegen.wordpress.com/extensionsmadeeasy/"&gt;EME&lt;/a&gt;, (&lt;em&gt;if you’re not: what the hell?&lt;/em&gt;) then there’s an easy base class included in the framework for your LightSwitch development convenience…&lt;/p&gt;

  &lt;p&gt;The ExtensionsMadeEasy.ClientAPI.Utilities.Base.NotifyPropertyChangedBase (&lt;em&gt;&lt;a href="http://extensionsmadeeasy.codeplex.com/SourceControl/changeset/view/12506#196243"&gt;source code here&lt;/a&gt;, it has been included for a while but never got around to blogging about it&lt;/em&gt;) is a base class (&lt;em&gt;based on the beautiful work by &lt;a href="http://janvanderhaegen.wordpress.com/2012/02/01/lightswitch-achievements-chapter-two-events-classic-events-the-observer/twitter.com/eisenbergeffect"&gt;Rob Eisenberg&lt;/a&gt;&lt;/em&gt;) for your (&lt;em&gt;/my&lt;/em&gt;) ViewModels. It exposes three (&lt;em&gt;undocumented, sorry&lt;/em&gt;) methods:&lt;/p&gt;

  &lt;pre&gt;namespace LightSwitchApplication
{
    public class SomeViewModel : ExtensionsMadeEasy.ClientAPI.Utilities.Base.NotifyPropertyChangedBase
    {
        private int myProperty;

        public int MyPublicProperty
        {
            get { return myProperty; }
            set {
                myProperty = value;
                base.Refresh(); //Refresh all bindings
                base.OnPropertyChanged(&amp;quot;MyPublicProperty&amp;quot;); //Classic approach
                base.OnPropertyChanged(() =&amp;gt; MyPublicProperty); //Approach with lambda expression
            }
        }        

    }
}&lt;/pre&gt;

  &lt;p&gt;Or, in VB equivalent (&lt;em&gt;I think…&lt;/em&gt;)&lt;/p&gt;

  &lt;pre&gt;Public Class SomeViewModel
    Inherits ExtensionsMadeEasy.ClientAPI.Utilities.Base.NotifyPropertyChangedBase

    Private myProperty As Integer
    Public Property MyPublicProperty() As Integer
        Get
            Return MyProperty
        End Get
        Set(ByVal value As Integer)
            myProperty = value
            MyBase.Refresh() 'Refresh all bindings
            MyBase.OnPropertyChanged(&amp;quot;MyPublicProperty&amp;quot;) 'Classic approach
            MyBase.OnPropertyChanged(Function() MyPublicProperty) 'Approach with lambda expression
        End Set
    End Property

End Class&lt;/pre&gt;

  &lt;p&gt;The first method (Refresh) raises the PropertyChanged event without a PropertyName on the EventArgs, all bindings on “SomeViewModel” will be refreshed.&lt;/p&gt;

  &lt;p&gt;The second method raises the PropertyChanged event with a hardcoded PropertyName (“MyPublicPropertyName”) on the EventArgs, all bindings on this property will be refreshed. The string must match the actual property name exactly…&lt;/p&gt;

  &lt;p&gt;The third method does exactly the same as the second, but uses a lambda expression. The major advantage is that the property is not hardcoded (ie: not a string), which gives you compile-time safety: you can not misspell the property name by accident or it won’t compile (happened to me many times before), but will also be updated automagically if you decide to refactor your class a bit, and rename the property.&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;To each his own of course, but I definitely prefer the latter. Anyways, let’s see what this event mediator pattern is all about, and why it’s more suited for the model layer of our extension…&lt;/em&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;• Mike West&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/MikeWestCloud"&gt;MikeWestCloud&lt;/a&gt;) posted an &lt;a href="http://www.information-management.com/blogs/Microsoft-Azure-cloud-certification-SQL-10021863-1.html"&gt;Azure: 10 Things You Need to Know&lt;/a&gt; teaser for a Saugatuck Technology research report to the Information Management site on 2/1/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-Hq8IWLi8pEw/TyrizQWY_5I/AAAAAAAAaro/18kIBmdGyeE/s1600-h/image%25255B10%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/-UxjSQDXeb_4/TyrizmTFC4I/AAAAAAAAarw/jC0KoSbODt8/image_thumb%25255B4%25255D.png?imgmax=800" width="57" height="66" /&gt;&lt;/a&gt;In 2010, Microsoft launched the Windows Azure platform. Since then, Saugatuck has been actively tracking Windows Azure through regular Microsoft briefings, interviews with ISVs and with SIs that have migrated their solutions or workloads to Windows Azure or that have built natively on Windows Azure.&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;ISVs migrating to the Cloud and enterprise developers should understand the evolution and maturity of the Windows Azure platform, and the solutions and workloads it was designed for. Not all work well on Windows Azure. In a recently published premium Saugatuck research deliverable we provide an update and overview of the platform, and its suitability for Cloud solutions. In this Lens360 blog post, we highlight some of the takeaways from this 6-page Strategic Perspective.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-2OC2ZreE09E/Tyriz0xNFEI/AAAAAAAAar4/Fhx-m1Qas9M/s1600-h/image%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" border="0" alt="image" align="right" src="http://lh5.ggpht.com/--07hjDFdq4Q/Tyri0IzC-HI/AAAAAAAAasA/r82tuQFrT3k/image_thumb%25255B6%25255D.png?imgmax=800" width="160" height="37" /&gt;&lt;/a&gt;Overall, significant progress has already been made, and it is important to note several important advances on the horizon for Windows Azure platform:&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;SQL Azure&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;2012 will see SQL Server 2012 and SQL Azure move closer to parity, as the once-significant functionality gap continues to close. &lt;/li&gt;

    &lt;li&gt;2012 will see SQL Server 2012 and SQL Azure share development tools. &lt;/li&gt;

    &lt;li&gt;New federated partitioning for SQL Azure provides the means to handle issues related to managing customers separately.[&lt;strong&gt;*&lt;/strong&gt;] &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;strong&gt;Windows Azure&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;System Center 2012 makes management of Azure solutions part of the overall systems management capability. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;strong&gt;Regulatory Certifications&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Microsoft is currently in the process of completing the SSAE 16 audit. &lt;/li&gt;

    &lt;li&gt;Work is also under way to deliver on HIPAA Business Associate Agreement (BAA). &lt;/li&gt;

    &lt;li&gt;PCI certification, not in place today, is next on the roadmap. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;At the same time, however, Windows Azure presents significant challenges to enterprise developers or to ISVs with enterprise customers migrating to the Cloud because of persistent design constraints. While we don’t have the room in this blog post to flesh these issues out in full, we discuss these in some detail in the Strategic Perspective, and what to do about it.&lt;/p&gt;

  &lt;p&gt;One area we do want to highlight is that despite considerable recent attention to achieving certifications, Windows Azure still lacks FISMA, GLBI, HIPAA, PCI, and SSAE16 – a key constraint if an enterprise or an ISV needed to store medical information or consumer credit card data, for example. While we believe many of the key certifications are on the roadmap, it takes time to fully address all of the certification issues. Stay tuned.&lt;/p&gt;

  &lt;p&gt;Complicating things further, Windows Azure is a rapidly moving target of functionality. The progress Microsoft has made in enhancing the platform continues at a fairly rapid pace. Therefore, it is important to understand the technical direction that the Windows Azure platform will take and continue to take as it evolves further. 2012 holds several very promising new additions to the Windows Azure platform, including development and testing capability.&lt;/p&gt;

  &lt;p&gt;Fortunately for migrating ISVs and enterprise developers, leading SIs such as &lt;a href="http://www.accenture.com/"&gt;Accenture&lt;/a&gt;, &lt;a href="http://www.avanade.com/en-us/Pages/default.aspx"&gt;Avanade&lt;/a&gt;, &lt;a href="http://www.cognizant.com/"&gt;Cognizant&lt;/a&gt; and &lt;a href="http://www.wipro.com/"&gt;Wipro&lt;/a&gt;, for example, have partnered with Microsoft to enable Windows Azure ISV workloads and solutions, and in doing so have amassed deep knowledge of the platform, its architecture and its future directions. These SIs have also developed solutions that fill in some of the gaps in the platform today.&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;Note: Ongoing Saugatuck subscription clients can access this premium research piece (1016MKT) by &lt;a href="http://saugatucktechnology.com/1016MKT-10-Things-To-Know-About-Windows-Azure-Two-Years-after-Release.html"&gt;clicking here&lt;/a&gt;, and inputting your ID and password. Non-clients can purchase and download this premium research piece by &lt;a href="http://saugatucktechnology.com/index.php?option=com_dms&amp;amp;task=view_document&amp;amp;id=73&amp;amp;Itemid=504"&gt;clicking here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;This blog originally appeared at &lt;a href="http://saugatucktechnology.com/Blog/Entry/microsoft-azure-update-ten-things-you-need-to-know.html"&gt;Saugatuck Lens360&lt;/a&gt;. &lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;*&lt;/strong&gt; SQL Azure Federations have little to do with “issues related to managing customers separately” (multi-tenancy.) SQL Azure Federations primarily provide the ability to horizontally scale SQL Azure data beyond the current 150-GB limit and/or increase compute and memory resources for a particular SQL Azure implementation.&lt;/p&gt;



&lt;hr /&gt;





&lt;p&gt;&lt;strong&gt;Andrew Kerry-Bedell&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/AJKB"&gt;AJKB&lt;/a&gt;) reported growth for jobs with Windows Azure skills is #1 in his &lt;a href="http://ajkb.wordpress.com/2012/01/30/top-linked-in-profile-it-skills/"&gt;Top Linked In Profile IT Skills&lt;/a&gt; post of 1/30/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-NEoAxnIQlug/TyrWMhqSF7I/AAAAAAAAapA/xEKLMC_zqgE/s1600-h/image%25255B72%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/-ZXCb9TT27mU/TyrWM5cOxwI/AAAAAAAAapI/QO51tVRcXoM/image_thumb%25255B30%25255D.png?imgmax=800" width="53" height="66" /&gt;&lt;/a&gt;Having spent some recent days helping colleagues with &lt;strong&gt;Linked In&lt;/strong&gt; lately I took the time to review some of the lesser used features in Linked In.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Linked In Skills&lt;/strong&gt; is one area that seems to have been overlooked by many people. Launched 9 months ago it is likely to come to the fore for those in the recruiting business seeking to filter out candidates early on with the right type of skills.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-pv89Gtd7p6M/TyrWNMpMVoI/AAAAAAAAapQ/cAnwSP59kKQ/s1600-h/image%25255B69%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/-nrWD-F79dO0/TyrWNf7GI8I/AAAAAAAAapY/pGmTeNFKj3I/image_thumb%25255B29%25255D.png?imgmax=800" width="239" height="298" /&gt;&lt;/a&gt;Whilst skills like ‘consulting’ and ‘presentation skills’ are featured, they’re not much use and not very focused. What are useful are more specific IT and marketing related skills. In addition, Linked In helps by showing what the year on year growth is in the profiles featuring these skills, giving a good indication of the popularity of each individual skill.&lt;/p&gt;

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

  &lt;p&gt;It’s interesting to see Salesforce.com in decline … .&lt;/p&gt;

  &lt;p&gt;There are no real surprises in Social Media, but in the Microsoft technology space it’s interesting that SharePoint is growing well, followed by their CRM and Dynamics products.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s more interesting to me to see growth in jobs requiring Windows Azure skills ahead of that for AWS, although that might result from Windows Azure’s smaller base.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;Tiffany Trader&lt;/strong&gt; reported &lt;a href="http://www.hpcinthecloud.com/hpccloud/2012-02-01/gartner_says_platform_as_a_service_is_on_the_cusp_of_several_years_of_strategic_growth.html"&gt;Gartner Says Platform as a Service is on the Cusp of Several Years of Strategic Growth&lt;/a&gt; in a 2/1/2012 post to the HPC in the Cloud blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-7ijxKDdrP2Q/TynWlPTw19I/AAAAAAAAai4/RWSBEAh-P8k/s1600-h/image69.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/-ZC0W-YvjCUE/TynWlGoQ9pI/AAAAAAAAajA/iMdgZuFF2oY/image_thumb28.png?imgmax=800" width="94" height="25" /&gt;&lt;/a&gt;Platform as a service (PaaS) is a core layer of the cloud computing architecture, and its evolution will affect the future of most users and vendors in enterprise software markets, according to Gartner, Inc.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-NpY_AZ0k9HU/TynWlSwpJqI/AAAAAAAAajI/KLPN1durVSQ/s1600-h/image65.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/-ZRVPKkJ_7i4/TynWlhr2BcI/AAAAAAAAajQ/rSshuLVEdKU/image_thumb26.png?imgmax=800" width="90" height="42" /&gt;&lt;/a&gt;&amp;quot;With large and growing vendor investment in PaaS, the market is on the cusp of several years of strategic growth, leading to innovation and likely breakthroughs in technology and business use of all of cloud computing,&amp;quot; said Yefim Natis, vice president and distinguished analyst at Gartner. &amp;quot;Users and vendors of enterprise IT software solutions that are not yet engaged with PaaS must begin building expertise in PaaS or face tough challenges from competitors in the coming years.&amp;quot;&lt;/p&gt;

  &lt;p&gt;PaaS is a common reference to the layer of cloud technology architecture that contains all application infrastructure services, which are also known as &amp;quot;middleware&amp;quot; in other contexts. PaaS is the middle layer of the end-to-end software stack in the cloud. It is the technology that intermediates between the underlying system infrastructure (operating systems, networks, virtualization, storage, etc.) and overlaying application software. The technology services that are part of a full-scope comprehensive PaaS include functionality of application containers (servers), application development tools, database management systems, integration middleware, portal products, business process management suites and others — all offered as a service.&lt;/p&gt;

  &lt;p&gt;In the Gartner Special Report, &amp;quot;PaaS 2012: Tactical Risks and Strategic Rewards&amp;quot; (&lt;a href="http://www.gartner.com/technology/research/cloud-computing/report/paas-cloud.jsp"&gt;http://www.gartner.com/technology/research/cloud-computing/report/paas-cloud.jsp&lt;/a&gt;), Gartner analysts said 2011 was a pivotal year for the PaaS market. As Gartner predicted last year in the report &amp;quot;PaaS Road Map: A Continent Emerging&amp;quot; (&lt;a href="http://www.gartner.com/resId=1521622"&gt;http://www.gartner.com/resId=1521622&lt;/a&gt;), the broad vendor adoption in 2011 amounted to a sound industry endorsement of PaaS as an alternative to the traditional middleware deployment models.&lt;/p&gt;

  &lt;p&gt;In 2012, the PaaS market is at its early stage of growth and does not yet have well-established leaders, best use or business practices or dedicated standards. The adoption of PaaS offerings is still associated with some degree of uncertainty and risk.&lt;/p&gt;

  &lt;p&gt;&amp;quot;However, PaaS products are likely to evolve into a major component of the overall cloud computing market, just as the middleware products — including application servers, database management systems (DBMSs), integration middleware and portal platforms — are the core foundation of the traditional software industry,&amp;quot; Mr. Natis said. &amp;quot;The tension between the short-term risk and the long-term strategic imperative of PaaS will define the key developments in the PaaS market during the next two to three years.&amp;quot;&lt;/p&gt;

  &lt;p&gt;Some of the newly announced PaaS offerings will reach general availability late in 2012, and by the end of 2013, all major software vendors will have competitive production offerings in the PaaS market. By 2016, competition among the PaaS vendors will produce new programming models, new standards and new software market leaders. However, until then, users will continue to experience architectural changes to technologies, business models and vendor alignments in the PaaS market.&lt;/p&gt;

  &lt;p&gt;As vendors continue to invest in PaaS services, and the major software vendors look to deliver comprehensive PaaS service portfolios, activity in all segments of PaaS will accelerate and the fast pace of growth and change in the PaaS market will create confusion, making user adoption decisions more difficult.&lt;/p&gt;

  &lt;p&gt;&amp;quot;While there are clear risks associated with the use of services in the new and largely immature PaaS market, the risk of avoiding the PaaS market is equally high,&amp;quot; said Mr. Natis. &amp;quot;The right strategy for most mainstream IT organizations and software vendors is to begin building familiarity with the new cloud computing opportunities by adopting some PaaS services now, albeit with the understanding of their limitations and with the expectation of ongoing change in the market offerings and use patterns.&amp;quot;&lt;/p&gt;

  &lt;p&gt;Additional information is available in the Gartner Special Report &amp;quot;PaaS 2012 — Tactical Risks and Strategic Rewards.&amp;quot; The special report includes video commentary from Mr. Natis, as well as links to more than 30 related reports about the PaaS market.&lt;/p&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;It’s about operational efficiency and consistency, emulated in the cloud by an API to create the appearance of a converged platform&lt;/em&gt;” in an introduction to her &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2012/02/01/the-cloud-api-is-pseudo-consolidation-of-infrastructure.aspx"&gt;The Cloud API is Pseudo-Consolidation of Infrastructure&lt;/a&gt; post of 2/1/2011 to F5’s DevCentral blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-dGJxcz3_Wo8/TynWmHVDhUI/AAAAAAAAajY/g8BkL1oNUAc/s1600-h/image40.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/-J4NV0XDiKSM/TynWmSrT1uI/AAAAAAAAajg/mC9uhmmMJQ4/image_thumb15.png?imgmax=800" width="63" height="66" /&gt;&lt;/a&gt;In most cases, the use of the term “consolidation” implies the aggregation (and subsequently elimination) of like devices. Application delivery consolidation, for example, is used to describe a process of scaling up infrastructure that often occurs during upgrade cycles. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Cloud-is-the-Consumerization-of-Infrastr_71B1/consolidation_2.png"&gt;&lt;img style="display: inline; float: right" title="consolidation" border="0" alt="consolidation" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Cloud-is-the-Consumerization-of-Infrastr_71B1/consolidation_thumb.png" width="316" height="359" /&gt;&lt;/a&gt;Many little boxes are exchanged for a few larger ones as a means to simplify the architecture and reduce the overall costs (hard and soft) associated with delivering applications. Consolidation. &lt;/p&gt;

  &lt;p&gt;But cloud has opened (or should have opened) our eyes to a type of consolidation in which like &lt;em&gt;services &lt;/em&gt;are aggregated; a consolidation strategy in which we layer a thin veneer over a set of adjacent functionalities in order to provide a scalable and ultimately operationally consistent experience: an API. A cloud API consolidates infrastructure from an operational perspective. It is the bringing together of adjacent functionalities into a single “entity.” Through a single API, many infrastructure functions and services can be controlled – provisioning, monitoring, security, and &lt;a href="http://www.f5.com/glossary/load-balancing.html"&gt;load balancing&lt;/a&gt; (one part of application delivery) are all available through the same API. Certainly the organization of an API’s documentation segments services into similar containers of functionality, but if you’ve looked at a cloud API you’ll note that it’s all the same API; only the organization of the documentation makes it appear otherwise. &lt;/p&gt;

  &lt;p&gt;This service-oriented approach allows for many of the same benefits as consolidation, without actually physically consolidating the infrastructure. Operational consistency is one of the biggest benefits. &lt;/p&gt;

  &lt;h6&gt;OPERATIONAL CONSISTENCY &lt;/h6&gt;

  &lt;p&gt;The ability to consistently manage and monitor infrastructure through the same interface – whether API or GUI or script – is an important factor in data center efficiency. One of the reasons enterprises demand overarching data center-level monitoring and management systems like HP OpenView and CA and IBM Tivoli is consistency and an aggregated view of the entire data center. &lt;/p&gt;

  &lt;p&gt;It is no different in the consumer world, where the consistency of the same interface greatly enhances the ability of the consumer to take advantage of underlying services. Convenience, too, plays a role here, as a single device (or API) is ultimately more manageable than the requirement to use several devices to accomplish the same thing. Back in the day I carried a Blackberry, a mobile phone, and a PDA – each had a specific function and there was very little overlap between the two. Today, a single “smart”phone provides the functions of all three – and then some. The consistency of a single interface, a single foundation, is paramount to the success of such consumer devices. &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/11/21/the-full-proxy-data-center-architecture.aspx"&gt;It is the platform&lt;/a&gt;, whether consumers realize it or not, that enables their highly integrated and operationally consistent experience. &lt;/p&gt;

  &lt;p&gt;The same is true in the cloud, and ultimately in the data center. Cloud (pseudo) consolidates infrastructure the only way it can – through an API that ultimately becomes the platform analogous to an iPhone or Android-based device. &lt;/p&gt;

  &lt;p&gt;Cloud does not eliminate infrastructure, it merely abstracts it into a consolidated API such that the costs to manage it are greatly reduced due to the multi-tenant nature of the platform. Infrastructure is still managed, it’s just managed through an API that simplifies and unifies the processes to provide a more consistent approach that is beneficial to the organization in terms of hard (hardware, software) and soft (time, administration) costs. &lt;/p&gt;

  &lt;p&gt;The cloud and its requisite API provide the consolidation of infrastructure necessary to achieve greater cost savings and higher levels of consistency, both of which are necessary to scale operations in a way that makes IT able to meet the growing demand on its limited resources. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&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;) “… speculates on the future of Microsoft's public cloud play” while asking &lt;a href="http://redmondmag.com/articles/2012/02/01/can-microsoft-save-windows-azure.aspx"&gt;Can Microsoft Save Windows Azure?&lt;/a&gt; in a 2/1/2012 article for RedmondMag.com: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-V5AOvN6wiG8/TynWmotG9PI/AAAAAAAAajo/7Yx5uJF-1AQ/s1600-h/image6.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/-R2vHQPrv_50/TynWm6Mnv5I/AAAAAAAAajw/iLZarklt0eU/image_thumb2.png?imgmax=800" width="51" height="66" /&gt;&lt;/a&gt;Microsoft is slowly but surely working to make its Windows Azure cloud platform more palatable to the masses -- though without the benefit of roadmap leaks, it would be hard for most customers to know this.&lt;/p&gt;

  &lt;p&gt;When Microsoft began cobbling together its Windows Azure cloud plans back in 2007, there was a grand architectural plan. In a nutshell, Microsoft wanted to recreate Windows so that Redmond could run users' applications and store their data across multiple Windows Server machines located in Microsoft's (plus a few partners') own datacenters. In the last five years, Microsoft has honed that vision but has never really deviated too far from its original roadmap. &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 Platform as a service (PaaS) purists -- and Microsoft-centric shops -- Windows Azure looked like a distributed-systems engineer's dream come true. For those unwilling or unable to rewrite existing apps or develop new ones that were locked into the Microsoft System Center- and .NET-centric worlds, it was far less appealing. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-CoHuQEqBtTE/TynWnH4P8eI/AAAAAAAAaj4/Vq1h6l6nYiQ/s1600-h/image10.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/-v2P547yfs5M/TynWnRfV3_I/AAAAAAAAakA/iS6_dWCM85g/image_thumb4.png?imgmax=800" width="160" height="27" /&gt;&lt;/a&gt;How many external, paying customers are on Windows Azure? Microsoft officials won't say -- and that's typically a sign that there aren't many. My contacts tell me that even some of the big Azure wins that Microsoft trumpeted ended up trying Windows Azure for one project and then quietly slinking away from the platform. However, Windows Azure is no Windows Vista. Nor is it about to go the way of the Kin. But without some pretty substantial changes, it's not on track to grow the way Microsoft needs it to.&lt;/p&gt;

  &lt;p&gt;This fact hasn't been lost on the Microsoft management. Starting last year, Microsoft began making a few customer- and partner-requested tweaks to Windows Azure around pricing. Then the 'Softies started getting a bit more serious about providing support for non-Microsoft development tools and frameworks for Windows Azure. Developer champion and .NET Corporate Vice President Scott Guthrie traded his red shirt for an Azure-blue one (figuratively -- still not yet literally) and moved to work on the Windows Azure application platform.&lt;/p&gt;

  &lt;p&gt;Starting around March this year, Microsoft is slated to make some very noticeable changes to Windows Azure. That's when the company will begin testing with customers its persistent virtual machine that will allow users to run Windows Server, Linux(!), SharePoint and SQL Server on Windows Azure -- functionality for which many customers have been clamoring. This means that Microsoft will be, effectively, following in rival Amazon's footsteps and adding more Infrastructure as a Service components to a platform that Microsoft has been touting as pure PaaS. &lt;/p&gt;

  &lt;p&gt;The first quarterly update to Windows Azure this year -- if Microsoft doesn't deviate from its late 2011 roadmap -- will include a number of other goodies, as well, such as the realization of some of its private-public cloud migration and integration promises. If you liked Microsoft's increased support for PHP, Java, Eclipse, Node.js, MongoDB and Hadoop from last year, take heart that the Windows Azure team isn't done improving its support for non-Microsoft technologies. Also on the Q1 2012 deliverables list is support for more easily developing Windows Azure apps not just on Windows, but also on Macs and Linux systems.&lt;/p&gt;

  &lt;p&gt;Microsoft's new focus with Windows Azure is to allow users to start where they are rather than making them start over. That may sound like rhetoric, but it's actually a huge change, both positioning- and support-wise for Microsoft's public cloud platform. Not everyone -- inside or outside the company -- agrees that this is a positive. Hosting existing apps in the cloud isn't the same as re-architecting them so they take advantage of the cloud. It will be interesting to see whether users who are tempted by the &amp;quot;new&amp;quot; Windows Azure are happy with the functionality for which they've been clamoring.&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;• &lt;/strong&gt;The &lt;strong&gt;TechNet Wiki &lt;/strong&gt;published &lt;strong&gt;Bill Loeffler&lt;/strong&gt;’s Wiki Page: &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/4346.private-cloud-principles-patterns-and-concepts.aspx"&gt;Private Cloud Principles, Patterns, and Concepts&lt;/a&gt; on 1/30/2012. From the introduction:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://www.technet.com/cloud/private-cloud"&gt;&lt;img style="display: inline; float: right" title="image" alt="image" align="right" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-24-metablogapi/5658.image_5F00_64BCDD48.png" width="200" height="114" /&gt;&lt;/a&gt;A key goal is to enable IT organizations to leverage the principles and concepts described in &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/reference-architecture-for-private-cloud.aspx"&gt;Reference Architecture for Private Cloud &lt;/a&gt;content set to offer Infrastructure as a Service (&lt;a href="http://www.microsoft.com/en-us/server-cloud/private-cloud/default.aspx"&gt;IaaS &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;), allowing any workload hosted on this infrastructure to automatically inherit a set of Cloud-like attributes. Fundamentally, the consumer should have the perception of infinite capacity and continuous availability of the services they consume. They should also see a clear correlation between the amount of services they consume and the price they pay for these services.&lt;a href="http://www.technet.com/cloud/private-cloud"&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;/a&gt;&lt;/p&gt;

  &lt;p&gt;Achieving this requires virtualization of all elements of the infrastructure (compute [processing and memory], network, and storage) into a fabric that is presented to the container, or the virtual machine (VM). It also requires the IT organization to take a service provider’s approach to delivering infrastructure, necessitating a high degree of IT Service Management maturity. Moreover, most of the operational functions must be automated to minimize the variance as much as possible while creating a set of predictable models that simplify management. 
    &lt;br /&gt;Finally, it is vital to ensure that the infrastructure is designed in a way that services, applications, and workloads can be delivered independently from where they are originally sourced or provided. Thus, one of the major goals is to enable portability between a customer’s private cloud and external public cloud platforms and providers.&lt;/p&gt;

  &lt;p&gt;Therefore, this requires a strong service quality driven, consumer oriented approach as opposed to a “feature” or capability oriented approach. Although this approach is not &lt;a href="http://www.answers.com/topic/orthogonality"&gt;orthogonal &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;to other approaches, it may seem counterintuitive at first. This documentation defines the process elements for planning, building, and managing a private cloud environment with a common set of best practices.&lt;/p&gt;

  &lt;hr /&gt;

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

    &lt;br /&gt;This document is part of a collection of documents that comprise the &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/reference-architecture-for-private-cloud.aspx"&gt;Reference Architecture for Private Cloud&lt;/a&gt;document set. The Solution for Private Cloud is a community collaboration project. Please feel free to edit this document to improve its quality. If you would like to be recognized for your work on improving this document, please include your name and any contact information at the bottom of this page.&lt;/p&gt;

  &lt;hr /&gt;

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

  &lt;ul&gt;
    &lt;li&gt;Principles 
      &lt;ul&gt;
        &lt;li&gt;Achieve Business Value through Measured Continual Improvement &lt;/li&gt;

        &lt;li&gt;Perception of Infinite Capacity &lt;/li&gt;

        &lt;li&gt;Perception of Continuous Service Availability &lt;/li&gt;

        &lt;li&gt;Take a Service Provider’s Approach &lt;/li&gt;

        &lt;li&gt;Optimization of Resource Usage &lt;/li&gt;

        &lt;li&gt;Take a Holistic Approach to Availability Design &lt;/li&gt;

        &lt;li&gt;Minimize Human Involvement &lt;/li&gt;

        &lt;li&gt;Drive Predictability &lt;/li&gt;

        &lt;li&gt;Incentivize Desired Behavior &lt;/li&gt;

        &lt;li&gt;Create a Seamless User Experience &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;

    &lt;li&gt;Concepts 
      &lt;ul&gt;
        &lt;li&gt;Predictability &lt;/li&gt;

        &lt;li&gt;Favor Resiliency Over Redundancy &lt;/li&gt;

        &lt;li&gt;Homogenization of Physical Hardware &lt;/li&gt;

        &lt;li&gt;Pool Compute Resources &lt;/li&gt;

        &lt;li&gt;Virtualized Infrastructure &lt;/li&gt;

        &lt;li&gt;Fabric Management &lt;/li&gt;

        &lt;li&gt;Elastic Infrastructure &lt;/li&gt;

        &lt;li&gt;Partitioning of Shared Resources &lt;/li&gt;

        &lt;li&gt;Resource Decay &lt;/li&gt;

        &lt;li&gt;Service Classification &lt;/li&gt;

        &lt;li&gt;Cost Transparency &lt;/li&gt;

        &lt;li&gt;Consumption Based Pricing &lt;/li&gt;

        &lt;li&gt;Security and Identity &lt;/li&gt;

        &lt;li&gt;Multitenancy &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;

    &lt;li&gt;Patterns 
      &lt;ul&gt;
        &lt;li&gt;Resource Pooling 
          &lt;ul&gt;
            &lt;li&gt;Service Management Partitions &lt;/li&gt;

            &lt;li&gt;Systems Management Partitions &lt;/li&gt;

            &lt;li&gt;Capacity Management Partitions &lt;/li&gt;
          &lt;/ul&gt;
        &lt;/li&gt;

        &lt;li&gt;Physical Fault Domain &lt;/li&gt;

        &lt;li&gt;Upgrade Domain &lt;/li&gt;

        &lt;li&gt;Reserve Capacity &lt;/li&gt;

        &lt;li&gt;Scale Unit &lt;/li&gt;

        &lt;li&gt;Capacity Plan &lt;/li&gt;

        &lt;li&gt;Health Model &lt;/li&gt;

        &lt;li&gt;Service Class &lt;/li&gt;

        &lt;li&gt;Cost Model &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;This &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/tags/Reference+Architecture/default.aspx"&gt;Reference Architecture&lt;/a&gt; link opens a list of all wiki pages in the series to date.&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="Security"&gt;Cloud Security and Governance&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;David Navetta&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/davidnavetta"&gt;DavidNavetta&lt;/a&gt;) asked &lt;a href="http://feeds.lexblog.com/~r/InfoLawGroup/~3/-Sf1nOKAU54/"&gt;Cyber Insurance: An Efficient Way to Manage Security and Privacy Risk in the Cloud?&lt;/a&gt; in a 2/1/2012 post to the InfoLaw Group blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-ENw64Z8F10U/TynWn8-tSyI/AAAAAAAAakI/RoP9iXZGHFk/s1600-h/image57.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/-HcWQeqIPhC8/TynWoC6bCtI/AAAAAAAAakQ/enULn6gSHis/image_thumb22.png?imgmax=800" width="65" height="66" /&gt;&lt;/a&gt;As organizations of all stripes increasingly rely on cloud computing services to conduct their business, (with many organizations entering into cloud computing arrangements with multiple cloud providers), the need to balance the benefits and risks of cloud computing is more important than ever. This is especially true when it comes to data security and privacy risks. Cloud providers are sitting on reams of data from thousands of customers, including sensitive information such as personal information, trade secrets, and confidential and proprietary information. To criminals Cloud providers are prime targets. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-CB5qd6iGt1w/TynWoSfBY1I/AAAAAAAAakY/rclDD5CMVrc/s1600-h/image61.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/-e98jXrmS4g4/TynWovkW6bI/AAAAAAAAakg/MdW-uFBSZ70/image_thumb24.png?imgmax=800" width="240" height="22" /&gt;&lt;/a&gt;At the same time, based in large part on the amount of risk aggregated by Cloud providers, most Cloud customers are unable to secure favorable contract terms when it comes to data security and privacy. While customers may enjoy some short term cost-benefits by going into the Cloud, they may be retaining more risk then they want (especially where Cloud providers refuse to accept that risk contractually). In short, the players in this industry are at an impasse. &lt;a href="http://bits.blogs.nytimes.com/2011/12/23/insurance-against-cyber-attacks-expected-to-boom/"&gt;Cyber insurance&lt;/a&gt; may be a solution to help solve the problem.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;A Short History of Cyber Insurance Coverage*&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;strong&gt;*This section ended up longer than I anticipated. If you already have a base knowledge of cyber coverage or don’t want to bother with some historical background, please skip ahead to this section: &amp;quot;&lt;/strong&gt;&lt;strong&gt;Where Privacy and Security Risk Breaks Down in Cloud Computing Contracts&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;quot;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;In the early 2000s, just around the “&lt;a href="http://www.investopedia.com/features/crashes/crashes8.asp#axzz1l5JS11fJ"&gt;DotCom Bust&lt;/a&gt;”, some insurers began developing a product designed to address the financial loss that might arise out of a data breach. This was a time where most “&lt;a href="http://www.investopedia.com/terms/b/brickandmortar.asp"&gt;brick and mortar&lt;/a&gt;” companies were just beginning to leverage the economic potential of the Internet. At that time insurers wanted to target the big “dotcom” companies like Amazon, Yahoo, eBay, Google, etc., and other companies pioneering e-commerce and online retailing. At some point, somebody dubbed this type of insurance “cyber insurance.”&lt;/p&gt;

  &lt;p&gt;The early cyber policies included liability and property components. The liability coverages addressed claim expenses and liability arising out of a security breach of the insured’s computer systems (some early policies only covered “technical” security breaches, as opposed to policy violation-based security breaches). The property-related components covered business interruption and data asset loss/damage arising out of a data breach (during the holiday season many online retailers suddenly developed a tasted for business interruption coverage after realizing just how negatively their business would be impacted by a denial of service attack). Additional first party coverages included cyber-extortion coverage and crisis management/PR coverage.&lt;/p&gt;

  &lt;p&gt;Unfortunately for the carriers, it was not easy to get people to understand the need for this coverage (and that is still a challenge today, but certainly a lesser challenge with all of the security and privacy news constantly streaming). Early on there were very few lawsuits and regulators were just beginning to consider enforcement of relatively new statutes like &lt;a href="http://en.wikipedia.org/wiki/Gramm%E2%80%93Leach%E2%80%93Bliley_Act"&gt;GLB&lt;/a&gt; and &lt;a href="http://www.hhs.gov/ocr/privacy/"&gt;HIPAA&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;Two things changed that made cyber insurance much more relevant. One was a rather sudden event, and the other more gradual.&lt;/p&gt;

  &lt;p&gt;First, in 2003, California passed &lt;a href="http://en.wikipedia.org/wiki/SB_1386"&gt;SB1386&lt;/a&gt;, the world’s first breach notification law. The reality then (as now) is that companies suffer security breaches each and every day. Prior to SB1386, however, breaches of personal information simply went unreported. With SB1386 and the subsequent passage of breach notice laws in &lt;a href="http://www.ncsl.org/issues-research/telecommunications-information-technology/security-breach-notification-laws.aspx"&gt;45 other states&lt;/a&gt; (and now &lt;a href="http://law.bepress.com/cgi/viewcontent.cgi?article=1153&amp;amp;context=unswwps"&gt;coming internationally&lt;/a&gt;), the risk profile changed for data breaches. Instead of burying the breaches, companies were required to incur significant direct expenses to investigate security breaches and comply with applicable breach notice laws, including the offering of credit monitoring to affected individuals (which is not legally required by existing breach notice laws, but is optionally provided by many companies or &amp;quot;suggested&amp;quot; by state regulators). As a result, the plaintiffs’ bar now had notice of security breaches and began filing class action lawsuits after big breaches (usually involving high-profile brand name organizations). As such, cyber insurance coverage went from coverage addressing a hypothetical risk of future lawsuits, to a coverage addressing real-life risk (and now we have &lt;a href="http://www.infolawgroup.com/2011/10/articles/damages/federal-appeals-court-holds-identity-theft-insurancecredit-monitoring-costs-constitute-damages-in-hannaford-breach-case/"&gt;lawsuits&lt;/a&gt; getting deeper into litigation and &lt;a href="http://campustechnology.com/articles/2012/01/30/u-hawaii-settles-data-breach-class-action-suit.aspx"&gt;public settlements&lt;/a&gt; of these types of cases). Moreover, shortly after the passage of SB 1386 many cyber insurance policies began covering the direct costs associated with complying with breach notification laws, including attorney fees, forensic investigation expenses, printing and mailing costs, credit monitoring expenses and call center expenses. Breach notification costs are direct and almost unavoidable after a personal information breach. Regardless of lawsuit activity, a direct financial rationale for cyber insurance coverage now existed.&lt;/p&gt;

  &lt;p&gt;The other change that occurred more gradually over time, but which has had a significant impact concerning the frequency and magnitude of data breaches was organized crime. In the early 2000s hacking was more of an exercise in annoyance or a used for bragging purposes. Hackers at that time wanted their exploits talked about and know. They wanted credit for hacking into or bringing down a sophisticated company (or better yet a division of the Federal Government or military). As such, when an attack happened it was discovered and remediated, and that would be the end of it.&lt;/p&gt;

  &lt;p&gt;True criminals, of course, are less interested in such notoriety. In fact, when trying to steal thousands/millions of records to commit identity theft or credit card fraud it is much better to &lt;strong&gt;NOT&lt;/strong&gt; be detected. Lingering on a company’s network taking information for months or years is a much more profitable endeavor. Recognizing that this type of crime is low risk (it can be performed from thousands of miles away in Eastern Europe with almost not chance of getting caught) and high reward, organized crime flooded into the space. And in this context the word “&lt;a href="http://press.pandasecurity.com/wp-content/uploads/2011/01/The-Cyber-Crime-Black-Market.pdf"&gt;organized&lt;/a&gt;” is truly appropriate – these enterprises retain very smart IT-oriented people that use every tool possible to &lt;a href="http://www.msnbc.msn.com/id/41519478/ns/technology_and_science-security/t/making-money-cybercrime-easier-ever/#.TyiKmfllwvk"&gt;scale and automate their crimes&lt;/a&gt;. They leverage the communication tools on the Internet to fence their “goods” creating, for example, wholesale and retail markets for credit cards, or “eBay”-like auction sites to hawk their illicit wares (e.g. valuable information). The change in orientation described above has essentially resulted in a 24/7/365 relentless crime machine constantly attacking and looking for new ways to attack, and always seeming to be one step ahead of those seeking to stop them. That is why we read about security and privacy breaches practically every day in the newspaper.&lt;/p&gt;

  &lt;p&gt;Fast-forward to present time. Cyber insurance is a much more established market with more carriers entering on a regular basis. There are primary and excess markets available for big risks, and companies of all sizes are looking at cyber more as a mandatory purchase rather than discretionary. As the world continues to change at seemingly light-speed and cyber risks increase (with the advent of &lt;a href="http://en.wikipedia.org/wiki/Hacktivism"&gt;hacktivism&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Social_media"&gt;social media&lt;/a&gt; and the &lt;a href="http://en.wikipedia.org/wiki/Consumerization"&gt;consumerization of IT/BYOD&lt;/a&gt; ) the need for cyber is also growing. With competition pushing cyber insurance prices down, and significant security and privacy risk being retained by organizations, risk transfer is becoming very attractive (and from an overall big picture systemic point of view, spreading is risk is also attractive). Another area where cyber may help smooth out security and privacy risk is with &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing"&gt;cloud computing&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Where Privacy and Security Risk Breaks Down in Cloud Computing Contracts&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;As we have &lt;a href="http://www.infolawgroup.com/articles/cloud-computing-1/"&gt;written extensively&lt;/a&gt; of in the past, Cloud computing raises significant privacy and security risks that are often difficult to hammer out in a Cloud computing negotiation (to the extent a Cloud customer gets a chance to negotiate at all). The net result of these contract negotiation difficulties and Cloud provider unwillingness in many cases to take on meaningful risk contractually, is that the risk is retained solely by the Cloud customer. The following examples outline the privacy and security-related Cloud issues that impact the Cloud customer's risk:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;a Cloud provider failing to maintain reasonable security to prevent data breaches; &lt;/li&gt;

    &lt;li&gt;a Cloud provider failing to comply with privacy and security laws applicable to the Cloud customer; &lt;/li&gt;

    &lt;li&gt;a Cloud provider refusing to allow a Cloud customer to conduct its own independent forensic investigation of a data breach suffered by a Cloud provider; &lt;/li&gt;

    &lt;li&gt;potential conflict of interests with respect a Cloud provider’s handling a data breach that may have been the fault of the Cloud provider, including failing to cooperate with its Cloud customers if that cooperation could adversely impact the Cloud provider; &lt;/li&gt;

    &lt;li&gt;the Cloud customer’s potential obligation to comply with breach notice laws, including absorbing expenses for legal fees, forensic investigators, printing and mailing, credit monitoring and maintain a call center; &lt;/li&gt;

    &lt;li&gt;lawsuits and regulatory actions against the Cloud customer because of Cloud provider security and privacy breaches, and the legal fees, judgments, fines, penalties and settlement costs associated with them; and &lt;/li&gt;

    &lt;li&gt;Cloud providers seeking to leverage and data mine Cloud customer information being processed in the Cloud. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;The justification used by Cloud providers to avoid responsibilities for these risks and the costs associated with them is essentially &lt;em&gt;&lt;strong&gt;risk aggregation&lt;/strong&gt;&lt;/em&gt;. Cloud providers maintain that, because they serve hundreds or thousands of customers on shared computing resources, a single attack could expose Cloud providers to liability from all of those customers at the same time. In fact, we already have &lt;a href="http://bits.blogs.nytimes.com/2011/04/21/amazon-cloud-failure-takes-down-web-sites/"&gt;one example&lt;/a&gt; involving a business interruption of a Cloud provider that demonstrates how multiple customers can be affected by a security breach. They also claim that independent forensic investigations by customers in the wake of a &lt;a href="http://www.infolawgroup.com/2011/03/articles/cloud-computing-1/data-breach-in-the-clouds/"&gt;data breach&lt;/a&gt; are not possible because they cannot accommodate multiple customers at one time, and even if they could a forensic assessment would essentially expose each Cloud customer’s data to every Cloud customer conducting such an investigation.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Cyber Insurance: Addressing Retained Risk in the Cloud&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;So how does cyber insurance fit into this picture? As it currently stands, cyber insurance can be a very valuable tool for Cloud customers who are not able to get their providers to contractually take financial responsibility for security and privacy risk. Most cyber insurance policies cover data security and privacy breaches of not only the computer networks directly under the control of the insured, &lt;strong&gt;&lt;em&gt;but also those computer networks operated by third parties for or on behalf of the insured&lt;/em&gt;&lt;/strong&gt;. What this means in the Cloud context is that most cyber insurance policies may cover data breaches of the Cloud provider’s systems where the Cloud customer's/insured's data is stored and processed on those systems. This coverage will typically include most of the expenses listed above, including those direct expenses to comply with breach notice laws and costs to defend lawsuits and regulatory actions arising out of Cloud provider data breaches. As such, in the event a Cloud customer cannot get reasonable contract terms, assuming it has purchased the correct cyber coverage, it will have a fallback risk transfer and will not be retaining that risk solely on its own.&lt;/p&gt;

  &lt;p&gt;Is there a catch? Not really currently, except of course the premium that must be paid and the fact that most cyber insurance policies have a self-insured retention that must be satisfied by the insured before the carriers is required to pay. However, there may be longer term problems that arise for the carriers.&lt;/p&gt;

  &lt;p&gt;At this point, whether they like it or not, carriers whose cyber insurance policies cover security and privacy breaches of third party service providers are already beginning to aggregate their risk when it comes to Cloud providers. Imagine a world with a relatively small number of Cloud providers serving a much larger customer base (to some degree we may already live in such a world considering the dominance of Google, Amazon, Rackspace and other big cloud players). Many insureds/Cloud customers are going to be dealing with this relatively small number of Cloud providers. For example, I am sure that for most cyber insurance companies, if they were to check their books, would find that many of their insureds already use the same Cloud providers and/or other third party service providers to store and process the insureds’ data. Further consolidation of Cloud provider, should that occur, will only increase the aggregation of risk.&lt;/p&gt;

  &lt;p&gt;However, as long as cyber insurance is more widely adopted, the aggregation risk may be manageable. The entire purpose of insurance is to spread the risk across a wide community of insureds, and by doing so hopefully individual insureds that experience a breach are not catastrophically impacted. At the same time carriers can build reserves and achieve reasonable profits. The long term question is whether there are enough insureds purchasing cyber insurance to spread the risk and allow for the building of reserves to cover a breach of a major cloud provider that impacts a wide audience of insureds.&lt;/p&gt;

  &lt;p&gt;We probably are not there yet, and unless demand increases, we may not get there. One thing that may happen, perhaps, is a push from the Cloud provider/customer community to somehow make cyber insurance more of a mandatory condition of doing business in the Cloud. Time will tell as to whether the cyber insurers view this aggregation issue as serious, and whether they will take steps to mitigate it (hopefully those steps will not involve narrowing the coverage). In the meantime, companies that are going deep into the Cloud should quantify the risk they are retaining and seriously consider Cyber insurance coverage. The price may be right, and the peace of mind priceless.&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;• &lt;/strong&gt;&lt;strong&gt;Robert Cathey&lt;/strong&gt; (@&lt;a href="https://twitter.com/#!/robertcathey"&gt;robertcathey&lt;/a&gt;) posted &lt;a href="http://feedproxy.google.com/~r/neoTactics/~3/jxQm7Zj7zDE/an-announcement-a-party-and-six-talks-at-cloud-connect"&gt;An Announcement, a Party, and Six Talks at Cloud Connect&lt;/a&gt; to the Cloudscaling blog on 2/2/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-UTiQENduh20/TyrWN528AGI/AAAAAAAAapg/G74W5fdZKpM/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/-O1Of8gyswyw/TyrWOPKi4BI/AAAAAAAAapo/RSzt9fDvwSI/image_thumb%25255B24%25255D.png?imgmax=800" width="56" height="66" /&gt;&lt;/a&gt;The week of February 13 is shaping up to be a milestone in the life of our company. There’s a lot going on, and we’d love for you to join us.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Monday, February 13 
      &lt;br /&gt;&lt;/strong&gt;We’ve got a couple of big announcements on tap. The first is related to the next stage of our growth as the leading provider of open cloud solutions to support next-generation applications. The second is a large reference customer who is providing yet another proof point for the Cloudscaling approach to cloud building. Get all the details on Monday.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-X6kdBUsTcJM/TyrWOX6INxI/AAAAAAAAapw/9-QBkQYEQ9c/s1600-h/image%25255B64%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/-N5lVDFc9cVc/TyrWOmMs5EI/AAAAAAAAap4/535NvkQIdEU/image_thumb%25255B26%25255D.png?imgmax=800" width="160" height="27" /&gt;&lt;/a&gt;Also on Monday, Randy Bias and David Bernstein will be lending their expertise to the &lt;a href="http://www.cloudconnectevent.com/santaclara/cloud-computing-conference/carrier-cloud-forum.php"&gt;Carrier Cloud Forum&lt;/a&gt; at Cloud Connect in Santa Clara. First, Randy will co-present on the main stage with one of our reference clients about a new open cloud deployment. Later that day, Randy and David will participate on panels featuring current cloud use cases and choosing cloud models that fit the unique requirements of carriers and service providers.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Tuesday, February 14 
      &lt;br /&gt;&lt;/strong&gt;We know, it’s Valentine’s Day. But, before you go out on your date, come hear Randy talk about the love of Cloudscaling’s life: Open and Scalable Clouds. He’ll give his talk on the main stage of &lt;a href="http://www.cloudconnectevent.com/santaclara/cloud-computing-conference/application-architecture-and-design.php"&gt;David Linthicum’s Architecture track&lt;/a&gt;. Randy will highlight the factors driving adoption of open clouds. He’ll examine the role open clouds play in supporting next-generation applications that leverage the power of web technologies, mobile computing and big data processing to drive new business initiatives. And you’ll still have time to pick up some candy and flowers afterwards.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Wednesday, February 15 
      &lt;br /&gt;&lt;/strong&gt;Over in &lt;a href="http://www.cloudconnectevent.com/santaclara/cloud-computing-conference/organizational-readiness.php"&gt;Scott Bils’ Organizational Readiness track&lt;/a&gt;, Cloudscaler Francesco Paola will give a lightening talk along with Toby Ford of AT&amp;amp;T. They’ll offer practical examples of organizational readiness issues in large, open cloud deployments. Cesco will talk about KT, and Toby about AT&amp;amp;T. They’re sharing the stage with Simon Wardley, a Cloudscaling advisor and prolific writer on the topic of cloud disruption, both in terms of business models and organizational preparedness. Later in that same track, Cesco will join a panel discussing how to train for, hire, and incentivize IT professionals with the right cloud skills.&lt;/p&gt;

  &lt;p&gt;On Wednesday evening, we’re having a cocktail party to celebrate the big week. &lt;a href="http://e2.ma/message/zgvm/fpsu"&gt;Join us from 6:00 until 8:00 pm&lt;/a&gt; in the Magnolia room at the Hyatt Santa Clara (attached to the Santa Clara Convention Center where Cloud Connect is taking place). We’ll have food, drinks, music and conversation about open clouds and what we’re hearing at Cloud Connect. (Check out the &lt;a href="http://e2.ma/message/zgvm/fpsu"&gt;invitation&lt;/a&gt; to get a sneak preview of our new branding.)&lt;/p&gt;

  &lt;p&gt;We’d like to thank our partner, Cloud Technology Partners (&lt;a href="http://www.cloudtp.com/"&gt;cloudTP&lt;/a&gt;), for co-sponsoring the event with us. They’ve been an important team member on several projects with us, and we’re thrilled they’re joining us.&lt;/p&gt;

  &lt;p&gt;One more thing… we’re hearing that there might be an OpenStack event later that evening. If it comes through, we’ll be sure and let you know about that as well.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Registering for Cloud Connect 
      &lt;br /&gt;&lt;/strong&gt;If you’re coming to the Carrier Cloud Forum or Cloud Connect, &lt;a href="http://www.cloudconnectevent.com/santaclara/registration/"&gt;register here&lt;/a&gt; and use the discount code CLOUDSALING to take 25% off the day-of admission price.&lt;/p&gt;

  &lt;p&gt;We hope you can join us for some or all of what will be a milestone week in our company’s young history.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;• Eric Nelson&lt;/strong&gt; (@&lt;a href="http://twitter.com/ericnel"&gt;ericnel&lt;/a&gt;) reported &lt;a href="http://feedproxy.google.com/~r/IUpdateable/~3/IA9EorfJBfU/"&gt;Slides, Notes and Recordings for Week 1 and 2 of #6weeksazure are all now available&lt;/a&gt; on 2/2/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Head over to &lt;a href="http://www.sixweeksofazure.co.uk/"&gt;www.sixweeksofazure.co.uk&lt;/a&gt; and click on Week 1 and Week 2 to get details.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://ericnelson.files.wordpress.com/2012/02/image.png"&gt;&lt;img title="image" border="0" alt="image" src="http://ericnelson.files.wordpress.com/2012/02/image_thumb.png?w=640&amp;amp;h=140" width="560" height="122" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-b7GXiOPBhPk/TyrWOw7JBAI/AAAAAAAAaqA/7sKe_I8VzFU/s1600-h/image%25255B3%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/-OTDSZWrnQis/TyrWPDltgBI/AAAAAAAAaqI/xWP0wti3554/image_thumb%25255B1%25255D.png?imgmax=800" width="58" height="66" /&gt;&lt;/a&gt;It is not too late to join us – there is after all still 4 more weeks to go and we have recordings of the first two weeks.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://sixweeksofazure.wordpress.com/enrol/"&gt;Sign up today!&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Note: This is primarily targeting UK companies – but we do not turn anyone away. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;David Pallman&lt;/strong&gt; described &lt;a href="http://davidpallmann.blogspot.com/2012/02/upcoming-february-sessions-on-web-and.html"&gt;Upcoming February Sessions on Web and Cloud at Portland Cloud Intelligence and CloudFest Denver&lt;/a&gt; in a 2/1/2012 post:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-QzMTvXHuHxY/TynWpDl6BxI/AAAAAAAAaks/oZya7qS3BJM/s1600-h/image75.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/-j0eW6MmW5oo/TynWprkz3tI/AAAAAAAAak0/yY7IBB3rc_I/image_thumb30.png?imgmax=800" width="48" height="66" /&gt;&lt;/a&gt;Here are some talks I and my Neudesic colleagues are giving on web, cloud, and programming at &lt;a href="http://cloudconference.quickstart.com/portland/"&gt;Portland Cloud Intelligence&lt;/a&gt; (Feb 2) and &lt;a href="http://www.cloudfest.org/Denver/"&gt;CloudFest Denver&lt;/a&gt; (Feb 9): &lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Development in the Cloud&lt;/strong&gt; 

    &lt;br /&gt;Stuart Celarier 

    &lt;br /&gt;&lt;a href="http://cloudconference.quickstart.com/portland/agenda.aspx"&gt;Portland Cloud Intelligence&lt;/a&gt; Thu Feb 2 1:00p 

    &lt;br /&gt;&lt;a href="http://davidpallmann.blogspot.com/2012/01/taking-fresh-look-at-windows-azure.html"&gt;View Walk-through&lt;/a&gt; 

    &lt;br /&gt;What’s it like to develop for the cloud? In this session, you’ll see what the development experience is like for Windows Azure. We’ll start with “Hello, Cloud” in Visual Studio, running it first in the local simulation environment and then deploying to a data center in the cloud. We’ll progressively add more features to the application to illustrate the use of different cloud services. Both the local simulation environment and deployment to a cloud data center will be shown. We’ll also discuss the software development lifecycle and share best practices for cloud development. You’ll leave with an understanding of the differences and similarities between cloud development and enterprise development.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Keeping an Eye on the Cloud: Azure Diagnostics&lt;/strong&gt; 

    &lt;br /&gt;Mike Erickson (@mgerickson) 

    &lt;br /&gt;&lt;a href="http://www.cloudfest.org/Denver/agenda/259-azr105"&gt;CloudFest Denver&lt;/a&gt; Thu Feb 9 4:10p 

    &lt;br /&gt;When an application is running in Windows Azure it can be difficult to know what is happening. In this session we will cover the techniques that you can implement to gather diagnostic information from the instances running in Azure. We will discuss how you can instrument your code to help you understand what is happening while it is running. We will also look at how you can connect to instances that are running in Azure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;When Worlds Collide: HTML5 Meets the Cloud&lt;/strong&gt; 

    &lt;br /&gt;David Pallmann (@davidpallmann) 

    &lt;br /&gt;&lt;a href="http://cloudconference.quickstart.com/portland/agenda.aspx"&gt;Portland Cloud Intelligence&lt;/a&gt; Thu Feb 3:30p 

    &lt;br /&gt;&lt;a href="http://www.cloudfest.org/Denver/abstracts/40/91-st103"&gt;CloudFest Denver&lt;/a&gt; Thu Feb 9 1:20p 

    &lt;br /&gt;&lt;a href="http://davidpallmann.blogspot.com/2012/01/presentation-when-worlds-collide-html5.html"&gt;View Presentation &lt;/a&gt;

    &lt;br /&gt;What does HTML5 mean for cloud computing, and vice-versa? When two revolutions are happening simultaneously you can expect interesting synergies and interactions. Even as cloud computing and social networks are profoundly transforming the back end, HTML5 and mobile devices are profoundly transforming the front end. When these worlds collide we can achieve something truly remarkable: rich, take-anywhere immersive experiences backed by on-demand, elastic services running at global scale. Both worlds are driving changes in the way we design software, and good solution architecture demands they be considered jointly. In this session you'll see how HTML5 and the cloud combine functionally and architecturally, illustrated by example. &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;• &lt;/strong&gt;The &lt;strong&gt;HP Cloud Services Team&lt;/strong&gt; announced on 2/2/2012 the &lt;a href="http://app.go.hpcloud.com/e/es.aspx?s=521454204&amp;amp;e=21&amp;amp;elq=15d0ca5e664b4a94a277a5a1aff89aad"&gt;Rollout of a New HP Cloud Identity Service&lt;/a&gt; on 2/2/7/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-0gk6Ig1qS7k/TysEkVMnEQI/AAAAAAAAaso/Sn6N5rCAJDM/s1600-h/image%25255B4%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/-rqL145LhkN4/TysEktN77LI/AAAAAAAAasw/Zn9YKSvkGIo/image_thumb%25255B2%25255D.png?imgmax=800" width="197" height="43" /&gt;&lt;/a&gt;We’re excited to inform you of some important changes we are making to HP Cloud Services. On February 7th, we plan to roll out our new HP Cloud Identity Service. As with all maintenance and status information, we will post the exact timeframe and impact at &lt;a href="http://app.go.hpcloud.com/e/er?s=521454204&amp;amp;lid=12&amp;amp;elq=15d0ca5e664b4a94a277a5a1aff89aad"&gt;connect.hpcloud.com&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;The new Identity Service delivers consistent identity management and authentication processes across all HP Cloud Services in addition to providing an interface that is compatible with the OpenStack™ Keystone APIs. The Identity Service is an important enhancement because it will serve as a foundational layer that we’ll use to build and grow capabilities for all HP Cloud Services offerings. 
    &lt;br /&gt;The HP Cloud Identity Service will make accessing your HP Cloud Services more efficient. With the HP Cloud Identity Service, you’ll have the ability to:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Access HP Cloud Compute, HP Cloud Object Storage, and all future services with one set of credentials instead of unique credentials for each service &lt;/li&gt;

    &lt;li&gt;Use a single API endpoint for token management and user authentication instead of individual endpoints for each service &lt;/li&gt;

    &lt;li&gt;Combine various Compute and Object Storage resources into a tenant or group of resources, allowing for easier resource management &lt;/li&gt;

    &lt;li&gt;Access a catalog of the HP Cloud Services available to you at any time&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;strong&gt;What You Will Need to Do&lt;/strong&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;If you are interacting directly with the API for HP Cloud Compute and HP Cloud Object Storage, you must change the authentication endpoint anywhere you have explicitly used it, including configuration files. &lt;/li&gt;

    &lt;li&gt;If you are using a CLI or a language binding to interact with HP Cloud Services, you will need to upgrade to the latest versions. Updated tools will be available on &lt;a href="http://app.go.hpcloud.com/e/er?s=521454204&amp;amp;lid=13&amp;amp;elq=15d0ca5e664b4a94a277a5a1aff89aad"&gt;build.hpcloud.com&lt;/a&gt; when the Identity Service is released. &lt;/li&gt;

    &lt;li&gt;Any third-party tools (e.g. Cyberduck, Euca2ools) will need to be configured to use the new authentication process. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Our &lt;a href="http://app.go.hpcloud.com/e/er?s=521454204&amp;amp;lid=14&amp;amp;elq=15d0ca5e664b4a94a277a5a1aff89aad"&gt;intro guide&lt;/a&gt; and &lt;a href="http://app.go.hpcloud.com/e/er?s=521454204&amp;amp;lid=15&amp;amp;elq=15d0ca5e664b4a94a277a5a1aff89aad"&gt;step-by-step instructions&lt;/a&gt; further detail the new Identity Service and authentication steps for both HP Cloud Compute and HP Cloud Object Storage. If you have questions, don’t hesitate to engage live customer support, available Monday-Friday, 7am-7pm CST, by online chat, submitting a request at &lt;u&gt;connect.hpcloud.com/support-ticket&lt;/u&gt;, or&lt;u&gt; &lt;a href="http://app.go.hpcloud.com/e/er?s=521454204&amp;amp;lid=6&amp;amp;elq=15d0ca5e664b4a94a277a5a1aff89aad"&gt;email&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;

  &lt;p&gt;We think you’ll find that the HP Cloud Identity Service provides a more seamless experience with HP Cloud Services, and we look forward to sharing news of future improvements with you. &lt;/p&gt;

  &lt;p&gt;Sincerely,
    &lt;br /&gt;The HP Cloud Services Team&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I have an account for testing the HP Cloud Services beta version. For more information about HP Cloud Services, see my &lt;a href="http://oakleafblog.blogspot.com/2011/12/first-look-at-hp-cloud-services.html"&gt;A First Look at HP Cloud Services&lt;/a&gt; post of 12/7/2012.&lt;/p&gt;

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

&lt;p&gt; &lt;/p&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.com's cloud services are quickly becoming the only cloud platform that businesses consider” in a deck for his &lt;a href="http://www.infoworld.com/d/cloud-computing/amazon-web-services-the-new-microsoft-windows-185537"&gt;Amazon Web Services: The new Microsoft Windows&lt;/a&gt; article of 2/2/2012 for InfoWorld’s Cloud Computing blog:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-Bf2dURQe9ng/TyrWPRp_IgI/AAAAAAAAaqQ/Ymnho5kxq5Y/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://lh3.ggpht.com/-Fwk_AFkGBes/TyrWPi5SM1I/AAAAAAAAaqY/qtXg8it3KRQ/image_thumb%25255B4%25255D.png?imgmax=800" width="65" height="61" /&gt;&lt;/a&gt;&lt;a href="http://aws.typepad.com/aws/2012/01/amazon-s3-growth-for-2011-now-762-billion-objects.html"&gt;The news hit this week&lt;/a&gt;: &amp;quot;As of the end of 2011, there are 762 billion objects in Amazon S3 (Simple Storage Service). We process over 500,000 requests per second for these objects at peak times,&amp;quot; blogged Amazon.com This represents an annual growth rate of 192 percent.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-lenYArj1iMc/TyrWP3-J7nI/AAAAAAAAaqg/UFQ5GTzFdio/s1600-h/image%25255B16%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/-NzfR4UPcBFg/TyrWQDsg3CI/AAAAAAAAaqo/VUi90b0Nipo/image_thumb%25255B6%25255D.png?imgmax=800" width="162" height="66" /&gt;&lt;/a&gt;Pretty good for a cloud company still growing a retail business. The growth can be attributed to Amazon Web Services' focus on building a successful cloud storage offering and the rapid adoption of AWS -- including the S3 cloud storage service -- as the cloud computing standard.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-Ig8r2r9iIRE/TyrWQZrTW5I/AAAAAAAAaqw/uVpuvwq3pHQ/s1600-h/image%25255B20%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/-CLiBaeQd4xM/TyrWQrw6gLI/AAAAAAAAaq4/zDGtIdL292o/image_thumb%25255B8%25255D.png?imgmax=800" width="103" height="27" /&gt;&lt;/a&gt;More enterprises are seeking storage in the cloud as they rapidly fill up their on-premise storage and as the cloud storage providers become more secure, reliable, and cost competitive. AWS is typically first on business buyers' lists. In fact, I'm finding that more and more ask only for AWS; others are not even considered.&lt;/p&gt;

  &lt;p&gt;As cloud computing continues its rapid growth, we could face the reality that we have a single cloud computing provider that's far ahead of the competition. Indeed, AWS -- all its components, not just S3 -- is becoming to the enterprise what Windows was to the desktop in the 1990s. Amazon.com could have a virtual lock on the market, with better third-party support, and become the de facto standard. Maybe it already is.&lt;/p&gt;

  &lt;p&gt;Of course the market has not played out. It's just beginning to grow to align with the hype over the last few years. I suspect that in the short term, AWS's success will benefit other cloud providers, as it validates the cloud as a viable option for business computing and as the overall cloud market continues to define itself.&lt;/p&gt;

  &lt;p&gt;But in a few years, I do see a time when just a few providers will dominate the market. The investment in infrastructure it takes to operate a cloud computing service makes that inevitable. And there's no question that AWS will lead that pack, like Microsoft has in operating systems and office productivity tools and SAP has in ERP.&lt;/p&gt;

  &lt;p&gt;Personally, I would rather see 100 cloud computing providers rather than just three or four -- that just seems healthier. But IT historically prefers a dominant provider for compati[b]ility, integration, and other standardization reasons. And it now seems to be making a similar choice in the cloud.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;David doesn’t limit the horizon of his judgment of Amazon’s triumph to IaaS, which I believe he should. The PaaS market leader is yet to be determined.&lt;/p&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;) posted &lt;a href="http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/cReG9NLxLTk/new-elastic-mapreduce-features-metrics-updates-vpc-and-cluster-compute-support-guest-post.html"&gt;New Elastic MapReduce Features: Metrics, Updates, VPC, and Cluster Compute Support (Guest Post)&lt;/a&gt; by Adam Gray on 1/31/2012:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Today's guest blogger is Adam Gray. Adam is a Product Manager on the Elastic MapReduce Team.&lt;/em&gt;&lt;/p&gt;

  &lt;hr /&gt;

  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-J5VzbX81nxE/TynWqK4reFI/AAAAAAAAak8/abc7j-rtlBI/s1600-h/image%25255B13%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/-OIT89FSgBL0/TynWqf80SLI/AAAAAAAAalE/AGF960ecgjY/image_thumb%25255B5%25255D.png?imgmax=800" width="160" height="62" /&gt;&lt;/a&gt;We’re always excited when we can bring features to our customers that make it easier for them to derive value from their data—so it’s been a fun month for the EMR team. Here is a sampling of the things we’ve been working on.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Free CloudWatch Metrics&lt;/strong&gt; 

    &lt;br /&gt;Starting today customers can view graphs of &lt;a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_ViewingMetrics.html#UsingEMR_ViewingMetrics_MetricsReported"&gt;23 job flow metrics&lt;/a&gt; within the EMR Console by selecting the Monitoring tab in the Job Flow Details page. These metrics are pushed CloudWatch every five minutes at no cost to you and include information on:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Job flow progress&lt;/strong&gt; including metrics on the number of map and reduce tasks running and remaining in your job flow and the number of bytes read and written to S3 and HDFS. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Job flow contention&lt;/strong&gt; including metrics on HDFS utilization, map and reduce slots open, jobs running, and the ratio between map tasks remaining and map slots. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Job flow health&lt;/strong&gt; including metrics on whether your job flow is idle, if there are missing data blocks, and if there are any dead nodes. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Please watch this video to see how to view CloudWatch graphs in the EMR Console:&lt;/p&gt;

  &lt;p&gt;You can also learn more from the &lt;a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_ViewingMetrics.html"&gt;Viewing CloudWatch Metrics&lt;/a&gt; section of the EMR Developer Guide.&lt;/p&gt;

  &lt;p&gt;You can view the new metrics in the &lt;a href="http://console.aws.amazon.com/"&gt;AWS Management Console&lt;/a&gt;:&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/emr_new_metrics_2.png" /&gt;&lt;/p&gt;

  &lt;p&gt;Further, through the CloudWatch Console, API, or SDK you can set alarms to be notified via SNS if any of these metrics go outside of specified thresholds. For example, you can receive an email notification whenever a job flow is idle for more than 30 minutes, HDFS Utilization goes above 80%, or there are five times as many remaining map tasks as there are map slots, indicating that you may want to expand your cluster size.&lt;/p&gt;

  &lt;p&gt;Please watch this video to see how to set EMR alarms through the CloudWatch Console:&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Hadoop 0.20.205, Pig 0.9.1, and AMI Versioning&lt;/strong&gt; 

    &lt;br /&gt;EMR now supports running your job flows using Hadoop 0.20.205 and Pig 0.9.1. To simplify the upgrade process, we have also introduced the concept of AMI versions. You can now provide a specific AMI version to use at job flow launch or specify that you would like to use our “latest” AMI, ensuring that you are always using our most up-to-date features. The following AMI versions are now available:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Version 2.0.x&lt;/strong&gt;: Hadoop 0.20.205, Hive 0.7.1, Pig 0.9.1, Debian 6.0.2 (Squeeze) &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Version 1.0.x&lt;/strong&gt;: Hadoop 0.18.3 and 0.20.2, Hive 0.5 and 0.7.1, Pig 0.3 and 0.6, Debian 5.0 (Lenny) &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;You can specify an AMI version when launching a job flow in the Ruby CLI using the &lt;strong&gt;--ami-version &lt;/strong&gt;argument (note that you will have to download the latest version of the &lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2264"&gt;Ruby CLI&lt;/a&gt;):&lt;/p&gt;

  &lt;p&gt;$ ./elastic-mapreduce --create --alive --name &amp;quot;Test AMI Versioning&amp;quot; --ami-version latest --num-instances 5 --instance-type m1.small&lt;/p&gt;

  &lt;p&gt;Please visit the &lt;a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?EnvironmentConfig_AMIVersion.html"&gt;AMI Versioning&lt;/a&gt; section of the Elastic MapReduce Developer Guide for more information.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;S3DistCp for Efficient Copy between S3 and HDFS&lt;/strong&gt; 

    &lt;br /&gt;We have also made available S3DistCp, an extension of the open source &lt;a href="http://hadoop.apache.org/common/docs/current/distcp.html"&gt;Apache DistCp&lt;/a&gt; tool for distributed data copy, that has been optimized to work with &lt;a href="http://aws.amazon.com/s3/"&gt;Amazon S3&lt;/a&gt;. Using S3DistCp, you can efficiently copy large amounts of data between Amazon S3 and HDFS on your Amazon EMR job flow or copy files between Amazon S3 buckets. During data copy you can also optimize your files for Hadoop processing. This includes modifying compression schemes, concatenating small files, and creating partitions. 

    &lt;br /&gt;For example, you can load &lt;a href="http://aws.amazon.com/cloudfront/"&gt;Amazon CloudFront&lt;/a&gt; logs from S3 into HDFS for processing while simultaneously modifying the compression format from Gzip (the Amazon CloudFront default) to &lt;a href="http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Oberhumer"&gt;LZO&lt;/a&gt; and combining all the logs for a given hour into a single file. As Hadoop jobs are more efficient processing a few, large, LZO-compressed files than processing many, small, Gzip-compressed files, this can improve performance significantly.&lt;/p&gt;

  &lt;p&gt;Please see &lt;a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html"&gt;Distributed Copy Using S3DistCp&lt;/a&gt; in the Amazon Elastic MapReduce documentation for more details and code examples.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;cc2.8xlarge Support&lt;/strong&gt; 

    &lt;br /&gt;Amazon Elastic MapReduce also now supports the new Amazon EC2 Cluster Compute instance, Cluster Compute Eight Extra Large (cc2.8xlarge). Like other Cluster Compute instances, cc2.8xlarge instances are optimized for high performance computing, giving customers very high CPU capabilities and the ability to launch instances within a high bandwidth, low latency, full bisection bandwidth network. cc2.8xlarge instances provide customers with more than 2.5 times the CPU performance of the first Cluster Compute instance (cc1.4xlarge) instance, more memory, and more local storage at a very compelling cost. Please visit the &lt;a href="https://forums.aws.amazon.com/ann.jspa?annID=1301"&gt;Instance Types&lt;/a&gt; section of the Amazon Elastic MapReduce detail page for more details.&lt;/p&gt;

  &lt;p&gt;In addition, we are pleased to announce an &lt;strong&gt;18% reduction&lt;/strong&gt; in Amazon Elastic MapReduce pricing for cc1.4xlarge instances, dropping the total per hour cost to &lt;strong&gt;$1.57&lt;/strong&gt;. Please visit the &lt;a href="https://aws.amazon.com/elasticmapreduce/pricing"&gt;Amazon Elastic MapReduce Pricing Page&lt;/a&gt; for more details.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;VPC Support&lt;/strong&gt; 

    &lt;br /&gt;Finally, we are excited to announce support for running job flows in an Amazon &lt;a href="http://aws.amazon.com/vpc/"&gt;Virtual Private Cloud&lt;/a&gt; (Amazon VPC), making it easier for customers to:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Process sensitive data&lt;/strong&gt; - Launching a job flow on Amazon VPC is similar to launching the job flow on a private network and provides additional tools, such as routing tables and Network ACLs, for defining who has access to the network. If you are processing sensitive data in your job flow, you may find these additional access control tools useful. &lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Access resources on an internal network&lt;/strong&gt; - If your data is located on a private network, it may be impractical or undesirable to regularly upload that data into AWS for import into Amazon Elastic MapReduce, either because of the volume of data or because of its sensitive nature. Now you can launch your job flow on an Amazon VPC and connect to your data center directly through a VPN connection. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;You can launch Amazon Elastic MapReduce job flows into your VPC through the Ruby CLI by using the &lt;strong&gt;--subnet&lt;/strong&gt; argument and specifying the subnet address (note that you will have to download the latest version of the &lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2264"&gt;Ruby CLI&lt;/a&gt;):&lt;/p&gt;

  &lt;p&gt;$ ./elastic-mapreduce --create --alive --subnet &amp;quot;subnet-identifier&amp;quot;&lt;/p&gt;

  &lt;p&gt;Please visit the &lt;a href="http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?EnvironmentConfig_VPC.html"&gt;Running Job Flows on an Amazon VPC&lt;/a&gt; section in the Elastic MapReduce Developer Guide for more information.&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:28ce69a7-ee20-4220-a322-69be6df6468b" 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/Node.js" rel="tag"&gt;Node.js&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/NougakuDo" rel="tag"&gt;NougakuDo&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Ruby+on+Rails" rel="tag"&gt;Ruby on Rails&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Ruby" rel="tag"&gt;Ruby&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Data+Science" rel="tag"&gt;Data Science&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Geophysics" rel="tag"&gt;Geophysics&lt;/a&gt;,&lt;a href="http://technorati.com/tags/HP+Cloud+Services" rel="tag"&gt;HP Cloud Services&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-7183944615089029395?l=oakleafblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oakleafblog.blogspot.com/feeds/7183944615089029395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11646261&amp;postID=7183944615089029395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/7183944615089029395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11646261/posts/default/7183944615089029395'/><link rel='alternate' type='text/html' href='http://oakleafblog.blogspot.com/2012/02/windows-azure-and-cloud-computing-posts.html' title='Windows Azure and Cloud Computing Posts for 2/1/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-1143930505878465291</id><published>2012-01-31T17:11:00.000-08:00</published><updated>2012-02-01T13:08:06.771-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; 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;… 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;/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;strong&gt;Jo Maitland&lt;/strong&gt; (@&lt;a href="http://twitter.com/JoMaitlandSF"&gt;JoMaitlandSF&lt;/a&gt;) asserted &lt;a href="http://pro.gigaom.com/2012/01/there-is-more-to-node-js-than-buzz/"&gt;There is more to Node.js than buzz&lt;/a&gt; in a 1/27/2012 post to the GigaOm Pro Blog (trial or paid subscription required):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-KYQHO-SEti8/TymVr3yps2I/AAAAAAAAaeY/EerSnaGUwR8/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/-jJH83mlgU4Y/TymVsHGYheI/AAAAAAAAaeg/jP608LgNry8/image_thumb.png?imgmax=800" width="65" height="65" /&gt;&lt;/a&gt;Judging by the attendance and conversation at this week’s &lt;a href="http://nodesummit.com/"&gt;Node Summit&lt;/a&gt; in San Francisco, the relatively new open-source programming language &lt;a href="http://nodejs.org/"&gt;Node.js&lt;/a&gt; is catching on among developers and notably among enterprise developers.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-xGxYG2W-zd4/TymVsVazTBI/AAAAAAAAaeo/5ylnQ5Q3i5k/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://lh6.ggpht.com/-3Ahn9_PjAVs/TymVsvEaRlI/AAAAAAAAaew/Y_yXbBPxK5Y/image_thumb%25255B2%25255D.png?imgmax=800" width="160" height="44" /&gt;&lt;/a&gt;Several hundred people showed up at the event, most of them developers from startups around Silicon Valley as well as business and architect leads from Microsoft, eBay, Wal-Mart, Sprint, Google, Rackspace, VMware and the usual VC crowd. Everyone onstage had enormous enthusiasm for Node and their increasing use of the technology.&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-jRiVy5Kdlv8/TymVtJaBgFI/AAAAAAAAae4/7BzQCgHkjzQ/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: 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/-D6f5_ar7l7I/TymVtd3ABvI/AAAAAAAAafA/jqw4AkENY1A/image_thumb%25255B4%25255D.png?imgmax=800" width="160" height="59" /&gt;&lt;/a&gt;The summit was organized by Joyent, the company that invented Node.js and is shepherding the open-source community around it. Joyent’s SmartOS and SmartDataCenter products run on Node.js and are the backbone of its public cloud, JoyentCloud. Joyent also licenses the software to service providers to run their own public clouds.&lt;/p&gt;

  &lt;p&gt;…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-BOcGn-V0vfU/TymVtoa0FVI/AAAAAAAAafI/tiaMLvYW0pg/s1600-h/image%25255B15%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/-ZJv9YaShskE/TymVtzjYxyI/AAAAAAAAafQ/U06GIT7mBMs/image_thumb%25255B6%25255D.png?imgmax=800" width="160" height="20" /&gt;&lt;/a&gt;Jo goes on to describe Node.js, list users (such as Twitter, LinkedIn and eBay), and concludes:&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;The most interesting thing to me about Node is Joyent’s decision to keep it open and cross platform. Microsoft, for example, is porting Node to Windows Azure so that its developer base can use it. And with 40 percent of the developer market working on Windows, it is a smart way to ensure the technology reaches the mainstream. Amazon Web Services, take note!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;hr /&gt;&lt;/p&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.microso
