次の方法で共有


その他の WS-Discovery 機能

場合によっては、Web サービス (DPWS) および関連する仕様の デバイス プロファイルで実装機能が明示的に定義されていない場合があります。 たとえば、WS-Discovery 仕様では、マルチホーム環境でのクライアントとホストの動作は定義されません。 WSDAPI が実装されると、仕様で定義されている機能を超えて一部の検出機能が追加されました。

WSDAPI では、HTTP 経由で探索プロキシと通信するために、WS-Discovery v1.1 CD1 の選択された部分も実装されます。

このトピックの目的は、WSDAPI によって実装される検出機能について説明することですが、DPWS または WS-Discovery の仕様では説明しません。

IPv6 アドレスと soap.udp URI 形式

SOAP over-UDP と WS-Discovery では、リテラル IPv6 アドレスを soap.udp URI 形式で表す方法を明示的に記述しません。 RFC 2396 、"Uniform Resource Identifiers (URI): Generic Syntax" と題され、リテラル IPv6 アドレスが soap.udp URI 形式でサポートされていないことを示します。

わかりやすくするために、WSDAPI は soap.udp スキームで角かっこで囲まれた IPv6 アドレスを認識します。 たとえば、soap.udp://[2001:abcd:0001:0002:0003:0004:0005:0032]:3702 アドレスは WSDAPI によって認識されます。 これは、HTTP での IPv6 アドレスの処理方法と似ています。

Hello と XAddrs

WSDAPI の DPWS ホスティング オブジェクトは、メッセージ本文に WS-Discovery XAddrs Hello メッセージを送信しません。 クライアントが XAddrs を取得する必要がある場合は、Hello メッセージを受信した後、クライアントは常に Resolve メッセージを送信します。

このアプローチには 2 つの利点があります。 まず、WSDAPI 上に構築されたデバイスは、プライベート ネットワークの IP アドレスを公開する XAddrs を公開しません。 第 2 に、WSDAPI 上に構築されたデバイスは、クライアントからアクセスできる XAddrs のみを公開します。つまり、IPv6 アドレスは IPv4 クライアントに送信されません。

Probe または Resolve メッセージを受信すると、応答として送信される XAddr は 1 つだけです。 送信された XAddr は、要求を受信したローカル アドレスに対応します。 要求が IPv6 経由でサブネット間で受信された場合、WSDAPI は応答でグローバル IPv6 アドレスを提供します。

優先アドレス

デバイスは、Hello、probeMatch 、または ResolveMatch メッセージ複数の XAddrs を提供できます。 1 つのサービスは、異なるトランスポート アドレスを持つ複数のエンドポイントでも使用できます。 このような場合、WSDAPI は、検出された最初の使用可能なアドレスでデバイスとの通信を試みます。 アドレスは、IPv4 がインストールされているマシン上の IPv4 や IPv6 がインストールされているマシン上の IPv6 など、使用可能なプロトコルからのアドレスである場合に使用できます。 さらに、アドレスがローカル サブネット上にないデバイスまたはサービスから取得された場合は、IPv4、IPv6 サイト ローカル、または IPv6 リンク ローカルの場合にのみ使用できます。

メタデータ交換の WSDL

WSDAPI 上に構築されたデバイスとサービスは、この情報を提供するためにアプリケーションによって拡張されない限り、メタデータ交換で WSDL を提供しません。 既定では、WSDL プロビジョニングはプログラミング モデルの一部ではありません。

APP_MAX_DELAY

DPWS では、APP_MAX_DELAY、Probe の受信と ProbeMatchの送信までの遅延を 5,000 ミリ秒として遅延するランダム間隔を定義します。 Windows ファイアウォールでは、UDP のマルチキャスト要求/ユニキャスト応答モデルが 4 秒のファイアウォール ウィンドウ内でのみ機能する必要があります。 その結果、WSDAPI は、APP_MAX_DELAYによって記述された 5,000 ミリ秒のウィンドウではなく、2,500 ミリ秒以下で応答を送信します。

IANA ポートの予約

WSDAPI では、HTTP トラフィックには TCP ポート 5357、HTTPS トラフィックには TCP ポート 5358 が既定で使用されます。 これらのポートは、HTTP.sysの URL 予約を通じて低い特権プロセス用に予約され、IANA でも予約されます。

UDP ポート共有

WSDAPI はポート共有を使用します。 ポート 3702 に送信されたユニキャスト メッセージは、すべての WSDAPI ベースのアプリケーションで適切に処理されない場合があります。 アプリケーションがポート 3702 にのみバインドされている場合、WSDAPI ベースのアプリケーションがそのポートを正しく使用できなくなる可能性があります。

WS-Discovery v1.1 CD1 プロキシ

WSDAPI は、WS-Discovery v1.1 CD1 マネージド モード プロトコルを実装する探索プロキシを検索して通信します。 WS-Discovery v1.1 CD1 は、プロキシとクライアントまたはデバイス間の通信のための HTTP プロトコルの明示的な説明を含む、WS-Discovery の最初のリビジョンです。

マルチキャスト要求で使用される同時実行バージョンの数を制限するために、WSDAPI は 2005/04 名前空間で WS-Discovery Probe 要求を送信しますが、WS-Discovery v1.1 CD1 DiscoveryProxy 型を検索します。 プロキシが応答すると、WSDAPI は HTTP プローブまたは Resolve 要求を、WS-Discovery v1.1 CD1 で定義されている指定されたプロキシ エンドポイントに送信します。