SLPでは3種類のエージェントが定義されます。
SLPディレクトリエージェントの機能は、 Linux*およびSolaris*システムには提供されません。
ユーザエージェントは、クライアントアプリケーションに代わって、クライアントが必要とするネットワークサービスの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要求は次のとおりです。
サービス種別要求: 登録されたすべてのサービス種別が戻ります。
サービス要求: 特定のサービス種別に対応するサービスURLが戻ります。
属性要求: 特定のサービスURLに対応する属性が戻ります。
ディレクトリエージェント通知: ディレクトリエージェントから送信され、ディレクトリエージェントが利用できることを示す通知です。
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スコープとは、定義されたグループとしてまとめられたネットワークサービス群です。スコープを設定することにより、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をネットワーク上に導入、展開、管理する上で極めて重要なものです。