Tuesday, November 23, 2010

SharePoint 2010 Social Networking: Part 3 - Prerequisites


In this post on the SharePoint 2010 Social Computing feature-set, I am going to walk you through a number of prerequisites that have to be in place in your SharePoint environment before the social computing features will work at all.

(Note: This is the third post in this series. For the first post and a table of contents, go here.)


Before jumping into the details of the prerequisites, let me give you my master list of SharePoint 2010 Social Computing features that I plan to drill down into one by one during the next several posts:
  1. Tags
  2. Note Board
  3. Tag Profile pages
  4. Tags and Notes on My Site
  5. Tag search
  6. Tag and Notes bookmarklet
  7. Tag cloud web part
  8. Ratings
  9. Status Updates
  10. Activity Feed / Newsfeed
  11. Activity Feed preferences
  12. Recent Activities web part on My Site public profile
  13. Extensibility of Activity Feed
  14. Add Colleagues feature
  15. Keyword and Colleagues Suggestions feature
  16. “Interests” field on User Profile record
  17. “Ask Me About” field on User Profile record
  18. Integration with Outlook 2010
  19. People search
All of these features are part of the SharePoint 2010 Social Computing feature-set, and, as I pointed out in my first post in this series, are intended to help organizations do a better job at knowledge networking.

After months of searching the Internet, I have found a lot of articles on many of these features, but I haven’t found a comprehensive series of articles that really aims to go both broad and deep into the subject area. That’s my goal with this series of articles, and you can look forward to many more after this one that will step you through the details of all of the features in the list above.

SharePoint Server 2010 Prerequisites for Social Computing


As you might expect from the long list of features I show above, there is a lot going on “under the hood” in SharePoint Server 2010 to enable the social computing features. My experience is that it can be a challenge to get all of the prerequisites properly set up. It can also be a challenge to figure out what component is configured improperly when troubleshooting problems once the features have already been deployed to the users.

The infrastructure prerequisites generally fall into two categories: 1) Service Applications and 2) Timer Jobs. Therefore, I’ll break up my discussion into those two categories.

Service Applications Required


It is not so obvious at first glance what service applications are required to be configured and running to enable the social computing features in SharePoint 2010. There are two: 1) the Managed Metadata service application, and 2) the User Profile service application. Neither of them has the term “social” in their names, but nevertheless, you have to have both of them properly configured and running.

A couple of visual clues that there may be something wrong with one or both of these services is to take a look at any SharePoint page in your environment where you expect the social computing features to be available. You should see the icons for “I Like it” and “Tags and Notes”:

image

You should also see the “My Site” and “My Profile” menu items on the drop down menu for the user control on the page:

mcive0bh

If you don’t see all or some of these visual clues, then you need to proceed to Central Administration and determine if you have instances of the Managed Metadata service and the User Profile service running in your farm. (Note: SharePoint 2010 does not give the user an error message if these services are not running. It just doesn’t display the features that these services enable.)

It’s easy to see if you have instances of these services running in your SharePoint 2010 farm. Just go to Central Administration and navigate to the Manage Service Applications page to see if they have been provisioned and are running:

dipeqd10

21gyimlx

If you don’t have these service applications running in your SharePoint 2010 farm, then you will need to provision them by clicking on the New icon:

image

Explaining the configuration pages for these two services is beyond the scope of this article, but you should be able to easily find a number of articles that will walk you through the configuration steps.

Why does the Managed Metadata Service have to be running?


You might be wondering why it is necessary to have the Managed Metadata service application provisioned in order to use the social computing features? The reason is that the “tags” that users create when tagging pages, documents, list items, etc., get stored in the Keywords portion of the Term Store (which is the name of the central metadata repository that is maintained by the Managed Metadata service).

The Keywords portion of the Term Store is only half of the Managed Metadata repository. The other half is frequently referred to as the Taxonomy portion of the Term Store. The Taxonomy portion of the Term Store is hierarchical, while the Keywords portion is random. The master list of user tags gets stored randomly as they are created in the Keywords portion of the Term Store:

q352twyv

If the Managed Metadata service is not provisioned and running, users can’t use the social tagging features, because SharePoint 2010 has nowhere to maintain a master list of tags. One way to recognize that the Managed Metadata service is not provisioned/running properly is when your SharePoint site looks like this:

4n4cibpc

25gr1zux

If you see this behavior in your SharePoint 2010 site, the first place to look is in Central Administration to verify that the Managed Metadata service is running.

One more point before moving on to the User Profile service application. I have been referring to the Keywords portion of the Managed Metadata Term Store as the place that SharePoint 2010 stores the “master list” of user tags. This is an important concept to understand, and here is a little more detail.

Each time a user starts to tag an item in SharePoint 2010, the Keywords portion of the Term Store is queried in real time to see if suggestions can be made to the user about previous keywords that other users have used. If a keyword appears in the list of suggestions and the user deems it suitable, the user can use it to tag the item. If not, the user can add their own unique keyword to the Keywords store and then it will be available for SharePoint 2010 to use as a suggestion in the future for other users.

So, the Keywords portion of the Term Store only stores one instance of a given keyword. That instance may be used by many users and many times as they tag items throughout SharePoint. Therefore, the Keywords list in the Term Store is truly a master list of unique keywords.

What does the User Profile Service Application Have to Do with SharePoint 2010 Social Computing?


The short answer is, “just about everything”. All of the plumbing to make the social computing features work in SharePoint 2010 is built into the User Profile service application.

When you provision the User Profile service application, the SQL Server database gets created that is needed to store all of the social data. And, that database contains a long list of tables that are required to make social computing work:

qj0cy3ec

You can see from this screen shot that there are a number of tables that have names that that are fairly easy to figure out what feature of social computing they relate to. The “socialtag” tables relate to Tagging, the “socialcomments” tables relate to the Note Board, and the “socialratings” tables relate to the Ratings feature. So, this database needs to get created and that is one big part of what happens when you provision the User Profile service application in Central Administration.

The basic concepts of the User Profile service have been around since SharePoint Portal Server 2003. It was enhanced significantly in MOSS 2007. But, in both prior versions, the User Profile service’s primary scope and focus was to manage SharePoint’s User Profile database, synchronize it with a directory service (such as AD), and configure My Sites. In SharePoint 2010, the User Profile service continues to perform these roles in addition to providing the social computing infrastructure.

If you want to take advantage of the social computing features in SharePoint 2010, you will also need to properly configure the User Profile database and properly configure My Sites. The social computing features will not work without User Profiles and My Sites working.

If your User Profiles and My Sites are not set up and/or working properly, you will easily be able to tell by a user control that looks like this:

safuj1jb

As I mentioned earlier in the article, the user control looks like this when User Profiles and My Sites are set up and working:

mcive0bh

Timer Jobs Required


A fairly long list of timer jobs get provisioned and scheduled when you provision the User Profile service application in SharePoint 2010. Timer jobs have long been utilized in SharePoint Products and Technologies and it seems like with every new version of SharePoint, the list of timer jobs at least doubles. Timer jobs are processes that need to run on a schedule in the background to aggregate information, clean up data, and perform other process-oriented tasks.

In the case of SharePoint 2010, the User Profile service provisions 13 timer jobs:

image

(You can find the timer job list and definitions under Timer Job Definitions in the Monitoring section in SharePoint 2010 Central Administration).

Microsoft does not provide a lot of documentation on what each of the timer jobs do in SharePoint 2010. So, it is a little difficult to say which of these timer jobs is responsible for doing a particular task that is important to the proper functioning of a specific social computing feature. Nevertheless, it is safe to say that the following User Profile Timer Jobs need to be running on an appropriate schedule in order for social computing to work properly:
  • Social Data Maintenance Job
  • Social Rating Synchronization Job
  • My Site Suggestions Email Job
  • Activity Feed Job
  • Activity Feed Cleanup Job
In the previous paragraph, I mentioned the idea of “appropriate schedule”. It has been my experience that the out-of-the-box schedule for some of these timer jobs may not be appropriate in all situations. Certainly, in a demonstration/test scenario, the out-of-the-box schedules don’t work very well. Too much time is allowed between runs of some of the timer jobs to process the data and present the results back in the user interface on a timely basis. Even in some production environments, the out-of-the-box schedule may not produce fast enough results to suit the users.

 Here are the default schedules for the five social-oriented timer jobs I listed above:

image

image

image

image

image

You are free to change the schedule for any or all of these timer jobs that relate to social computing. In my demo/testing environments I routinely set them all to run every three minutes. Obviously, I would want to be very thoughtful in making changes to schedules in a production environment and consider the needs of my users and the server resource availability as well.

That’s it for the prerequisites for the SharePoint 2010 Social Computing features. By now, you should see that making all of these features work together and accomplish their purposes requires quite a lot of technical infrastructure “under-the-hood”. Hopefully, this article will help you make sure you have all of the right components provisioned from the start and/or help you troubleshoot problems that your users may surface as they are using the social computing features.

In my next post, I will drill into the details of what Tags are intended to be used for in SharePoint 2010 and exactly how they work.

1 comment:

Unknown said...

Great post - thanks, extremely useful!