Exchange ActiveSync 和 Exchange 2003

 

上一次修改主题: 2005-07-06

Exchange ActiveSync 使您能够在移动设备和 Exchange Server 2003 之间同步数据。电子邮件、联系人和日历信息(个人信息管理器(即 PIM)数据)全部都可以同步。该功能以前是通过 Mobile Information Server 提供的,以前称为 Microsoft Server ActiveSync。现在它与 Exchange Server 2003 集成在一起。

在使用 Mobile Information Server 的情况下,运行 Microsoft Windows Powered Pocket PC 2002、Microsoft Windows Powered Pocket PC 2002 Phone Edition 和 Microsoft Windows Powered Smartphone 的设备需要安装 Server ActiveSync 客户端组件并得到支持。

在使用 Exchange ActiveSync 的情况下,运行 Pocket PC 2002、Pocket PC 2002 Phone Edition 和 Smartphone 的设备仍然受支持。另外,Microsoft Windows Powered Pocket PC 2003 设备也受到支持。Pocket PC 2003 设备使得以更大的粒度安排同步日程成为可能,并且还支持 Exchange Server 2003 中引入的“Always Up To Date”功能。

在以下文件中实现了 Exchange ActiveSync:

  • Massync.dll:OMA 同步 ISAPI 扩展 DLL
  • Masperf.dll:OMA 同步性能计数器 DLL
  • MasPerf.ini:OMA 同步性能计数器 INI
  • Masperf.h:OMA 同步性能计数器头

Exchange ActiveSync 协议体系结构

同步协议是在客户端和服务器通信模型上建立的请求和响应协议。它建立在 HTTP 协议基础上,因此使用了 HTTP POST 请求和响应机制,以及 HTTP OPTIONS 命令。HTTP POST 头指定了协议命令,如果命令需要它,将在 HTTP POST 正文中发送命令数据。数据通常被格式化为压缩的无线二进制 XML (WbXML),该格式能够有效地利用移动客户端的有限带宽。

客户端通过投递请求来启动通信。服务器收到请求时,它会分析请求,然后发送 HTTP POST 响应,在响应的正文中包含所请求的数据。

同步协议需要在客户端和服务器之间建立 TCP/IP 连接。但是,基本网络层是特定于实现的。支持该协议的三个普通传输层是 GPRS、CDMA 1xRTT 和 IEEE 802.11。同步协议要求任何传输错误均由网络软件进行处理,并且在客户端和服务器之间所发送的协议邮件应当是完整和无错的。

设计同步协议是为了使任何移动客户端都能有效地使用存储在 Exchange 服务器上的数据来同步 PIM 数据。要这样做,客户端将使用同步协议与 Exchange 前端服务器组件交谈,这使同步成为从 Exchange 存储检索数据的手段。

ÏÂͼ显示了同步协议所使用的客户端和服务器通信模型的功能组件。

de12eb21-c5db-4022-bd35-ddaaf1cb98a3

客户端向服务器发送的所有命令都将执行以下步骤:

  1. 客户端创建请求,并将它作为 HTTPS POST 发送给同步服务器。
  2. 同步服务器处理该请求,该过程需要与 Exchange 后端服务器通信,以便访问用户的 PIM 数据。
  3. 同步服务器创建响应,并将它作为 HTTPS POST 响应发送给客户端。
  4. 客户端处理该响应,如果需要,则更新本地 PIM 数据。

当客户端发送同步命令时,将执行以下步骤:

  1. 客户端识别出自从上次同步以来对本地 PIM 数据的任何更改。
  2. 客户端创建同步命令,其中包含这些更改。
  3. 客户端将该命令作为 HTTPS POST 发送给同步服务器。
  4. 同步服务器识别出自从上次同步以来对服务器上的数据的更改,这个过程需要与 Exchange 后端服务器通信,以访问用户的数据。
  5. 同步服务器解决客户端和服务器上的项目更改之间所存在的任何冲突。
  6. 同步服务器创建响应,其中包含要在客户端上复制的服务器更改。
  7. 同步服务器将响应作为 HTTPS POST 响应发送出去。
  8. 客户端处理响应,并更新本地 PIM 数据。

同步协议版本和设备支持

Exchange ActiveSync 要求客户端和服务器使用相同的协议版本。Microsoft Mobile Information Server 将 AirSync 协议 v1.0 用于 Exchange ActiveSync。Exchange Server 2003 将新的和经过改进的 ActiveSync 协议 v2.0 用于 Exchange ActiveSync,而且也支持 ActiveSync 协议 v1.0,以便向后兼容。

Mobile Information Server 2002 和 Exchange Server 2003 所支持的 ActiveSync 协议

服务器 受支持的协议

Mobile Information Server 2002

1.0

Exchange Server 2003

1.0 和 2.0

Pocket PC 2002 客户端将 ActiveSync 协议 v1.0 用于 Exchange ActiveSync。可以配合使用 v1.0 的 Mobile Information Server 和 Exchange Server 2003 来使用它。Pocket PC 2003 客户端支持 v1.0 和 v2.0 协议。它可以协商要使用的协议。

表 9.6   受 Pocket PC 2002 和 Pocket PC 2003 设备所支持的 ActiveSync 协议

设备 受支持的协议

Pocket PC 2002

1.0

Pocket PC 2003

1.0 和 2.0

因此,可以配合 Mobile Information Server 和 Exchange 2003 来使用 Pocket PC 2002 和 Pocket PC 2003 设备。

同步协议命令

在使用 ActiveSync 协议 v 1.0 时,典型的同步会话可包括下列命令:

  • GetHierarchy 该命令用来检索文件夹的整个层次结构。
  • GetItemEstimate 该命令被客户端用来估计必须同步的项目数。客户端传递它要估计的文件夹的列表。该估计便于在设备上显示进度条。
  • Sync 该命令用来启动同步。同步命令还嵌入了其他命令(例如,添加和更改)。

ActiveSync 协议版本 2.0 中添加了对其他两个命令的支持:Folder syncAUTD(始终最新):

  • Folder Sync 使用该命令以代替 GetHierarchy 命令。FolderSync 命令同步集合层次结构,就像同步单个文件夹一样。
  • AUTD 该命令让用户能够在服务器接收到新项目时使移动设备与服务器自动同步。有关详细信息,请参阅本主题后面的“最新通知”部分。

Sync 命令格式

协议命令是使用 HTTP POST 机制发送的。某些简单的命令包含在客户端请求的统一资源标识符 (URI) 中,而更复杂的命令则使用 HTTP 正文来传送有关命令的进一步信息。

同步会话通常由多个命令组成。在这种情况下,会话将由在客户端和服务器之间往返发送的多对命令请求和响应组成。

一个请求有三个部分:

  • URI 该部分包括服务器地址和几个参数,其中包括命令名称。
  • HTTP 头 该部分包括其他参数,这些参数用于服务器,并以标准的 HTTP 格式传输。
  • HTTP 正文 该部分包括命令所需数据。格式随命令而变化,某些命令没有正文。

URI

以下示例显示了典型的同步请求 URI :

POST /Microsoft-Server-ActiveSync?User=johndoe&
DeviceId=789123456789012345&DeviceType=PocketPC&Cmd=Sync

诸如 CmdUserDeviceId 的参数由客户端使用每个请求发送出去。最重要的参数是 Cmd 参数。Cmd 参数指示服务器必须执行哪项操作。在该示例中,在 Cmd 参数中传递的 Sync 参数指示服务器必须执行同步操作。其他数据包含在 HTTP POST 正文中。

HTTP 头

除了 URI,客户端还在 HTTP 头中发送某些常规信息。以下示例显示了一个与 URI 放在一起的完整的 HTTP POST 请求头:

POST Microsoft-Server-ActiveSync?User=johndoe&
DeviceId=789123456789012345&DeviceType=PocketPC&Cmd=Sync
Accept-Language: en-us
MS-ASProtocolVersion: 2.0
Content-Type: application/vnd.ms-sync.wbxml

服务器用头信息中的某些常规信息作为响应。以下条目包含 HTTP POST 响应头:

HTTP/1.1 200 OK
Content-Length: 114
Date: Mon, 15 Mar 2004 11:07:44 GMT
Content-Type: application/vnd.ms-sync.wbxml
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
Pragma: no-cache
MS-Server-ActiveSync: 2.0.3273.0

HTTP 正文

请求正文包含发送到服务器的数据。数据的类型和格式根据命令而各不相同。最普通的格式是 XML,其详细信息取决于命令。发送电子邮件的命令使用 RFC 822 格式,而不是 XML。某些命令不需要额外的数据。这种情况下,正文是空的。

响应正文包含从服务器返回的数据。与请求正文一样,格式根据命令而各不相同。通常,它采用 WbXML 格式。当正文包含电子邮件附件时,格式取决于附件文件的类型。某些命令不使用正文。

移动设备上独立于协议的多播数据

独立于协议的多播数据被存储在“集合”中,一个用于联系人,一个用于日历,一个用于每个电子邮件文件夹。同步协议支持对多个电子邮件文件夹进行同步。对于每个集合来说,客户端软件都存储了一个 SyncKey。SyncKey 包含 39 到 48 个字符,其中 38 个字符表示全局唯一标识符 (GUID),并用一到十个字符表示增加的数字。客户端还存储 CollectionId。CollectionId 是一个针对每个文件夹的大约 40 个字符的字符串,它是文件夹的唯一标识符。

客户端使用每个同步请求将 SyncKey 发送到服务器。Each object that is synchronized—whether a message, contact, or calendar item—has a unique identifier assigned by the server.该 ServerId 是由客户端存储的 48 个字符组成的字符串。标识符在同步期间使用,用于标识存储在客户端和服务器上的对象。

Exchange ActiveSync 配置文件

同步状态存储在 Exchange 服务器上用户邮箱内的一个隐藏文件夹中。电子邮件、日历和联系人的同步状态以及 FolderSync 位于用户邮箱的 NON_IPM_SUBTREE 中的 Microsoft-Server-ActiveSync/PocketPC/DeviceId 文件夹中。包含文件夹层次结构的搜索文件夹也存储在这里。

最新通知

Exchange ActiveSync 被配置在设备上,以便与服务器以每隔五分钟为间隔进行同步。但是,ActiveSync 不提供有关设备的最新信息。由于频繁的同步会话,用户还可以招来其他收费。

最新通知是 Exchange Server 2003 的新功能,它使用户能够在服务器收到新项目时自动将 Pocket PC 2003 或 Microsoft Windows Mobile 2003 设备与服务器进行同步。最新通知是与 Exchange Server 2003 一起安装的 Exchange ActiveSync 的功能。

当新邮件到达时,将在用户的 Exchange 帐户中生成事件。该事件将使短消息服务 (SMS) 通知被发送到用户的设备上。设备在后台进行同步。在不需要用户干预的情况下,用户数据将更新为最新信息。

通知作为 SMS 控制邮件发送到设备。它不同于定期的 SMS 通知,因为它不作为 SMS 邮件出现在收件箱中。设备上的 SMS 路由器和 Exchange ActiveSync 处理通知。通知本身不带任何敏感数据。

通知可以从 Exchange Server 2003 直接发送到设备的 SMS 地址,或通过 Exchange 管理员所配置的聚合器(例如,公司服务提供程序)进行发送。要让通知发送到设备的 SMS 地址,管理员必须在 Exchange 系统管理器中创建 SMTP 运营商。

聚合器

组织可以选择通过聚合器将通知发送到设备。当前唯一可用的聚合器是 MSN Internet Access。若要建立聚合器,组织必须使用 Passport 帐户登录到安全的网站,并选择想通过 MSN 使用的运营商。然后,组织可以从 MSN 获得用于进行安全的通知传递的凭据。

下一步,必须在 Active Directory 中创建 MSN 运营商。这需要使用单独的文件 MSNCarrierConfigurator.zip。zip 文件包含用来设置 MSN 运营商的 CreateMSNCarrier.cmd 和 CarrierConfig.LDF。

在 Active Directory 中创建 MSN 运营商之后,管理员将使用在用户注册时所收到的凭据为向 MSN 传递安全通知创建 SMTP 连接器。如果管理员将 SMTP 运营商配置为直接向设备的 SMS 地址发送通知,则通知将通过移动运营商的 SMTP 网关,然后进入运营商的 SMS 中心 (SMS-C)。运营商 SMTP 网关经常发生较长的邮件延迟,SMS 传递时间有时超过一个小时。这就否定了最新通知的优点,不能为用户提供最新通知的体验。

而且,通过 SMTP 网关运营商来转发邮件也有安全问题。可以使用聚合器通过传输层安全性来连接 Microsoft Mobile 服务。这使企业能够连接到一个或多个 Microsoft Mobile 服务已经与其创建最新伙伴关系的运营商。