SLPコンポーネントについて

SLPでは3種類のエージェントが定義されます。


ユーザエージェント

ユーザエージェントは、クライアントアプリケーションに代わって、クライアントが必要とするネットワークサービスのURLおよび属性を検索します。クライアントアプリケーションは、特定のサービス種別に属するすべてのURLを要求することもできるほか、サービスの種別と属性を限定することにより、検索範囲を絞り込むこともできます。

ユーザエージェントからディレクトリエージェントが利用できない場合には、SLP要求は、Service Location General Multicast Address (224.0.1.22、RFC 2165を参照)を使用して、複数のサービスに送信(マルチキャスト)されます。要求されたサービス情報を保持しているサービスエージェントは、いずれもユニキャストパケット(UDPまたはTCP)を使用することにより、要求元のユーザエージェントに直接応答を返します。

サービスエージェントが要求されたサービス情報を保持していれば、応答します。複数のサービスエージェントから応答があった場合、ユーザエージェントは応答を結合し、その結果をクライアントアプリケーションに送信します。ユーザエージェントにディレクトリエージェントが接続されている場合には、ユーザエージェントはSLP要求をマルチキャストパケットではなく、ユニキャスト方式でディレクトリエージェントに送ります。ディレクトリエージェントは、使用可能なサービスが存在しない場合の応答を含む、どのような応答もユニキャストパケットで送信します。

ユーザエージェントから送信されるSLP要求は次のとおりです。


表 110. ユーザエージェントによって送信されるSLP要求

要求 説明

サービス種別要求

すべての利用可能なサービス種別が戻ります。

サービス要求

特定のサービス種別に対応するサービスURLが戻ります。

属性要求

特定のサービスURLに対応する属性が戻ります。

ユーザエージェントが処理するSLP応答は次のとおりです。


表 111. ユーザエージェントによって処理されるSLP応答

応答 説明

サービス種別応答

既知のサービス種別のリストが格納されています。

サービス応答

要求されたサービスURLのリストが格納されています。

属性応答

特定のサービスURLに対応して要求された属性が格納されています。

ディレクトリエージェント通知

ディレクトリエージェントから送信され、ディレクトリエージェントが利用できることを示す通知です。

Novellは、NetWare、Windows 95/98、Windows NT、およびWindows 2000用のユーザエージェント製品を提供しています。


サービスエージェント

サービスエージェント(RFC 2609で定義)は、ネットワークサービスアプリケーションが提供するサービスを表すサービスURLを、要求に応じて通知します。ネットワークサービスアプリケーションは、そのネットワークサービスを定義するサービスURLおよび属性をサービスエージェントに登録します。

サービスエージェントは、登録されたサービス情報をローカルデータベースとして管理します。サービスエージェントは、ネットワークで利用できるものとして登録されたサービスについて、マルチキャスト(ブロードキャスト)で通知することはありません。ユーザエージェントからマルチキャストで送信されるSLP要求を待機しています。

ディレクトリエージェントが接続されていれば、サービスエージェントはサービスを各ディレクトリエージェントに登録します。

サービスエージェントから送信されるSLP要求は次のとおりです。

サービスエージェントが処理するSLP要求は次のとおりです。

Novellは、NetWare、Windows 95/98、Windows NT、およびWindows 2000用のサービスエージェント製品を提供しています。


ディレクトリエージェント

ディレクトリエージェントは、ネットワークサービスを表すサービスURLのデータベースを保持、管理します。サービスエージェントは、ネットワークアプリケーションが提供するサービスのサービスURLをディレクトリエージェントに登録します。

1つのネットワークに複数のディレクトリエージェントを導入できます。サービスエージェントはそのサービスURLを既知の各ディレクトリエージェントに登録し、すべてのディレクトリエージェントにあるサービス情報の一貫性が維持されます。

RFC 2165では、ディレクトリエージェント間のサービス情報の同期に関するプロトコルは規定されていません。これを補うために、Novell SLP Directory Agentはディレクトリモードと呼ばれる機能をサポートしています。

ディレクトリモードを有効にするよう設定されたディレクトリエージェントは、複数のディレクトリエージェントが共有できるサービスURLを格納する共通の分散複製データ保存場所としてNovell(R) eDirectoryTMを使用します。これにより、ディレクトリエージェントは、ローカルサービスエージェントによって登録されたサービスの情報を通知するだけでなく、ディレクトリモードに設定されている他のディレクトリエージェントに登録されたサービスURLも通知できます。

この通知により、サービスエージェントはネットワーク内の各ディレクトリエージェントに登録する必要がなくなり、ネットワークトラフィックが減少します。このネットワークトラフィックの減少は、WANバックボーンを軸に構成された大規模なエンタープライズネットワークの場合に大きな効果をもたらします。

Novellは、NetWare、Windows NT、およびWindows 2000に対応するディレクトリエージェント製品を提供しています。NetWare上のディレクトリエージェントは、ディレクトリモードでのみ動作します。Windows NT用およびWindows 2000用のディレクトリエージェントは、ディレクトリモードまたはローカルモードで動作します。ローカルモードで動作するディレクトリエージェントは、他のディレクトリエージェントとサービス情報を共有しません。RFC 2165で定義されているように自律的に動作します。

ディレクトリエージェントは、次のSLPプロトコルメッセージを処理します。

これらのSLPメッセージにより、サービスURLおよび関連属性の登録、削除、問い合わせがディレクトリエージェントのデータベースに対して行われます。

これらのメッセージ種別の詳細については、RFC 2165を参照してください。


サービス登録

サービスURLとその属性をディレクトリエージェントに登録するため、サービスエージェントはサービス登録メッセージを送信します。各サービスURLにはライフタイムが設定されていて、その有効期限を経過したサービスはディレクトリエージェントによりデータベースから削除されます。

サービスエージェントは、サービスのライフタイムの期間に、1回以上サービス登録メッセージを更新する必要があります。サービスライフタイムが設定されていることにより、サービスエージェントがそのサービスURLの登録解除を行わない場合に、そのようなサービスエージェントにより登録されたサービスURLは適切な時期にディレクトリエージェントによりキャッシュから削除できます。


サービス登録解除

サービス登録解除メッセージは、サービスURLとその属性をディレクトリエージェントのサービスキャッシュから削除するために、サービスエージェントから送信されます。サービス登録解除メッセージは、ネットワークアプリケーションの終了時やサービスエージェントのシャットダウン時に送信されます。


サービス種別要求

ユーザエージェントは、ネットワーク上で利用できるサービス種別のリストを取得するため、サービス種別要求をサービスエージェント(マルチキャスト)またはディレクトリエージェント(ユニキャスト)に送信します。サービスエージェントとディレクトリエージェントは、それらエージェントが認識しているサービス種別をサービス種別応答に設定し、ユニキャストパケットにより要求元ユーザエージェントに戻します。


サービス要求

サービス要求は、必要なサービスを表すサービスURLを検索するため、ユーザエージェントからサービスエージェント(マルチキャスト)またはディレクトリエージェント(ユニキャスト)に送信されます。要求の条件に一致しているサービスURLはサービス応答に設定され、ユニキャスト方式で要求元ユーザエージェントに戻ります。

サービス要求は、特定のサービス種別に対応するすべてのURLを要求する汎用要求の場合と、述語が設定されて種別と属性が特定されたサービスの情報に対する要求だけの場合があります。


属性要求

ユーザエージェントは、特定のサービスURLの属性(1つまたは複数)を取得するため、属性要求をサービスエージェント(マルチキャスト)またはディレクトリエージェント(ユニキャスト)に送信します。

属性要求は、すべての属性情報を求める汎用要求の場合もあります。また、属性選択リストを設定して、探したい属性(1つまたは複数)を指定した属性要求もあります。

要求された属性は属性応答に設定され、ユニキャスト方式で要求元ユーザエージェントに戻ります。


ディレクトリエージェントの通知

ディレクトリエージェントは、サービスエージェントとユーザエージェントに自身の存在を定期的に通知するために、ディレクトリエージェントの通知をマルチキャスト方式で発行します。さらに、ディレクトリエージェントは、ディレクトリエージェントのサービス種別を求めるサービス要求を受け取ると、その応答としてディレクトリエージェントの通知を返します。

ディレクトリエージェントの通知には次の情報が格納されています。

マルチキャスト通信が利用できないネットワークの場合には、ユーザエージェントとサービスエージェントにディレクトリエージェントのネットワークアドレスを設定できます。この場合、ユーザエージェントとサービスエージェントは、ディレクトリエージェントに対して、ディレクトリエージェントの通知を送信するように(ディレクトリエージェントタイプのサービス要求で)要求します。

ユーザエージェント、サービスエージェント、およびディレクトリエージェントの同期の詳細については、RFC 2165を参照してください。


SLPスコープ

SLPスコープとは、定義されたグループとしてまとめられたネットワークサービス群です。スコープを設定することにより、1つまたは複数のユーザグループがネットワークサービスを容易に利用できます。

スコープを定義する場合、ネットワークサービスの編成と管理を容易にする基準を適用できます。特定のスコープのセットを使用するようにユーザを設定した場合、これらのユーザが利用できるサービスのセットを確実に割り当てることができます。

次のように、会社の部門に対応したスコープを登録することもできます。

このようなスコープを登録すれば、人材部門のユーザが人材スコープを使用するように設定できます。同様に、経理部門のユーザは経理スコープを使用するように設定できます。両方の部門のサービスを必要とするユーザは、両方のスコープを使用するように設定できます。

同じように、地理的な場所に従ってサービスを分類することもできます。会社の事業所のある都市や国に対応したSLPスコープを登録することもできます。ある場所に所属するユーザは、その事業所に対して定義されたスコープを使用するように設定できます。複数の事業所のサービスにアクセスする必要のあるユーザの場合には、必要なすべての事業所に対応するスコープを使用するように設定できます。

組織の構成または場所によりサービスを分類するだけではなく、複数のグループが共有する必要がある共通サービスのスコープを定義できます。これにより、ユーザは自身に固有なサービスを確保するだけでなく、共有サービスの所在も確認できます。

スコープが使用されるもう一つの理由は、SLPの拡張性とパフォーマンスを高めるためです。サービス登録情報は、サービスが登録されたスコープに従って整理、格納されます。ディレクトリエージェントは、1つまたは複数のスコープを対象とするように設定されます。1つのネットワーク上のサービスすべてが1つのスコープにまとめられ、1つのサービスキャッシュに格納されていると、サービス情報の量は大きくなり、管理が困難になります。1つの要求に対するデータの検索量が極めて大きくなるため、応答時間もかなり長くなる可能性があります。

したがって、大きなネットワーク環境の場合は、サービスを複数のスコープに分類し、各ディレクトリエージェントは、それを使用するユーザに適用されたスコープを対象とするように設定することが有効です。

Service Location Protocol 1(RFC 2165)では、スコープが設定されていないデフォルトの運用設定がユーザエージェント、サービスエージェント、およびディレクトリエージェントに対して定義されています。このデフォルトの設定では、すべてのサービスが、名前を持たない1つのスコープの中で管理されていることになります。

さらに、スコープの設定されていないエージェントへの登録や、このようなエージェントへのサービス要求に関して特別な規則が適用されます。特に、スコープに関係なくすべてのサービスは、スコープが設定されていないディレクトリエージェントに登録されることになっています。ただし、スコープの設定されていないエージェントに対してスコープが設定されていない要求が発行された場合、スコープなしとして登録されたサービスのみ返されます。また、スコープが設定された要求が発行された場合は、要求の条件に一致したスコープの設定されていないすべてのサービスだけでなく、要求されたスコープからすべてのサービスが返されます。

同じネットワークの中に、スコープが設定されているエージェントと設定されていないエージェントが混在していると、混乱を招き、要求の応答に矛盾が生じることがあります。そのため、Service Location Protocol 2 (RFC 2608)ではスコープ無しの操作はService Location Protocolから除かれ、デフォルトの操作設定はデフォルトのスコープ(デフォルトという名前のスコープ)を使用するように再定義されました。

スコープの設定されたエージェントと設定されていないエージェントを1つのネットワークに混在させることから生じる問題を解決して、SLP 2への最終的な移行を容易にするために、SLPを設定する場合は、スコープが使用されるように設定します。

次の理由から、通常は、スコープを使用してSLPサービスを編成します。

スコープは、ネットワークで利用できるサービスを管理するための有効な手段であり、SLPをネットワーク上に導入、展開、管理する上で極めて重要なものです。