サリュテーションとSLP
ピートSt. ピエール (サンマイクロシステムズ)
森 徹 (日本IBM)
サリュテーションコンソーシアムの技術委員会は現在、サリュテーションアーキテクチャがサービスロケーションプロトコル(SLP)を利用してディレクトリベースのサービスディスカバリをサポートできるようにするための作業に専念しています。この作業は、大規模なワークグループやエンタープライズ環境でアーキテクチャのすばらしいスケーラビリティを実現します。
現在のプロポーザルには、マルチキャスト、同報通信または手動設定などによりSLPディレクトリエージェントを検索するサリュテーションマネジャー(SLM)があります。このマネジャーが機能単位のどれかを検出すると、SLMがサリュテーションプロトコルではなくSLPプロトコルを使用して、SLPディレクトリと一緒にサポートする機能単位を登録したり登録解除したりします。さらに、SLMはSLPプロトコルを使用して、サリュテーションクライアントアプリケーションによってリクエストされたサービスを検索します。
小規模なワークグループで、ディレクトリサービスが利用できなかったり、不必要である場合は、SLMは
SLPディレクトリエージェントを検出することができません。この場合は、SLMはサリュテーションプロトコル同報通信を使用して、他のSLMを検出し、それがサポートする機能単位の機能を公示します。サリュテーションプロトコルは、サリュテーションクライアントアプリケーションがリクエストしたサービスを検出するときにも使用されます。
サリュテーションAPIは、基本となるトランスポートおよびディスカバリプロトコルにサリュテーションアプリケーションを気付かせないように設計されています。したがって、アプリケーションプログラマは、ディレクトリが存在するかどうかを知る必要がありません。さらに、SLPディレクトリエージェントはLDAPベースのディレクトリに対するゲートウェイとしての役割を果たすことができるので、サリュテーションAPIおよびSLMが、これら3つのプロトコルに対し、単一のアプリケーションインタフェースを提供します。サリュテーション、SLPおよびLDAPはすべて、サリュテーションと補完的役割を果たし、それぞれに対し単一のAPIを提供します。
SLPコンポーネント: SLPには独立した構成要素が3つあります。つまりサービスエージェント(SA)、ユーザエージェント(UA)、ディレクトリエージェント(DA)です。サービスエージェントは、サービスの公示を行なうため、1つ、あるいは複数のサービスに代わって作業するプロセスです。ユーザエージェントは、有効なサービスとのコンタクトを確立するために、ユーザに代わって作業するプロセスです。UAは、ディレクトリエージェントからサービス情報を検索することができます。ディレクトリエージェントは、SAからサービスについての宣伝データを収集し、これをキャッシングします。
SLPメッセージの種類: SLPは、様々な種類のメッセージをサポートします。サリュテーション環境におけるSLPエンティティの基本的な動作について論じるため、サービスの登録と登録解除、サービスのリクエストおよびサービスリクエストへの応答に関するSLPメッセージの使用目的について述べます。
- SrvReg: サービスエージェントは、サービスを提供するインスタンスごとに
SrvReg メッセージを発行します。メッセージには、サービスのURL、サービスについて記述する属性/値ペアセットおよびサービスの寿命が含まれます。
- SrvAck: ディレクトリエージェントは、SrvRegメッセージが処理されると SrvAckメッセージを返します。SrvAckメッセージは登録を送信したサービスエージェントにユニキャストされます。
- SrvDeReg: サービスエージェントは、サービスのインスタンスが利用不能になると、SrvDeRegを発行します。
- SrvRqst: ユーザエージェントは、サービスを特定するために、SrvRqstメッセージを発行します。このリクエストには、特定の規準を満たすサービスを選択するための属性/値ペアセットが含まれます。
- SrvRply: ディレクトリエージェントは、SrvRqstで指定された規準を満たすサービスが提供されると、SrvRplyで応答します。URLのないSrvRplyは、SrvRqstメッセージに応答して生成されます。
SLPは、特定のサービスの属性に関するリクエスト、利用可能サービスすべてのリストのリクエストとディレクトリエージェントが自分自身を公示するためのメッセージをサポートします。これらのメッセージに関する完全な説明は、サービスロケーションプロトコルの仕様に記載されています。
エンタープライズネットワークにおけるサリュテーションのSLP使用方法
FU登録プロセスの一環として、サービスエージェントは、ディレクトリエージェントにSrvRegメッセージを送信します。この登録データには、特定のサービスインスタンスのサービスURLの他に、そのサービスについて記述する属性/値ペアも含まれます。ネットワークで設定されたディレクトリエージェントがこれらの登録をキャッシングします。登録がキャッシングされたなら、DAがSrvAckメッセージで応答します。サービスの登録データには、サービスの寿命も含まれます。サービスが利用不能になったが、それ自体で登録を解除することができない場合、DAが寿命値をもとにキャッシングされている登録を満了処理します。この状況は、SAが
SrvDeRegメッセージを発行することができないときにだけ発生します。通常の動作時には、SAが後続のSrvRegメッセージにより登録データを定期的に更新します。更新メッセージは、すべての属性セットを含むことを要求されず、値が変更された場合に更新情報を含めることができます。
ユーザエージェントは、サービスが要求されると、 DAからリクエストを行ないます。UAがDAを検出する方法はいくつかあります。DAのアドレスを使用してUAを静的に設定する方法に加えて、UAは、動的ホスト環境設定プロトコル(DHCP)を使用してDAのアドレスをリクエストします。この2つのオプションが存在しているにもかかわらず、手作業で設定しなくてもSLPが動作できることが大切です。このため、UAはDAを検出するためにSrvRqstを使用します。SrvRqstは、IANAによってサービスロケーションプロトコルに対して割り当てられたマルチキャストアドレスをマルチキャストされます。このメッセージでリクエストされたサービスをディレクトリエージェントと呼びます。これはマルチキャストリクエストなので、複数のユニキャスト応答を受け取る可能性があります。最終的なディレクトリエージェントリストは、他のサービスリクエストにも使用することができます。
UAがDAのアドレスを入手したなら、後続のサービスリクエストをそのエンティティに直接送ることができます。では、1つの例としてプリンタについて考えてみましょう。UAがプリンタサービスを検出しようとすると、SrvRqstが構成されます。このメッセージには、サービスの種類、すなわち「プリンタ」が、その属性と値のオプションリストとともに含まれます。属性/値ペアには、所望のプリンタの種類が記述されます。このメッセージは、予め設定されているか、ディレクトリエージェントあるいはマルチキャストを通じて検出されたディレクトリエージェントにユニキャストされます。SrvRqstを受信するDAは、キャッシングされた登録データを探索して、要求されている属性および値を照合しようとします。SrvRplyが要求UAにユニキャストされます。応答には、照合結果次第で0
またはそれ以上のサービスURLが含まれます。クライアントはサービスURLを使用してプリンタを検出することができます。
まとめ: SLPは、サービスディスカバリのための堅固なプラットフォームを確立するため、ディレクトリベースのサービスディスカバリに関するサリュテーションのスケーラビリティを実現します。SLPとサリュテーションを共に使用することで、オフィスからキッチンのカウンターに至るまでのあらゆる環境にある将来のネットワーク機器は、相互に検出し、通信し合えるように設計することが可能になります。