Exchange ActiveSync と Exchange 2003
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 から導入された、常に最新情報を維持する機能もサポートされています。
Exchange ActiveSync は次のファイルに実装されています。
Massync.dll
OMA Sync ISAPI 拡張 DLLMasperf.dll
OMA Sync パフォーマンス カウンタ DLLMasPerf.ini
OMA Sync パフォーマンス カウンタ INIMasperf.h
OMA Sync パフォーマンス カウンタ ヘッダー
Exchange ActiveSync プロトコルのアーキテクチャ
この同期プロトコルは、クライアント/サーバー通信モデル上に構築された要求/応答プロトコルです。HTTP プロトコル上で、HTTP POST の要求/応答機構と HTTP OPTIONS コマンドを使用して構築されています。HTTP POST ヘッダーはプロトコル コマンドを指定し、そのコマンドにコマンド データが必要な場合は HTTP POST ボディで送信されます。データは通常、圧縮 Wireless Binary XML (WbXML) 形式になっており、モバイル クライアントの限られた帯域幅を効率よく使用できます。
クライアントは、要求を発信して通信を開始します。サーバーは要求を受信すると、それを解析して要求されたデータをボディに含む HTTP POST 応答を送信します。
この同期プロトコルでは、クライアントとサーバーとの間に TCP/IP 通信が必要です。ただし、使用されるネットワーク層は実装によって異なります。このプロトコルをサポートするトランスポート層は、GPRS、CDMA 1xRTT、および IEEE 802.11 の 3 つです。この同期プロトコルでは、転送エラーをすべてネットワーク ソフトウェアで処理すること、およびクライアント/サーバー間で送信されるプロトコル メッセージは完結していてエラーがないことが必要です。
この同期プロトコルは、任意のモバイル クライアントが、Exchange サーバー上に格納されるデータを含む PIM データを効率よく同期できるように設計されています。これを実現するため、クライアントはこの同期プロトコルを使用して Exchange フロントエンド コンポーネントと通信します。このコンポーネントは、Exchange ストアからデータを取得する手段として同期を実行します。
次の図に、この同期プロトコルで使用しているクライアント/サーバー通信モデルの機能コンポーネントを示します。
クライアントがサーバーに送信するすべてのコマンドで、次の手順が実行されます。
- クライアントが要求を作成し、HTTPS POST として同期サーバーに送信します。
- 同期サーバーはこの要求を処理し、Exchange バックエンド サーバーと通信して、ユーザーの PIM データにアクセスします。
- 同期サーバーは応答を作成し、HTTPS POST 応答としてクライアントに送信します。
- クライアントは応答を処理し、必要に応じてローカル PIM データを更新します。
クライアントが Sync コマンドを送信すると、次の手順が実行されます。
- クライアントは、PIM データに対する最後の同期以降の変更を特定します。
- クライアントは、これらの変更を含む Sync コマンドを作成します。
- クライアントは、作成したコマンドを HTTPS POST として同期サーバーへ送信します。
- 同期サーバーは、サーバー上のデータに対する最後の同期以降の変更を特定し、Exchange バックエンド サーバーと通信して、ユーザーのデータにアクセスします。
- 同期サーバーは、アイテムに対する変更についてクライアントとサーバーとの間に矛盾がある場合、矛盾を解決します。
- 同期サーバーは、クライアントにレプリケートする必要がある、サーバーでの変更を含む応答を作成します。
- 同期サーバーは、作成した応答を HTTPS POST 応答として送信します。
- クライアントは応答を処理し、ローカル PIM データを更新します。
同期プロトコルのバージョンとデバイス サポート
Exchange ActiveSync では、クライアントとサーバーが同じプロトコル バージョンを使用する必要があります。Microsoft Mobile Information Server は、ActiveSync Protocol v1.0 for Exchange ActiveSync を使用します。Exchange Server 2003 は、強化された新しい ActiveSync protocol v2.0 for Exchange ActiveSync を使用しますが、下位互換性のために ActiveSync protocol 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 protocol v1.0 for 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 |
したがって、Pocket PC 2002 デバイスおよび Pocket PC 2003 デバイスは、Mobile Information Server と Exchange 2003 に対して使用することができます。
同期プロトコルのコマンド
ActiveSync protocol v 1.0 を使用する場合、典型的な同期セッションには次のコマンドが使用されます。
- GetHierarchy フォルダ階層全体を取得します。
- GetItemEstimate 同期する必要があるアイテム数を見積もります。クライアントは、見積もるフォルダの一覧を渡します。この結果は、デバイスの進行状況バーの表示に反映されます。
- Sync 同期を開始します。Sync コマンドは、一部の他のコマンドに埋めこまれています (Add、Change など)。
ActiveSync protocol Version 2.0 では、FolderSync と AUTD (Always Up-To-Date) の 2 つのコマンドが追加でサポートされています。
- FolderSync GetHierarchy コマンドの代わりに使用します。個々のフォルダを同期する場合と同じように、階層を集合的に同期します。
- AUTD サーバーが新しいアイテムを受信するたびに、モバイル デバイスとサーバーとを自動的に同期します。詳細については、後述する「Up-to-date の通知」を参照してください。
同期コマンドの形式
プロトコル コマンドは HTTP POST メカニズムを使用して送信されます。一部の簡単なコマンドはクライアント要求の URI (Unified Resource Identifier) に含まれており、複雑なコマンドは、コマンドに関する詳細情報を渡すのに HTTP ボディを使用します。
同期セッションの多くは、複数のコマンドで構成されます。このようなセッションには、クライアントとサーバーとの間で通信されるコマンド要求と応答の組み合わせが複数あります。
1 つの要求には次の 3 つの部分があります。
- URI サーバー アドレス、およびコマンド名などのいくつかのパラメータが含まれます。
- HTTP ヘッダー サーバーが使用する追加パラメータが含まれます。標準 HTTP 形式で転送されます。
- HTTP ボディ コマンドで必要となるデータが含まれます。形式はコマンドによって異なります。ボディのないコマンドもあります。
URI
次に、典型的な同期要求 URI の例を示します。
POST /Microsoft-Server-ActiveSync?User=johndoe&
DeviceId=789123456789012345&DeviceType=PocketPC&Cmd=Sync
Cmd
、User
、DeviceId
などのパラメータは、要求ごとにクライアントから送信されます。最も重要なのは Cmd
パラメータです。Cmd
パラメータは、実行する操作をサーバーに通知します。この例では、Cmd
パラメータで渡された引数は Sync で、サーバーに同期を実行するよう指示しています。追加データは HTTP POST ボディに含まれています。
HTTP ヘッダー
クライアントは、URI の他に、一般的な情報も HTTP ヘッダーで送信します。次の例に、HTTP POST 要求ヘッダー全体を URI と共に示します。
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 で、その詳細はコマンドによって異なります。電子メール メッセージを送信するコマンドでは、XML ではなく RFC 822 形式が使用されます。一部のコマンドは、追加データを必要としません。この場合、ボディは空になります。
応答のボディには、サーバーから返されたデータが含まれています。要求のボディの場合と同様、形式はコマンドによって異なります。WbXML 形式が一般的です。ボディに電子メールの添付が含まれている場合、形式は添付ファイルの種類によって変わります。一部のコマンドは、ボディを使用しません。
モバイル デバイスにおけるプロトコルに依存しないマルチキャスト データ
プロトコルに依存しないマルチキャスト データは、"コレクション" として格納されます。コレクションは、連絡先、予定表、各電子メール フォルダにつき 1 つずつ割り当てられます。同期プロトコルは、複数の電子メール フォルダの同期をサポートしています。クライアント ソフトウェアは、コレクション別に SyncKey を格納します。SyncKey は 39 ~ 48 文字で、38 文字分はグローバル一意識別子 (GUID)、残りの 1 ~ 10 文字分は 1 ずつ増加していく番号です。クライアントは、CollectionId も格納します。CollectionId は、フォルダにつき 40 文字前後の文字列で、各フォルダの一意識別子です。
クライアントは、同期が要求されるたび、SyncKey をサーバーに送信します。同期される各オブジェクト (メッセージ、連絡先、または予定表アイテム) には、サーバーによって一意識別子が割り当てられています。この識別子は ServerId という 48 文字の文字列で、クライアントが格納します。この識別子は、同期中に、クライアントとサーバーの両方に格納されるオブジェクトを識別するために使用されます。
Exchange ActiveSync のプロファイル
同期状態は、Exchange サーバー上のユーザーのメールボックスの隠しフォルダに格納されます。電子メール、予定表、および連絡先の同期状態は、FolderSync と共に、ユーザーのメールボックスの NON_IPM_SUBTREE の Microsoft-Server-ActiveSync/PocketPC/DeviceId フォルダに格納されます。フォルダ階層を含む Search フォルダも、ここに格納されます。
Up-to-date の通知
デバイス上の Exchange ActiveSync は、サーバーと 5 分おきに同期するよう構成されます。ただし、ActiveSync はデバイスの Up-to-date 情報は提供しません。同期セッションが頻繁なことから、影響はユーザーにも及びます。
Up-to-date 通知は Exchange Server 2003 の新機能で、サーバーが新しいアイテムを受信したときに、ユーザーは Pocket PC 2003 または Microsoft Windows Mobile 2003 のデバイスを自動的にサーバーと同期できます。Up-to-date 通知は、Exchange ActiveSync の機能で、Exchange Server 2003 と共にインストールされます。
新しいメッセージが受信されると、ユーザーの Exchange アカウントにイベントが生成されます。このイベントにより SMS (Short Message Service) 通知がユーザーのデバイスへ送信されます。デバイスの同期はバックグラウンドで実行されます。ユーザー データは、ユーザーによる操作なしに、最新情報で更新されます。
通知は、SMS コントロール メッセージとしてデバイスに送信されます。これは、通常の SMS 通知とは異なり、受信トレイに SMS メッセージとして表示されません。この通知は、デバイスの SMS ルーターと Exchange ActiveSync が処理します。通知自体には、重要なデータは含まれません。
通知は、Exchange Server 2003 サーバーからデバイスの SMS アドレスに直接送信されるか、Exchange 管理者が構成した集合 (コーポレート サービス プロバイダなど) を経由して送信されます。通知が SMS アドレスに送信されるには、管理者は Exchange システム マネージャに SMTP キャリアを作成する必要があります。
集合
組織として、デバイスへの通知を集合経由で送信することを選択できます。現状で使用できる集合は MSN Internet Access のみです。集合を確立するには、組織はセキュリティで保護された Web サイトに Passport アカウントを使用してログインし、MSN を通じて使用するキャリアを選択する必要があります。これにより、通知をセキュリティで保護された状態で配信するための資格情報を MSN から取得できます。
次に、MSN キャリアを Active Directory に作成する必要があります。この目的で、MSNCarrierConfigurator.zip というファイルが別途提供されています。この zip ファイルには CreateMSNCarrier.cmd と CarrierConfig.LDF が含まれており、MSN キャリアのセットアップに使用します。
管理者は、MSN キャリアを Active Directory 内に作成した後、通知を MSN へセキュリティで保護された状態で配信できるように、ユーザーのサインアップ時に受信した資格情報を使用して SMTP コネクタを作成します。デバイスの SMS アドレスに通知が直接送信されるよう SMTP キャリアを構成すると、通知はモバイル オペレータの SMTP ゲートウェイ、オペレータの SMS Center (SMS-C) の順に通過します。オペレータの SMTP ゲートウェイでは、待ち時間が長くなることが多く、SMS の配信に 1 時間以上かかることもあります。これでは Up-to-date 通知の利点が活かされず、ユーザーに最新の情報が通知されなくなります。
また、メッセージを SMTP ゲートウェイのオペレータを経由して転送することには、セキュリティ上の懸念もあります。集合を使用すると、Transport Layer Security を通じて Microsoft Mobile Services に接続できます。この方法を使用すると、Microsoft Mobile Services が Up-to-date 関係を結んでいる 1 つ以上のオペレータに接続できます。