Office 365 Video Portal - SharePoint Engineering

As technology evolves it is intriguing to analyze added levels of abstraction and innovative designs implemented in regards to architecture, engineering and programming decisions when deploying new features and solutions for real-world consumption. As architects, developers, engineers and programmers we are entrusted to implement design decisions that immediately impact business, the market and users.

Today I will explain the SharePoint engineering decisions in the scope of SharePoint Online that were implemented to deliver the NextGen Office 365 Video Portal. Let me take a moment to re-introduce the concept of Microsoft's NextGen Portals.

NextGen Portals are Microsoft's latest investment focused on customization. These out-of-the-box solutions seek to answer the needs of its enterprise customers in regards to modernizing the intranet, capitalizing on Bring Your Own Device (BYOD) and exploring the advantages of the cloud. These portals focus on people and content in the essence of discovery and insight to drive business processes and productivity ultimately creating business value. The family of NextGen portals offered by Microsoft includes Office 365 Video, Office Delve, Project InfoPedia and Custom portals. The portals will all be turnkey solutions delivering rich capabilities and leveraging the latest trends in social, mobile and machine learning. NextGen Portals are touted by Microsoft as intelligent, mobile, social and ready to go. The Office Graph engine drives the NextGen Portals and delivers personalized, relevant content to its users. Office 365 serves as the platform for Microsoft to deliver NextGen Portals to Office 365 tenants at no charge.

The NextGen Office 365 Video Portal, the first in the family of NextGen Portals, serves as an intranet solution to share videos, one of the most powerful forms of communication. It provides organizations with a secure, company-wide destination for posting, sharing and discovering video content. Think YouTube for the enterprise. The portal consists of two major components, the video portal (hub) and channels. The video portal (hub) is a high-level overview of all channels and videos inside your organization. Channels are where videos can be uploaded, categorized and shared with internal users. Multiple channels can reside within the video portal (hub). The architecture implementation for Office 365 Video Portal consists of SharePoint Online and Office 365 and the engine is powered by Azure Media Services and Office Graph. The portal initially rolled out to Microsoft's First Release customers in November 2014 and has since been deployed worldwide as of quarter two, 2015.


Now, let's explain the SharePoint engineering implementation bringing the NextGen Office 365 Video Portals to fruition. At the foundation of the technology stack, the video portal utilizes SharePoint site collections as a means for content storage. A site collection consists of a top-level site and a host of child sites, all connected to content database(s). In essence, it is a logical container for a collection of websites. As shown in the picture below, one site collection will be dedicated to the server as the hub site collection. Each tenant defaults to one hub site collection, think of it as the landing page for your organization. The second site collection will be dedicated to the server as the content site collection. Each tenancy will leverage the portal's rich UI to create video channels on demand. As an example, let's say our organization creates a channel for videos related to SharePoint Server and another channel for videos related to ASP.NET. In the background, two separate site collections will be provisioned on demand and dedicated to serve as content storage for our SharePoint related videos and ASP.NET related videos. The content site collection has the ability to scale up to 500 site collections dedicated to channels within one hub. To handle scalability concerns, content databases are provisioned on demand, this feature has been a prime focus for Microsoft. Utilizing site collections as the container for storage within the Office 365 Video Portal harnesses the evolution of SharePoint site collections becoming the tried and trusted container model for SharePoint Server.

The next SharePoint engineering implementation capitalizes on the use of document libraries. A Document Library stores information about files and documents that are uploaded to the SharePoint Server and closely resembles a SharePoint list. Within your Office 365 tenancy, four scenarios stimulate the implementation of a Document Library. Our first Document Library is utilized to store page data. This page data is stored as JSON BLOB list items. Our second Document Library is utilized to store images. Azure Media Services generates a thumbnail during the transcoding of uploaded videos. This library will be utilized to store image assets related to an organization. Our third Document Library is utilized to store the video content itself uploaded by a user within an organization. Azure Media Services will house a backup copy of the video as well. Our last Document Library is utilized to store all the configuration settings pertaining to an organization. These settings include user data configuration settings and video channel spotlight settings.

The next SharePoint engineering implementation harnesses the power of SharePoint timer jobs. A timer job performs infrastructure tasks on behalf of the Windows SharePoint timer service (SPTimerv4). Timer jobs contain a definition of a service to run and specify how frequently the service is begun. In regards to the video portal, timer jobs are responsible for allowing video content between SharePoint Online and Azure Media Services to always be in sync. Let's look at a typical scenario. A user in an organization uploads a video to the portal, a timer job is initiated behind the scenes directing SharePoint to send the newly uploaded video content to Azure Media Services where it is further transcoded. After Azure Media Services transcodes the video content, a thumbnail of the video is directed to the appropriate Document Library within a site collection. Also, a pointer is returned to SharePoint to store the metadata in a Document Library within a site collection. The original video resides in another SharePoint Document Library within the Office 365 tenancy. Another scenario to consider is a user within an organization deletes a video from the portal. In this case, SharePoint will initiate another timer job to delete the pointer from Azure Media Services.

The next SharePoint engineering implementation leverages the SharePoint REST API Model. The SharePoint REST API Model was introduced in SharePoint Server 2013, released in conjunction with the SharePoint App Model. The REST API for SharePoint opens the SharePoint development platform to standard web technologies, languages and new innovation to the Microsoft stack. The SharePoint API Model is fundamental to the technology stack of NextGen Portals. RESTful end points call into the SharePoint object model, think SPWeb for my fellow SharePoint developers out there and call into Windows Azure, think AzureProvider PowerShell object. Microsoft at the moment has full control and maintains the REST API for the Office 365 Video Portal, allowing organizations to have peace of mind that Microsoft is handling their IT needs. Empowering users with their respective organizations to focus on content curation and tasks specific to their business. The Office 365 Video REST API is in preview mode as of this writing. Once released it will allow developers the ability to discover and interact with videos residing in their Video Portal. The Video REST API will interact with two main types of objects, channels and videos.

Finally, the last SharePoint engineering implementation deals with the Video Portal consuming the SharePoint Permission Model to handle user management and user authorization. Permission levels are a collection of permissions that allow users and groups of users to perform a set of related tasks. Permission levels are defined at the site collection level. SharePoint Server utilizes the three distinct permission groups Owners, Members and Visitors. Out-of-the-box Office 365 Video Portal provides an organization with the three simple permission groups Owners, Editors and Visitors. As with SharePoint Server, an organization will have the ability to generate custom permission groups coupled with custom permission levels.

The customization paradigm shift by Microsoft is truly remarkable. The era of mass customization is upon us. The customer is King/Queen. Listen to them or watch your business value deteriorate. I hope this information is useful to our C# Corner community.