Не знаю, как вы, а когда я думаю о роли Client Access
Server в Exchange 2007, я немедленно вспоминаю о Outlook Web
Access, Outlook Anywhere, ActiveSync и других non-MAPI формах
подключаемости к почтовому серверу. Однако роль Client Access
Server является домом для других важных сервисов, таких как
Autodiscover и Availability. Это жизненно важные сервисы для
инфраструктуры Exchange 2007, и в этой статье мы детально
ознакомимся с сервисом Availability и его основной
задачей.
Что такое служба Availability?
Служба availability в Exchange 2007 в основном связана с
тем, как пользователи получают доступ к информации
планировщика (Free/Busy - свободен/занят) других
пользователей. Прежде чем мы перейдем к деталям этой службы,
важно понять, как информация свободен/занят хранится, и как к
ней открывается доступ в Exchange 2000 и Exchange 2003, чтобы
можно было сравнивать работу этого процесса в старых версиях,
и, что более важно, какие усовершенствования имеют место в
Exchange 2007. В предыдущих версиях Exchange, папка сайта
существует с именем Schedule+ Free/Busy, в которой
хранится информация планировщика для каждого пользователя. Эту
папку можно увидеть в Exchange System Manager, просмотрев
системные папки, а не общие. На рисунке 1 приведен пример
системных папок Schedule+ Free/Busy, которые открыты в
Exchange System Manager.
Рисунок 1: Системная папка Schedule+
Free/Busy
Вы заметите, что есть две системные папки, по одной папке
для каждой административной группы. По умолчанию, Outlook
периодически публикует информацию планировщика в эти системные
папки, которая потом позволяет клиентам Outlook других
пользователей запрашивать данные для различных назначений. На
небольших системах это обычно хорошо, а вот в системах больших
размеров использование общих папок хранения такой информации
может вызвать определенные проблемы. Например, всегда
существует вероятность недостатка свежей информации
планировщика из-за задержек репликации общих папок, или, в
худшем случае, сбой процесса репликации общих папок по каким
бы то ни было причинам. Однако основная проблема такого
подхода заключается в будущем общих папок в Exchange. За
последние пару лет вы, возможно, слышали или читали о планах
Microsoft убрать общие папки из будущих версий Exchange, в
результате потребуется новый механизм для работы с запросами
информации планировщика. Именно здесь приходит на помощь
служба availability в Exchange 2007.
Более удачный метод Free/Busy
Служба availability в Exchange 2007 представляет собой один
из новых веб-сервисов. Говоря вкратце, веб-сервисы Exchange
2007 позволяют приложениям получать доступ к содержимому
почтовых ящиков через HTTP, поэтому очевидно, что развитие
приложений нацелено на эти сервисы Exchange 2007. Информация
планировщика (free/busy information) для пользователей
Exchange 2007 теперь будет храниться непосредственно в
почтовом ящике, поэтому доступ к ней можно получить с помощью
веб-сервисов, как и к службе Availability. Как мы увидим
далее, этот новый метод полагается на Outlook 2007 и Exchange
2007, поэтому не всегда можно будет достичь желаемого
результата с помощью этого метода, если в сети есть Outlook
2003 и Exchange 2003. Outlook 2007 определяет службу
Availability посредством сервиса Autodiscover.
В этой статье мы не будем останавливаться на сервисе
Autodiscover, поскольку этот сервис сам по себе представляет
большую отдельную тему для разговора. Однако важно понять, что
собой представляет сервис Autodiscover, если вы этого еще не
поняли. Вкратце, сервис Autodiscover дает клиентам Outlook
2007 доступ к определенным параметрам Exchange 2007, таким как
служба Availability, как уже было отмечено, плюс другим общим
сервисам, таким как Offline Address Book (OAB), а также к
менее общим службам, например Unified Messaging (UM). По сути,
Outlook 2007 делает запрос на виртуальную директорию под
названием Autodiscover, которая находится на Client Access
Server. Этот сервис Autodiscover возвращает клиенту множество
различных частей информации, некоторые из которых представляют
собой URL для сервисов и служб, например службы
Availability.
Проблемы версии
Различные методы получения информации планировщика
используются, когда сеть состоит из Outlook 2003 и Outlook
2007, а также Exchange 2003 и Exchange 2007. Например, когда
Outlook 2007 используется в связке с Exchange 2007,
усовершенствованием является тот факт, что информацию
планировщика теперь можно получить непосредственно из нужного
почтового ящика Exchange 2007, а не из системной папки
Schedule+ Free/Busy. Таким образом, информация планировщика
будет более свежей, чем при использовании традиционного
метода. Посмотрите на рисунок 2, расположенный ниже, там
пользователь Outlook 2007 с почтовым ящиком Exchange 2007
запрашивает информацию планировщика у другого пользователя
Exchange 2007. В этом случае, соединение Outlook создано с
сервисом Availability, запущенным на сервере Client Access
Server, который в свою очередь определяет, какой почтовый ящик
является целевым ящиком Exchange 2007. Затем осуществляется
соединение Remote Procedure Call (RPC) с почтовым сервером, и
результаты возвращаются на сервер Client Access Server, прежде
чем будут направлены непосредственно пользователю.
Рисунок 2:Пользователь Outlook 2007 запрашивает
информацию Exchange 2007 Free/Busy
На рисунке 2 показана ситуация, в которой сервер Client
Access Server и почтовый сервер находятся на одном сайте
Active Directory. Что если запрос информации планировщика
делается пользователем, чей почтовый ящик находится на
почтовом сервере Exchange 2007, расположенном на сайте другой
Active Directory? В этом случае, сервер Client Access Server
на сайте Active Directory пользователя, который посылает
запрос, направит этот запрос на сервер Client Access Server
расположенный на сайте Active Directory целевого пользователя,
к которому направлен запрос. Результаты вернутся на сервер
Client Access Server пользователя, отправившего запрос, и в
итоге будут переданы этому пользователю.
Есть еще один важный момент, который следует учитывать. Что
если запрос информации планировщика был одновременно направлен
и на другой почтовый ящик, а этот почтовый ящик все еще
находился на сервере Exchange 2003? Эта ситуация будет
встречаться довольно часто во время любого перехода с Exchange
2003 на Exchange 2007. В этих случаях, информация планировщика
для пользователя Exchange 2003 будет храниться в системной
папке Schedule+ Free/Busy, как уже было показано ранее. В
результате службе Availability придется получить
соответствующую информацию из этой папки. Она делает это путем
отправки HTTP запросов в /Общую виртуальную директорию
на целевом почтовом сервере Exchange 2003. Этот процесс
отражен на рисунке 3. Как только информация была получена с
серверов Exchange 2007 и Exchange 2003, служба Availability
объединяет результаты и возвращает их пользователю Outlook
2007.
Рисунок 3: Пользователь Outlook 2007 запрашивает
информацию Exchange 2003 и Exchange 2007 Free/Busy
Итак, мы рассмотрели, что происходит, когда пользователь
использует Outlook 2007. Как на счет пользователя Outlook
2003, имеющего ящик Exchange 2007? В этом случае не имеет
значения, расположен ли целевой ящик на Exchange 2003 или
Exchange 2007, поскольку клиент Outlook 2003 будет пытаться
получить информацию планировщика из системной папки Schedule+
Free/Busy. Причина здесь следующая: Outlook 2003 всегда
ожидает публикации информации планировщика в этом месте, и
поэтому не имеет представления о существовании службы
Availability. И как вы, вероятно, догадались, эта ситуация
применима и к более ранним версиям Outlook, таким как Outlook
2002 или Outlook 2000.
До этого момента я перечислял Outlook лишь как тип клиента.
Должен сказать, что эти же принципы применимы и к Outlook Web
Access. Другими совами, если целевой почтовый ящик находится
на Exchange 2007, служба Availability создаст RPC соединение с
этим почтовым сервером. Если целевой почтовый ящик находится
на Exchange 2003, служба Availability сделает HTTP запросы и
получит информацию из системной папки Schedule+ Free/Busy.
Заключение
Служба Availability в Exchange 2007 очень важна, поскольку
она несет ответственность за получение свежей информации
планировщика для пользователей, если они используют Outlook
2007 и Exchange 2007. В этой статье я раскрыл основы службы
Exchange 2007 Availability, и то, как она используется для
получения информации планировщика.