Introduction
This article is intended to provide an understanding of how Windows Azure is integrated into Sharepoint. This does not have any source code as I am going to address them soon. I hope that this document will be helpful to programmers who want to know the relationship between Azure and Sharepoint.
I am working as Sharepoint Lead and Architect and was supposed to integrate Remote Blob Services into Sharepoint by storing the data onto NAS location. While researching all the resources, I found this Technology (Azure) has cutting edge over other technologies and which is costly at this moment but reduces most of the company pain in maintaining the software and hardware which is explained below. I am exploring this fully to see the capabilities of Azure in Sharepoint.
There is no code associated.
I have read a couple of MSDN documentations and Azure books available in the market.
Let's go directly to the point.
What is Cloud?
Cloud is the ability of using internet for computation, software development, data access & retrieval and data storage.
Goal
The goal of Cloud computing offerings is to offset the cost and overhead of building, deploying and hosting software specified below.
We have to build and manage both software development process and the applications and tools that help run business.
We have data that drives our business and workforce.
We have hardware that hosts the applications and data that we run—as well as people who manage that hardware.
The Range of Cloud Service Options
In the above image:
By Companies (Us)
By vendor (Azure provider)
What are IaaS, PaaS, SaaS?
Infrastructure as a service (IaaS)
We use the cloud to host our core infrastructure, such as hosting a virtual machine (VM)—in essence, the cloud becomes our operating system.
Platform as a service (PaaS)
We use the cloud for more than just virtualizing an environment, we also build and deploy code to that environment.
Software as a service (SaaS)
We use the cloud for software, example Microsoft Office 365.
What is Windows Azure?
Windows Azure is a flexible cloud-computing platform that allows to virtualize, manage data and services, and build cloud-based applications and websites.
It offers all the above 3 services in one place (IaaS, PaaS, SaaS).
Advantages
- Scalability
- Patch & OS management
- Uptime guarantee
Main Components of Azure
- Windows Azure which represents the core compute and management capabilities
- SQL Azure which represents the relational data storage for the cloud
- Azure Fabric which provides a set of middleware services and a way to build, connect, and manage services directly through the AppFabric service bus
SharePoint and Azure Integration
Office 365 includes a Cloud-hosted version of SharePoint called SharePoint Online.365 has limited functionality when compared to SharePoint Server 2010 but in future Microsoft is planning to build the same technology into Cloud whenever they release any software.
Windows Azure can be the port of entry for a lot of custom code. We can use Microsoft Silverlight as the client application (deployed as a SharePoint Web Part) to integrate WCF services deployed to Windows Azure or data deployed to Windows Azure/SQL Azure, and bring that into the SharePoint Online. We can further use the native SharePoint APIs (example, the SharePoint client object model) to then update data that is in the cloud hosted SharePoint lists.
Main pillars of Azure and SharePoint Integration
- Reach: Wider extensibility to our services and applications.
Example: Marketplace DataMarket to integrate data with any applications or deploy WCF services to Windows Azure as a custom service that we offer to customers or as a proxy to cloud-based data or third-party services.
- Resource: Represents data storage and management.
Example: Application solutions that take advantage of high-fidelity, community-driven videos; storing these video files on a file server can take up precious space—and we will run into the storage wall at some point. Extending the storage capabilities to Windows Azure enables us to either store data (that is the videos) outright or archive it. The data can then be integrated within the SharePoint collaborative experience.
- Reusability: Refers to creating a service layer that connects remote applications to our on-premises data and services.
Example: We can create a Windows Phone 7 application that reads and writes data to and from our on-premises SharePoint instance; we can use the Windows Azure AppFabric service bus to mediate this relationship.
The development possibilities are endless and some of them are below which a developer can look into.
Windows Azure Integration |
Approach to Integration |
SP COM |
Integrate cloud-based data with data from lists or document libraries by using the SharePoint client object model. |
BCS |
Model data from Windows Azure and/or build an external list to SQL Azure or WCF services deployed to Windows Azure. |
Silverlight |
Create a user interface against Windows Azure services or data by using Silverlight. Silverlight Create a Silverlight application that uses Windows Azure deployed as a Web Part—to either SharePoint on-premises or SharePoint Online. |
Office |
Consume data directly from Windows Azure or a BCS list exposing Windows Azure data through a custom task pane or ribbon or Office object model. |
Web Part |
Leverage services and data from Windows Azure. |
Open XML |
Manage Windows Azure data into a document by using an OpenXML Format. |
REST |
Use REST (or oData standards) to interact with Windows Azure data to Integrate with SharePoint. |
Office Server Services |
Use JavaScript and jQuery to manage data client-side in SharePoint. |
Workflow/Event Receivers |
Create a state or events that tie into Windows Azure service, workflows, or Data. |
LINQ |
Use for querying Windows Azure data objects. |
Search |
Federate search to include Windows Azure data. |
Some Possible Applications
- Integrating Windows Azure Marketplace DataMarket data with Excel documents, using Excel Services in SharePoint, and programmatically using Visual Web Parts and Silverlight application.
- Consuming SQL Azure data by using Business Connectivity Services (BCS) and an external list, through a Visual Web Part.
- Advanced SQL Azure web development with the Entity Data Model (EDM), Web Parts, Bing Maps, and Silverlight.
- Using Windows Azure BLOB storage to move files from your local system to Windows Azure, which you can then expose in SharePoint.
- Deploying WCF services to Windows Azure and then integrating the service capabilities with Web Parts and event receivers.
- Creating Business Intelligence solutions by using SQL Azure and SQL Server Reporting Services (SSRS), WCF service integration, and the Silverlight charting toolkit.
- Using the Windows Azure AppFabric service bus to create a service layer for remote application integration with on-premises SharePoint data.
- Advanced uses of WCF services that are deployed to Windows Azure and SharePoint specifically integrating BCS and WCF services and using the Excel Services JavaScript object model and jQuery to update client-side data.
- Securing your Windows Azure solution by using BCS security, Shared Access Permissions, Access Control Service, claims-based authentication, and WS-Trust.
History
- 18th July, 2011: Initial version