One of our recent clients had a very interesting problem – they are a multi-national corporation with offices in very remote regions of the world, and they needed a way to connect all employees in these remote regions with a unified SharePoint Intranet and Collaboration experience. Most remote regions are far from large cities and have poor network connections, and each region has its own SharePoint farm. How do we make every employee feel like they are part of the same company, using SharePoint? It was a challenge we took head on.
Our client’s main requirements were:
- Global Unified Search
- A single search page that all employees could use to search across all SharePoint farms across the globe.
- OneDrives for Everyone
- Every employee should have OneDrive, but it must be local to their region for optimal performance.
- Unified People Search
- Every employee should be able to edit their own user profile locally in their own region’s SharePoint farm for optimal performance, but a single people search should be available that searches across all User Profiles around the globe.
- Synchronized Content Types and Managed Metadata
- To enforce the ‘unified’ feel across all SharePoint farms, content types and managed metadata need to be the same in all farms around the world, and maintained in a single central place.
Global Unified Search
Our client wanted a way for employees to search for content across all SharePoint farms around the world with one single search box. This requirement was met using a search page hosted in the “central farm” of Toronto, which used SharePoint Search’s Remote Result Sources capability.
Every SharePoint farm around the world was set up with a local Search Service Application that would crawl the local results. This allowed local sites of that farm to quickly run local searches without having to open the Toronto/“central” global search site.
Every remote farm published its Search Service Application. The Toronto farm was set up to consume all the remote Search Service Applications. The Toronto farm was then set up with a Remote Result Source in its local Search Service Application for each remote farm whose Search it was consuming.
The final result was that when a search was run from the Toronto Global Search site, the search query was sent to all results sources (one in Toronto, and one in each remote farm). The query ran on all the farms’ Search Service Applications. The results from each result source (i.e. farm) were sent back to Toronto and displayed in a custom-coded tabbed view using OOTB Search Results web parts, as shown in the wireframe below.
Below is a diagram summarizing the connections between the farms in order to make global / centralized search work.
OneDrives for Everyone
Every employee was given OneDrive storage, but due to the network latency to the central farm in Toronto each SharePoint farm around the world had to house the OneDrive content of the employees of that region, locally.
A User Profile Service Application was created in every farm. MySites were provisioned in every farm for the employees of that farm/region, on a self-creation basis. MySites host the OneDrives.
The tricky part was: if an employee of Russia is accessing a SharePoint site in Toronto, when this employee clicks on the ‘OneDrive’ link in the top-right of the page, this employee should be redirected to their own OneDrive account in their own Russian SharePoint farm.
To meet this requirement we used Trusted MySite Host locations and audiences.
Every SharePoint farm had identical audiences created in it; these audiences dictated which user account was linked to which SharePoint farm MySite URL. When a user clicks on the ‘OneDrive’ link in the top-right, regardless of which farm they are currently browsing, SharePoint runs through the Trusted MySite Host Location audiences and redirects the user to their local SharePoint farm’s OneDrive.
Unified People Search
The requirement was that a single search page would be able to search all user profiles around the globe, and it would search the most up-to-date profile information.
As mentioned, every region has its own User Profile Service Application in order to host OneDrives locally. Every user in every region has the capability to edit their own user profile properties, such as bio, skills, etc. When a user edits his or her User Profile they edit it locally only. This makes it hard for a single search page to show the most up-to-date user profile information across the globe.
To meet this requirement, we set up User Profile Replication. Our client had a single Active Directory that all User Profile Service Applications around the globe synchronized with. The unified People Search site was hosted in the “central” farm in Toronto. User Profile Replication was set up to copy SharePoint User Profiles from all the remote farms into the Toronto farm. The People Search in Toronto then queried User Profiles from Toronto only – all the user profiles were in Toronto and they were up-to-date with the latest properties that users had modified.
Synchronized Content Types and Managed Metadata
To meet this requirement we used the Content Type Hub feature of SharePoint. The Managed Metadata Service Application was installed in the Toronto (“central”) farm. This Service Application was also set up as a Content Type Hub. It contained the terms and content types that were to be used by all SharePoint farms/sites across the globe. The service application was published and all other farms around the world were made to consume it; in this way the same content types and managed metadata terms were made available in all SharePoint farms around the world.
By having all SharePoint farms consume the same central Content Type Hub, it also made sure that OOTB search refiners of all documents around the world were based on the same content type GUIDs and term set GUIDs, which gave a very pleasant search experience.
If you would like to read more on this from Microsoft, check out this case study: https://technet.microsoft.com/en-us/library/hh206325.aspx#section3