Synchronizing Friends and Activities

Applies to: Office 2007 | Outlook 2010 | SharePoint Server 2010

In this article
Cached Synchronization
On-Demand Synchronization
Hybrid Synchronization
Synchronization Intervals

The People Pane displays information about a person, who can be a sender or recipient of a Microsoft Outlook item you have selected. Whenever you select another person in the People Pane or another item in the Outlook explorer, or open an Outlook item in an inspector, the Outlook Social Connector (OSC) refreshes the People Pane. For the People Pane to display current information for the selected person, the OSC synchronizes such information through the OSC providers and some form of caching. This synchronization depends on the OSC providers that are installed on the client computer, the social networks that you have logged onto through their OSC providers, and the synchronization mode that each of the OSC providers for these social networks supports.

The OSC supports synchronizing friends, non-friends, and activities for friends and non-friends in different ways: cached synchronization, on-demand synchronization, and hybrid synchronization. The main difference among these modes of synchronization is where the OSC stores the data—whether it is in a folder in the user’s default Outlook store, or in memory on the user’s computer. In each case as noted in this topic, there is a default minimum time that the data remains in the folder or memory before the data is refreshed. In some cases, the minimum amount of time can be customized by group policy. For more information about group policies that control the behavior of the OSC, see How to manage the Outlook Social Connector by using Group Policy.

Note that if the person selected in the People Pane is not a member of the social network, the OSC does not display any person or activity information for that person in the People Pane.

Note

OSC 1.0 supports only cached synchronization of friends and activities.

Cached Synchronization

An OSC provider can store information for friends or friends’ activities on the social network in a specific folder on the user’s default Outlook store, and periodically update that cache after a specified length of time has expired. Caching information in a folder has the advantage of reducing traffic to the social network.

Cached Synchronization of Friends

If an OSC provider supports cached synchronization for friends, the OSC caches information for friends of the logged-on user on the social network. The information is cached in an Outlook contacts folder that’s specific to that social network in the user’s default Outlook store. The contacts folder name is based on the name of the social network, which the OSC obtains by using the ISocialProvider::SocialNetworkName property.

In cached synchronization, the OSC stores information for only the logged-on user’s friends on the social network. The OSC does not access information for non-friends.

The default interval for the OSC to refresh the contacts folder for friends’ information from the social network is once per day (or once per 1440 minutes). This refresh interval can also be set by group policy, as discussed at the beginning of this topic.

If an error occurs during a refresh, the OSC retries at an interval that is specified by the contactSyncRestartInterval element in the capabilities XML. This retry interval has a default value of 30 minutes, and can also be set by group policy.

When the Outlook user reselects an item in Outlook or reselects a person on the People Pane, the People Pane refreshes. If the cache refresh interval has not expired, the OSC goes to the cache to obtain any information for the user selected in the People Pane. This avoids the overhead of using OSC provider extensibility to access the social network. If the refresh interval has expired, the OSC calls the ISocialPerson::GetFriendsAndColleagues method to get current friends’ information for the logged-on user, and updates the cache in the contacts folder.

The OSC provider informs the OSC that it supports cached synchronization of friends by specifying the following elements in the capabilities XML:

  • getFriends = true

  • cacheFriends = true

  • dynamicContactsLookup = false

Cached Synchronization of Activities

If an OSC provider supports cached synchronization for activities, the OSC caches activities for a friend in a hidden Outlook folder in the Outlook user’s default store. The name of the hidden folder is News Feed.

The default refresh interval of activities in this folder is 60 minutes. This setting applies to all OSC providers on a client computer and can be customized only by group policy, as discussed at the beginning of this topic.

When the Outlook user reselects an item in Outlook or reselects a person on the People Pane, the People Pane refreshes. If the cache interval has not expired, the OSC goes to the cache to obtain any activities for the user selected in the People Pane. This avoids the overhead of using OSC provider extensibility (the ISocialProfile::GetActivitiesOfFriendsAndColleagues or ISocialPerson::GetActivities method) to access the social network. If the refresh interval has expired, the OSC calls ISocialProfile::GetActivitiesOfFriendsAndColleagues to get current friends’ activities for the logged-on user, and updates the cache in the News Feed folder.

The OSC provider informs the OSC that it supports cached synchronization of activities by specifying the following elements in the capabilities XML:

  • getActivities = true

  • cacheActivities = true

  • dynamicActivitiesLookupEx = false

On-Demand Synchronization

Whenever the user selects a different Outlook item, the OSC refreshes the People Pane for the sender of the item. The OSC also refreshes the People Pane when the user clicks a person in the People Pane. If an OSC provider supports on-demand synchronization of persons or activities, the OSC synchronizes with a cache in memory, and updates details, such as name, title, picture, and activity streams, on the People Pane. For on-demand synchronization, unlike cached synchronization, the OSC attempts to refresh the information for the person regardless of whether that person is a friend or non-friend of the logged-on user on the social network.

On-demand person (or activity) data is stored in memory only. The in-memory data is cleared when Outlook shuts down, or the Outlook user causes a refresh of the People Pane and the data has remained in memory for longer than the refresh interval. Note that the refresh from the social network is always initiated by a user refreshing the People Pane, (for example, by selecting a different user in the People Pane, or selecting a different item in Outlook explorer window). However, the reverse is not always true—not every refresh of the People Pane necessarily incurs a refresh from the social network. If the user refreshes the People Pane, and the person (or activity) data has remained in memory for longer than the refresh interval, the OSC calls ISocialSession2::GetPeopleDetails (or ISocialSession2::GetActivitiesEx) to update the information in memory from the social network. The allowed period for friend and non-friend information in memory is 24 hours, and for activities, 30 minutes.

One important difference between cached and on-demand synchronization is that on-demand synchronization can fetch person and activity information for both friends and non-friends on the network. If the selected person is a non-friend, the OSC refreshes information and activities for that person if either of the following requirements is met:

  • The person is a user on the social network and allows public viewing of profile and activity information.

  • The person is in the same network as the logged-on user on that social network (for example, in the same network for university alumni).

On-demand synchronization of persons and activities results in more calls to the provider from the OSC core engine. Social networks must be able to handle the increased bandwidth requirements of on-demand synchronization.

Specifying XML Elements for On-Demand Synchronization

The OSC provider informs the OSC that it supports on-demand synchronization of friends and non-friends by specifying the following elements in the capabilities XML:

  • getFriends = true

  • cacheFriends = false

  • dynamicContactsLookup = true

The OSC provider informs the OSC that it supports on-demand synchronization of activities by specifying the following elements in the capabilities XML:

  • getActivities = true

  • cacheActivities = false

  • dynamicActivitiesLookupEx = true

Hybrid Synchronization

An OSC provider can support hybrid synchronization of friends, non-friends, and their activities. This can optimize the calls between the OSC core engine and the OSC provider, the calls to the social network for on-demand synchronization of friends and their activities, and the currency of the friends and activities data. The minimum time the data can remain in a folder or memory, where applicable, is the same as the limits in cached or on-demand synchronization modes.

Hybrid Synchronization of Friends and Non-Friends

If an OSC provider supports hybrid synchronization of friends and non-friends, the OSC does the following:

  • The OSC stores information for friends of the logged-on user in the social network-specific contact folder.

  • The OSC stores information for non-friends of the logged-on user in memory.

The OSC provider informs the OSC that it supports hybrid synchronization of friends and non-friends by specifying the following elements in the capabilities XML:

  • getFriends = true

  • cacheFriends = true

  • dynamicContactsLookup = true

Hybrid Synchronization of Activities

If an OSC provider supports hybrid synchronization of activities, the OSC stores activities for friends of the logged-on user in the hidden News Feed folder in the Outlook user’s default store. The OSC stores activities for non-friends in memory.

The OSC provider informs the OSC that it supports hybrid synchronization of activities by specifying the following elements in the capabilities XML:

  • getActivities = true

  • cacheActivities = true

  • dynamicActivitiesLookupEx = true

Synchronization Intervals

The following table summarizes the synchronization intervals for friends and non-friends information between the corresponding cache (folder or memory) and the social network, depending on the supported synchronization mode. For hybrid synchronization mode, refer to the rows for cached mode for friends, and the row for on-demand mode for non-friends.

Synchronization mode for persons

Where refresh interval is set

Default minimum time before refresh

Group policy override

Cached

Set within OSC

1440 minutes (24 hours)

Windows registry value NetContactSyncInterval

Cached

contactSyncRestartInterval element in capabilities XML

30 minutes if contactSyncRestartInterval is not set

Windows registry value contactSyncRestartInterval

On-demand

Set within OSC

1440 minutes (24 hours)

Windows registry value OnlineSearchExpiryTime

The following table summarizes the synchronization intervals for activities of friends and non-friends between the corresponding cache (folder or memory) and the social network, depending on the supported synchronization modes. For hybrid synchronization mode, refer to the row for cached mode for friends’ activities, and the row for on-demand mode for non-friends’ activities.

Synchronization mode for activities

Where refresh interval is set

Default minimum time before refresh

Group policy override

Cached

Set within OSC

60 minutes

Windows registry value ActivitySyncInterval

On-demand

Set within OSC

30 minutes

Windows registry value OnlineSearchExpiryTime

The following information applies to the Windows registry values listed in the two tables:

  • Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\Outlook\SocialConnector

  • Value: DWORD value between 1 and 10080

See Also

Concepts

Capabilities XML Example

XML for Capabilities

Other Resources

Developing a Provider with the OSC XML Schema

How to manage the Outlook Social Connector by using Group Policy