As cloud development evolves and more organizations choose to deploy services to the cloud, it will become more commonplace to call WCF services hosted in Windows Azure. In this pattern, users access a jQuery-based or Silverlight application deployed to a SPO site. The jQuery-based or Silverlight application calls out to WCF services running in Windows Azure. Figure 2 illustrates this pattern.

Sometimes LOB applications must access on-premises services. In such a scenario, you can use the Windows Azure AppFabric Service Bus to call on-premises services. Using the AppFabric Service Bus to forward requests to on-premises services has several benefits, including:
- The endpoint exposed by the AppFabric Service Bus remains consistent, even when the implementation of an on-premises service is changed or an on-premises service is moved to another server or data center.
- The AppFabric Service Bus makes exposing on-premises services to the Internet easy to do and reduces the amount of networking and firewall configuration associated with such a task.
In this pattern, users access a jQuery-based or Silverlight application deployed to a SPO site. The jQuery-based or Silverlight application calls out to the AppFabric Service Bus running in Windows Azure. The AppFabric Service Bus relays the call to the on-premises service. Figure 3 illustrates this pattern.

In addition to accessing services from SPO sites, you’ll probably need to access cloud-based data sources to support your SPO solutions. Many cloud-based data sources already exist, including SQL Azure and the Windows Azure Marketplace DataMarket (formerly code-named Dallas).
In the pattern to access cloud-based data sources, users access a jQuery-based or Silverlight application deployed to a SPO site. The jQuery-based or Silverlight application calls out to SQL Azure, Windows Azure Marketplace DataMarket, or another cloud-based data source. Figure 4 illustrates this pattern.

Perhaps the most interesting pattern of all is replicating SharePoint’s timer job functionality using nothing but cloud-based components. In this pattern, Windows Azure worker roles monitor data stored in cloud-based data sources. The worker roles then react accordingly and create, update, and delete data stored in cloud-based data sources. Users access jQuery-based or Silverlight applications deployed to a SPO site that interacts with the data the worker roles manipulate. Figure 5 illustrates this pattern.

Deployment
Developing cloud-based components is most easily done in a local development environment, as previously mentioned. Windows Azure WCF Services, Windows Azure worker roles, and SQL Azure can all be run locally on a development machine. Running the cloud-based components locally lets you easily debug and fine-tune them. When you’re ready to deploy the cloud-based components, simply publish the Windows Azure components to the cloud.
Just like a traditional on-premises scenario, you should create a development/test site collection to validate that your code works. To test your SPO components, first set up a development/test site collection within a SPO customer tenancy. SPO sites are hosted in a multi-tenancy environment. A customer tenancy is a given customer’s site collections within the multi-tenant hosted environment.) After the development/test site collection is set up, deploy your SPO components. This will allow you to iron out any kinks related to authentication, authorization, and interacting with Windows Azure or other cloud-based services and components. After the testing phase is complete, simply create the production site collection within the SPO customer tenancy and deploy your SPO components.
To the Cloud!
As you can see, SPO provides a wide variety of components and integration points with cloud resources that make it possible to create robust LOB applications in the cloud. Cloud-based solutions are gaining momentum every day, as more businesses move their LOB applications to hosted environments. Don’t be left behind. Sign up for an Azure developer account and start building SPO solutions. The sky’s the limit!