Exchange Online と Exchange オンプレミス クライアント プログラミングの比較

Exchange Online および Exchange オンプレミスに対して動作する EWS マネージ API または EWS クライアント アプリケーションを作成するための設計に関する考慮事項について説明します。

ほとんどの場合、対象とするクライアントおよび Exchange の Web サービスは、対象が Exchange Online、Office 365 の一部としての Exchange Online、または Exchange オンプレミス サーバーかどうかに関係なく、同様に動作します。 ただし、いくつかの例外があり、アプリケーションがそれらの例外を処理できることを確認する必要があります。 この記事の情報は、Exchange Online および Exchange オンプレミスの両方を対象とするクライアントを設計する際に役立ちます。

自動検出クライアント プログラミングに関する考慮事項

自動検出は、Exchange クライアントの構成情報を提供します。 クライアント アプリケーションは、クライアントが Exchange Online と Exchange オンプレミスのどちらを対象にしているかに応じて、次の 3 つの方法のいずれかで構成情報を検出できます。

表 1. 自動検出サービスの種類と Exchange の適用性

自動検出サービスの種類 適用対象
SOAP 自動検出
Exchange Online および Exchange 2010 以降のバージョンの Exchange オンプレミス
POX 自動検出
Exchange Online および Exchange 2007 以降のバージョンの Exchange オンプレミス
サービス接続ポイント (SCP) の検索
Exchange 2007 以降のバージョンの Exchange オンプレミス

クライアント構成情報だけでなく、SOAP および POX の自動検出は Exchange サービス バージョンも返し、そのサービスが Exchange Online によってホストされているかどうかを示します。 使用している自動検出の種類に応じて、この情報はさまざまな要素で返されます。

表 2. サービスバージョンとホスティング情報を返す自動検出要素Exchange Online

自動検出サービスの種類 サービス バージョンを格納する XML 要素 ユーザーが Exchange Online アカウントを持っているかどうかを示す XML 要素
SOAP 自動検出
CasVersion テキスト値を持つ 設定 (SOAP) 要素
UserMSOnline テキスト値を持つ 設定 (SOAP) 要素
POX 自動検出
ServerVersion (POX)
MicrosoftOnline

クライアントがこの情報を確実に取り込むようにして、Exchange サーバーで利用可能な機能セットを対象にできるようにします。 これは、ユーザーのメールボックスが Exchange Online にあるか、または Exchange オンプレミス組織にあるかに基づいた別々の動作をクライアントが予期することができるかどうかを判別するのに役立ちます。

Exchange Online を対象とするアプリケーションのテストおよびログ ファイル

Exchange Online は、EWS のプロトコル ログ ファイル、EWS のパフォーマンス カウンターへのアクセス、およびオンプレミスの Exchange サーバーで利用可能な EWS 関連サービス イベントへのアクセスを提供しません。 ただし、これらへのアクセスは、アプリケーションが EWS と対話するときにどのように実行されるかを判別するのに役立ちます。 テスト用の Exchange オンプレミス サーバーに対してアプリケーションを必ずテストして、そのパフォーマンスを最適化できるようにします。 可能であれば、Exchange Online の調整設定に一致するように、テスト サーバーで調整設定を変更することができます。これにより、Exchange Online に接続したときのアプリケーションの動作を検証できます。

ヒント

EWSRelentless ツールを使用して、EWS の負荷テストを実行できます。 テスト サーバー、EWS プロトコル ログ、EWS パフォーマンス カウンター、サービス イベント、および EWS 調整設定でこのツールを使用すると、負荷がある状態で EWS がどのように動作するかについて理解を深めることができます。

調整設定と Exchange Online

Exchange Online での EWS 調整設定の既定値は、Exchange オンプレミスでの既定値とは異なります。 また、Exchange Online の調整設定は変更できません。 Exchange 管理シェル コマンドレットを使用すると、Exchange オンプレミスの調整設定を検出できます。ただし、これらのコマンドレットは、Exchange Online では有効ではありません。

Exchange 管理シェルのコマンドレットと構成設定

コマンドレットの多くは、Exchange Online および Exchange オンプレミスの Web サービス API に直接または間接的に影響を与える可能性があります。 コマンドレットは、Exchange Online で以下には利用できません。

  • 調整設定

  • 仮想ディレクトリ設定

  • 認証設定

Exchange Online で利用可能なコマンドレットの詳細については、「Exchange Online の PowerShell コマンドレット」を参照してください。 Exchange オンプレミスで使用可能なコマンドレットの詳細については、「Exchange 2013 コマンドレット」を参照してください。

クライアント アフィニティとネットワーク負荷分散装置

ほとんどの EWS 通信では、Exchange とのアフィニティを維持するためにクライアントが参加する必要はありません。 メールボックス イベントへのサブスクリプションには、クライアントが Cookie およびその他の情報を提供して、ユーザーのメールボックス イベントのキューを維持する Exchange サーバーとのアフィニティを維持する必要があります。 Exchange Server 2010 は、exchangecookie を使用して、ネットワーク負荷分散装置間でクライアント アフィニティを維持します。 Exchange Online および Exchange 2013 以降のバージョンの Exchange オンプレミスは、X-AnchorMailbox ヘッダー、X-PreferServerAffinity ヘッダー、および X-BackEndOverrideCookie Cookie を使用して、メールボックスの通知のアフィニティを維持します。

認証

クライアントは、基本認証または OAuth を使用して、Exchange Online で認証を行うことができます。 Exchange 2013 以降のバージョンの Exchange オンプレミスは、既定では NTLM を使用します。ただし、基本認証を使用するように Exchange オンプレミスを構成することもできます。

クライアントの待機時間診断

Exchange Online は、クライアントの待機時間診断の報告があった場合に、それらの診断を収集します。 これは、Microsoft が Exchange Online での接続の問題のトラブルシューティングをサポートするのに役立ちます。 Exchange オンプレミスは、クライアントの待機時間診断は収集しません。 クライアントが Exchange オンプレミスを対象とする場合は、クライアントはサーバーに待機時間診断を報告することはできません。

EWS マネージ API の機能

EWS マネージ API は、サービス ポイント接続検索などの Exchange オンプレミスに特有のいくつかの機能や、クライアントの待機時間レポートなどの Exchange Online に特有のいくつかの機能を公開します。 いくつかの機能は、EWS マネージ API で実装される前に Exchange Online で実装される可能性があることに注意してください。

次の EWS マネージ API 機能は、Exchange Online にのみ適用できます。

  • クライアントの待機時間レポート

  • 基本事前認証

  • 応答で RequestId が返されることを要求する機能

Exchange Online プランと Exchange サーバー エディションの API 機能

Office 365 および Exchange Online の各種プランや Exchange サーバーの標準バージョンおよびエンタープライズ バージョンで、それぞれに異なる機能セットを利用できることが考えられます。 Exchange Online のプラン、またはユーザーのメールボックスをホストする Exchange サーバー エディションによっては、いくつかの API 機能は、お使いのクライアント アプリケーションで利用できない場合がありますのでご注意ください。

機能の可用性は変わる可能性があるため、Exchange Online プランと Exchange サーバー エディションを確認して、機能の可用性がクライアントに及ぼす影響を検証することをお勧めします。 GetServiceConfiguration 操作を使用して、または機能を実装する操作のためのテスト要求を送信することによって、機能の可用性を確認するようにクライアントを設計することもできます。 その機能が利用できない場合、サーバーからの応答でそのように示されます。

その他の考慮事項

Exchange Online ではなく、Exchange オンプレミスを対象としている場合は、次を行うことができます。

  • Exchange サーバーにインストールされているクライアントを作成します。

  • EWS およびその他のクライアントで作成および送信したメッセージの配信と内容に影響を与えることのできるカスタム トランスポート エージェントをインストールします。

関連項目