Understanding the Availability Service

Microsoft Exchange Server 2007 will reach end of support on April 11, 2017. To stay supported, you will need to upgrade. For more information, see Resources to help you upgrade your Office 2007 servers and clients.

 

Applies to: Exchange Server 2007, Exchange Server 2007 SP1, Exchange Server 2007 SP2, Exchange Server 2007 SP3

The Microsoft Exchange Server 2007 Availability service improves the calendaring and meeting scheduling experience of information workers by providing secure, consistent, and up-to-date free/busy information to computers that are running Microsoft Office Outlook 2007. Outlook 2007 uses the Autodiscover service to obtain the URL of the Availability service. The Autodiscover service resembles the Domain Name System (DNS) Web service for Exchange 2007 Web services. Essentially, the Autodiscover service helps Outlook 2007 locate various Web services, such as the Unified Messaging (UM), Offline Address Book (OAB), and Availability services.

Note

If you have Outlook 2007 clients that are running on Microsoft Exchange Server 2003 mailboxes, Outlook 2007 will use public folders for the free/busy information.

Overview

The architecture of the free/busy information has changed in Exchange 2007. In legacy exchange versions, Public folders are used to publish and retrieve the free/busy information. The end-user free/busy data was published to a dedicated public folder that is named SCHEDULE + FREE BUSY. This folder contained a separate folder for each administrative group that existed within the organization. A user’s client would publish free/busy data to one of the subfolders, based on the user’s legacyExchangeDN. Client applications such as Outlook and Microsoft Outlook Web Access would then use the SCHEDULE + FREE BUSY public folders for availability lookup and for scheduling processes.

Outlook Web Access does not publish free/busy data directly to the public folder store. A free/busy publishing agent named MadFB publishes the free/busy messages for Outlook Web Access, and then deletes duplicate free/busy messages. Instead of publishing at preset intervals in the same manner as Outlook, Outlook Web Access publishes free/busy data when a user saves a new appointment, deletes an appointment, or saves changes to an appointment's start time or end time.

In Exchange 2007, the free/busy information is stored locally in relation to the mailbox. Also, the Availability Service is used to retrieve this information.

Exchange 2007 helps you provide more secure, consistent, and up-to-date free/busy information to information workers. The Availability Service (AS) functionality is provided by the Client Access Server role. This functionality lets an Outlook 2007 or Outlook Web Access user/identity whose mailbox resides on Exchange 2007 to look up real-time calendar information for other identities. It also enables you to grant granular, per-user access to free/busy data.

Improvements Over Exchange 2003 Free/Busy Data

Table 1 lists the improvements to free/busy functionality that Exchange 2007 provides over Exchange 2003.

Table 1   Free/busy improvements

Free/busy component Outlook 2003 running on Exchange 2003 Outlook 2007 running on Exchange 2007

Up-to-date information

No expectancy that free/busy information is up to date. Multiple factors cause free/busy information to be outdated:

  • By default, Outlook only updates free/busy information every 45 minutes. Also, because of bandwidth and scalability issues, you cannot decrease this interval.

  • Latencies result from public folder replication.

  • Delays in cross-forest scenarios when you use the Microsoft Exchange Inter-Organization Replication tool to replicate free/busy information across forests.

Free/busy information is consistently up to date within a small time period (60 seconds) on all the data retrieved.

Granularity

The four meeting states (Free, Tentative, Busy, and Out-Of-Office) are available in one stream. To retrieve appointment details, additional MAPI calls are required.

By default, free/busy information displays the start times and the end times for individual appointments. Additional calendar properties (such as Subject and Location) can be accessed through the Availability service.

Security

For any authenticated user, all free/busy data is available in a public folder. Therefore, any authenticated user can delete, modify, or publish another user's free/busy information.

Free/busy information provides increased security, similar to general calendar sharing. In compliance with company policy, you can specify the quantity of free/busy information to share together with a specific user. Because the Availability service reads directly from a user's mailbox, a user cannot modify or publish another user's free/busy information.

Publishing frequency

Office Outlook 2003 has a 45-minute default publishing interval.

No publishing is required in an Exchange 2007 and Outlook 2007 organization.

Understanding the Availability Service.

The Exchange 2007 calendar functionality for the Free/Busy data, Meeting Suggestions, and Out of Office (OOF) Assistant subcomponents, depends on the Availability Web Service. The Availability service provides a Web service interface to its functionality. The Web service exposes this functionality to clients by using open standards. Clients such as Outlook 2007 use the Web service to obtain up-to-date free/busy information. This including OOF and working hours.

Providing consistent and up-to-date free/busy information to information workers is done by using a new Web service that is named Exchange Web Service (EWS). This service is implemented as an ASP.NET Web Service that accepts HTTP/SOAP requests. It converts functionalities that are offered by its subcomponents into an API that consists of a set of Web methods. This includes Free/Busy, OOF, and Meeting Suggestions. This Availability Service (AS) API functionality is provided by the Client Access Server role. This functionality enables an Outlook 2007 or Outlook Web Access 2007 user or identity whose mailbox resides on Exchange 2007 to look up real-time calendar information for other identities. It also enables you to grant granular, per-user access to free/busy data.

Components of Availability Service:

  • XML Web Service

  • SOAP (Simple Object Access Protocol)

  • WSDL (Web Service Description Language)

  • IIS:

    • Exchange Web Services (EWS) is implemented on Exchange 2007 servers that hold the role of Client Access Server (CAS). The Exchange Web Services virtual directory is created under the default Web site during setup.

    • EWS runs in an application pool that is named MSExchangeServicesAppPool. EWS operates as an instance of the worker process executable, W3wp.exe

  • Availability API

    • The Web service is implemented as an ASP.NET Web service that accepts HTTP/SOAP requests. The service converts functionalities that are offered by such subcomponents as Free/Busy, OOF, and Meeting Suggestions into the Availability Service API. This API consists of a set of Web methods.

    • The Availability service runs in the context of Local System, which appears as DOMAIN\<computer name>$ on the network and NT AUTHORITY\System locally. Each Client Access Server Network Service account is granted permission to access mailboxes in all mailbox servers in the site. These accounts join the Exchange Servers security group. Permissions and group membership are granted during Client Access Server setup.

  • XSO/MAPI.NET

  • Calendar Assistant:

    • The Calendar Assistant functionality in Exchange 2007 works together with support from the Availability Service to provide a methodology by which end-users can view up-to-date dynamic availability information in real-time. The Calendar Assistant functionality enables Exchange Server to put meeting requests into a tentative state for mailboxes without the end-user having to triage the meeting request. This functionality also enables you to update meeting requests when such information location or attendees changes.

Dependencies

The Availability Service depends on Active Directory, DNS, and network connectivity in the same manner as other Exchange Server 2007 components. However, the following considerations are specific to the Availability Service:

  • Mailbox Server Role: A user must have a mailbox on an Exchange Server 2007 mailbox server to take advantage of the Availability Service.

  • CAS Role Deployment: Generally, CAS servers should be the first servers deployed in any environment. CAS provides access to mailboxes on Microsoft Exchange 2000 Server or Exchange 2003. However, the Availability Service is used only by Outlook 2007 and Outlook Web Access 2007 clients who are logged into Exchange 2007 mailboxes.

    Important

    If the logged-in mailbox is located on Exchange 2003, Outlook 2007 fails back to use the Free/Busy public folders to retrieve availability information for that client. Therefore, you should maintain free/busy public folders until all clients and mailboxes have been migrated.

  • CAS in Every Active Directory Site: You should have a CAS server in every Active Directory site where Exchange 2007 mailbox servers reside. The CAS server can also be deployed in other Active Directory sites where you want CAS functionality, such as proxying or redirection.

  • Autodiscover Service: If you use Outlook 2007, the AutoDiscover Service must be published and working correctly. Otherwise, the Availability Service does not work for those clients. This is because the AutoDiscover Service returns the Availability Service URL within the XML file that contains the AutoConfiguration details.

You must keep CAS servers up to date in relation to mailbox servers by consistently installing the latest service packs and hotfixes. There are many known issues that affect mailbox servers that have newer binaries than the CAS servers. You can avoid these compatibility issues by deploying Exchange 2007 CAS first, and then applying appropriate change control and update management policies for future updates. These policies should also be governed by formal release plans.

The following figure shows the process flow for the Availability service.

Availabililty Service Process Flow

Mailbox Evaluation Logic

In a free/busy query, the Availability service must determine the retrieval method that is appropriate for each attendee according to mailbox type before the service can retrieve data for attendees.

The following list describes how each attendee who is included in a free/busy request is processed by the Availability service:

  • The Availability service uses Active Directory to resolve all e-mail addresses of attendees in the availability request to objects in Active Directory. The resulting Active Directory object could be a contact, a mailbox enabled user, or a non-user object. If the object is mail enabled, it could be one of the following:

  • A mailbox that is hosted on an Exchange 2007 server in the current Active Directory site

  • A mailbox that is hosted on an Exchange 2007 server in another Active Directory site

  • A mailbox that is hosted on a legacy Exchange server (Exchange 2000 or Exchange 2003)

  • A mailbox that is hosted on an Exchange server in a different forest

    Evaluation is performed on every object to determine the method that is used to retrieve the requested free/busy data. Each object is partitioned by the retrieval type so that requests for that particular object type are processed together. For example, if a free/busy information request for an Exchange 2007 mailbox has to be proxied to another site, the Availability service includes all other Exchange 2007 mailbox objects that are to be proxied to that site in the same proxied request. All object evaluations and partitioning is completed before the required retrieval method is actually processed.

    If the availability request from the client includes a Distribution Group query, the Availability service expands the distribution group into its individual members. This expansion is made up to two levels deep of nesting, but only up to the first one hundred total members. The Availability service then evaluates every group member. The service ignores all group members after the first one hundred. Therefore, those members are not evaluated. The availability information that is returned for a Distribution Group query is always an aggregate view (merged) of free/busy information for the members of the group that are queried.

  • If the recipient type of the object is a custom recipient (mail-enabled contact), the request is proxied to an Availability service in the target forest if the request is defined. Other custom recipients in the request are then partitioned into groups so that each group belongs to one remote forest.

    Next, the Availability service uses Autodiscover to find the Client Access Server (CAS) that can best service the availability request for every target forest.

Finding Availability Service by using Autodiscover

Outlook 2007 queries the Autodiscover Service for user and service configuration during initial configuration and at every startup. The Autodiscover service is a Web service on Exchange CAS servers that provide configuration and service information such as Uniform Resource Locators (URLs) to the Availability service.

For more information about the Exchange 2007 Autodiscover service, see the Exchange 2007 Autodiscover Service white paper.

The following list of conditions and reactions describe possible scenarios for the Autodiscover service:

  • If the e-mail address represents a mailbox enabled user in the local forest, the Availability service determines which kind of retrieval is appropriate for the requested mailbox.

  • If the mailbox version is not Exchange 2007, the Availability service uses Web DAV to retrieve merged free/busy information directly from the appropriate Free/Busy system folder for the Administrative Group that is determined by the user object’s legacyExchangeDN attribute. Other legacy mailboxes in the request are then partitioned into groups so that each group belongs to one administrative group.

  • If the mailbox is hosted on an Exchange 2007 mailbox server, the Availability service uses Service Discovery to determine which CAS server can best handle the availability request. Service Discovery code is used by internal consumer applications such as the Availability service on Client Access Servers to discover services that are offered by other Exchange servers.

  • If the mailbox belongs to a mailbox server on another site, the Availability service proxies the request to an Availability service on that site. Other Exchange 2007 mailboxes in the request are then partitioned into groups so that each group belongs to one Active Directory site.

  • If the mailbox is hosted on a mailbox server in the current site, the Availability service uses Exchange server objects (XSO) to open the mailbox and to query the calendar to obtain the requested free/busy data. XSO is the managed API for reading and manipulating messages from the information store.

    For more information, see the Exchange Server Team Blog article, What does Exchange 2007 Availability Service do?

Out-of-Office Information

The Availability service also provides access to out-of-office messages for out-of-office appointments and global out-of-office information.

Information workers use the Out of Office feature in Outlook to alert other workers when they are unavailable to respond to e-mail messages. To improve out-of-office management, the Exchange 2007 implementation of the Out of Office feature makes configuring and managing out-of-office tasks easier and more flexible for both information workers and administrators.

For more information about the Out of Office feature, see Managing the Out of Office Feature.

Performance

You can use the Performance Monitor tool to automatically collect performance data from local or remote computers that are running Exchange 2007. You can define start and stop times for automatic log generation, manage multiple logging sessions from a single console window, and set an alert on a computer that enables a message to be sent or a log to be started when your criteria are met.

For information about how to use Performance Monitor, see Windows Server 2003 Monitoring Features and Tools in the Microsoft Exchange Service Management Guide.

You can use the following performance counters to collect information about the Availability service:

  • Number of availability requests serviced/second

  • Number of availability requests dropped/second

  • Number of mailboxes queried/second

  • Number of availability service referrals/second

  • Number of requests answered at F/B level/second

  • Number of requests answered at detailed level/second

  • Number of unique user’s mailboxes opened

Distribution Group Handling

In Exchange 2007, distribution group expansion is moved to the Exchange 2007 server. The primary benefit of moving distribution group expansion to Exchange 2007 is to provide consistent behavior for any Availability service consumer. In earlier versions of Exchange, a distribution group's free/busy data can expand up to a maximum of 100 members. If a distribution group contains more than 100 members, the free/busy data for those members is displayed as busy when you expand it.

In Exchange 2007, the following improvements have been made to the handling of distribution groups:

  • The Availability service expands a distribution group up to only two-levels deep, regardless of the total number of distribution group members.

  • A distribution group's free/busy data can expand up to a maximum of one hundred members.

Availability Service API

The Availability service is part of the Exchange 2007 programming interface. It is available as a public Web service to enable developers to write third-party tools for integration.

For more information about how to develop with Exchange 2007 Web services, see Development: Overview.

For More Information

For more information about the Autodiscover service, see the following topics:

For more information about how to provide secure Web communications on the Internet or intranet, see Creating a Certificate or Certificate Request for TLS.