Channels ▼


The Many Flavors of Platform Services for Cloud Computing

.NET in the Cloud, Windows Azure

Besides Windows Azure, developers immersed in .NET can use PaaS solutions from Rackspace and Skytap. Rackspace Cloud Sites provide a platform for .NET, Active Server Pages and Microsoft SQL Server development but Rackspace's TrueHybrid load balancing also supports Linux. Therefore Rackspace Cloud Sites developers can use MySQL, Perl, PHP, Python development and the Drupal content management. Skytap is a vehicle for development and testing applications, including using its cloud-based Lab Manager for testing Windows 7 applications. Included in the Skytap offering is a library of virtual machine images and pay-per-minute pricing for on-demand users.

Windows Azure provides a pay-per-use bundle that includes Windows Live, Microsoft SharePoint Services, Microsoft Dynamics CRM Service, .NET Services and SQL Azure. Viewed through a developer prism, the Windows Azure platform includes the Compute service, Storage service and the Fabric on which they depend. The platform is intrinsically tied to Windows so that to use the Compute service, for example, a developer writes a Windows application that deploys in a Web role and/or a Worker role. Services written for Windows Azure implement Web roles, Worker roles, or both. Web roles are applications accessible via HTTP or HTTPS end points.

Windows Live Services include application services, geospatial services, user services, mesh services and a variety of other services for search, communications, devices, directories, identity, synchronization and users. Windows Azure provides scalable storage for binary large objects (Blobs) and tables, complemented by a queuing service and .NET services. The core components of Windows Azure .NET services include an Access Control Service, a Service Bus and a Workflow Service. Windows Azure .NET services comply with de facto standards for protocols and web services, including Simple Object Access Protocol (SOAP), HTTP and representational state transfer (REST). The Access Control Service provides federated identity support with support for Active Directory, Tivoli Directory Server, Windows Live ID, X.509 certificates and security cards.

A storage account provides a namespace that can contain multiple Blob containers, each being separately accessible via a URI and a RESTful interface. Azure provides PUT, GET, DELETE, copy Blob and get Blob list commands. For Blob access, Azure supports commit logic and optimistic concurrency. Blobs can be processed in blocks and Azure supports block uploads in parallel and out of order sequence. Out of order blocks are not committed until receipt of a PUT blocklist command. Azure supports client caching and optimistic concurrency with conditional PUT and GET.

Microsoft is positioning Azure to encourage organizations to use it for a business hub in the cloud. To complement databases in the cloud architecture (SQL Azure), the Microsoft Synchronization Framework enables sharing of data from multiple data sources, including enterprise databases and mobile devices. The framework provides bi-directional synchronization and the capability to publish data from disparate databases. The data hubs use multiple trust levels to implement different classes of data access.

Developers experienced with .NET can program for .NET services using a familiar development environment, Visual Studio, plus the .NET Services SDK. The Windows Azure developer can use C#, C++, Windows APIs and .NET. Available also are a Ruby SDK and Java SDK for .NET services, with the latter using the Metro web services sack.

Multi-Tenant Application Platforms

One PaaS feature that's a departure from traditional enterprise computing is the multi-tenant architecture. In a multi-tenant cloud environment, users share applications and databases, requiring fewer database servers than having disparate applications and databases.

The LongJump Business Application Platform provides a MVC (model-view-controller) architecture for building single-tenant, multi-tenant, on-premise and cloud-hosted applications. Developers can use Java, Asynchronous Java and XML (AJAX), Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), components, mashups and other familiar technology. Developers can design, build and customize applications using an ER-based data modeler, Eclipse Plug-In, REST application programming interface (API), AJAX controller API, REST API and localization and translation libraries. The LongJump PaaS also bundles web forms, Java function library, workflow designer, policy engine, notification engine, email Integration, calendar management, and a catalog of pre-built applications. It runs in a Linux environment with MySQL databases.

Cordys offers a multi-tenant application and cloud orchestration solution known as Cordys Process Factory. The Cordys PaaS platform supports creation of business applications as new situational or MashApps that combine data from Google Apps, web services, on-demand applications, on-premise applications and other sources. Process Factory supports data mashups, user interface mashups, and process mashups. The MashApp Composer can be used to assemble mashable components from a process library, widget repository and web services.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.