サービスロケーションプロトコル (SLP) は、SLP が使用できるネットワークサービスを検出しそれに対応するための、移植性が高くプラットフォームに依存しないフレームワークを提供します。この章では、SLP のアーキテクチャの概要と、IP イントラネットに対応する SLP の Solaris 9 での実装について説明します。
この節では、SLP の基本的な処理を示し、SLP の管理で使用されるエージェントとプロセスについて説明します。
SLP は、次のサービスを自動的に行い、設定はほとんどあるいはまったく必要ありません。
クライアントアプリケーションがサービスへのアクセスに必要な情報を要求する
プリンタ、ファイルサーバー、ビデオカメラ、HTTP サーバーなどのネットワークのハードウェアデバイスやソフトウェアサーバーにサービスを通知する
主サーバーの障害からの管理された回復
また、SLP の動作を管理、調整するために、必要に応じて次のことを実行できます。
サービスとユーザーを論理グループや機能グループから構成されるスコープに編成する
SLP のロギングを有効にして、ネットワーク上の SLP 動作の監視と障害追跡を行う
SLP のタイミングパラメータを調整して、パフォーマンスの向上とスケーラビリティの拡張を行う
SLP がマルチキャストルーティングに対応していないネットワークに配置されている場合、マルチキャストメッセージの送信や処理を行わないように SLP を構成する
SLP ライブラリは、サービスをネットワークで検出するための情報を、サービスを通知するネットワーク対応のエージェントに与えます。SLP エージェントは、サービスの種類と場所に関する最新情報を保持します。これらのエージェントはプロキシ登録を使用することで、SLP が直接使用できないサービスを通知することもできます。詳細は、第 19 章「レガシーサービスの組み込み」を参照してください。
クライアントアプリケーションは、SLP ライブラリに依頼して、サービスを通知するエージェントに直接要求を出してもらいます。
次の表では、SLP エージェントについて説明します。ここで使用する用語の詳細な定義は、用語集を参照してください。
表 16–1 SLP エージェント
SLP エージェント |
説明 |
|
---|---|---|
ディレクトリエージェント (DA) |
サービスエージェント (SA) が登録する SLP 通知をキャッシュするプロセス。DAは、要求に応じて、サービス通知をユーザーエージェント (UA) に転送する |
|
サービスエージェント (SA) |
サービス通知を配信するためやサービスをディレクトリエージェント (DA) に登録するために、サービスの代理として動作する SLP エージェント |
|
ユーザーエージェント (UA) |
サービス通知情報を取得するために、ユーザーやアプリケーションの代理として動作する SLP エージェント |
|
スコープ |
サービスに対する管理上または論理上のグループ |
|
次の図は、SLP アーキテクチャを実装する、基本的なエージェントおよびプロセスを示しています。図は、SLP のデフォルトの配置を表しています。特別な構成はまったく行われていません。UA と SA の 2 つのエージェントだけが 必要です。SLP フレームワークでは、UA がサービス要求を SA にマルチキャストすることを許可しています。SA は、UA に対して応答をユニキャストします。たとえば、UA がサービス要求メッセージを送信すると、SA はサービス応答メッセージを返します。サービス応答には、クライアントの要求と一致するサービスの場所が含まれています。属性やサービスタイプに関する要求や応答も可能です。詳細は、第 20 章「SLP (リファレンス)」を参照してください。
以下の図は、フレームワークに DA が配置された場合の、SLP アーキテクチャを実装する基本的なエージェントとプロセスを示しています。
DA を配置すると、ネットワークにはより少ないメッセージが送られるので、UA は情報をすばやく受け取ることができます。DA は、ネットワークのサイズが増大する場合やマルチキャストルーティングがサポートされていない場合に必要です。DA は登録されたサービス通知のキャッシュの役割を果たします。SA は DA に対して、通知するすべてのサービスをリストした登録メッセージ (SrvReg) を送り、その応答として確認応答 (SrvAck) を受け取ります。サービス通知は DA によって更新されるか、通知に設定された有効期限に従って期限切れになります。UA が DA を検出すると、UA は要求を SA にマルチキャストするのではなく、DA にユニキャストします。
Solaris SLP メッセージについての詳細は、第 20 章「SLP (リファレンス)」を参照してください。
Solaris SLP の実装では、SLP の SA、UA、DA、SA サーバー、スコープなどのアーキテクチャ部品 (表 16–1 を参照) の一部が slpd にマップされ、一部がアプリケーションプロセスにマップされます。SLP デーモン (slpd) は、特定のオフホストの SLP 相互作用を構成して、次のことを実行します。
ネットワーク上のすべての DA に対し、ディレクトリエージェントの受動的検出と能動的検出を使用する
ローカルホスト上の UA と SA が使用するために DA の更新テーブルを保持する
レガシーサービス通知に対してプロキシ SA サーバーとして機能する (プロキシ登録)
net.slpisDA プロパティを設定し、slpd が DA として機能するように構成することもできます。第 18 章「SLP の管理 (手順)」を参照してください。
SLP デーモンについては、slpd(1M)のマニュアルページを参照してください。
slpd の他に、C/C++ クライアントライブラリと Java クライアントライブラリ (libslp.so および slp.jar) が、UA クライアントと SA クライアントに SLP のフレームワークへのアクセスを提供します。クライアントライブラリは、次の機能を提供します。
サービス通知の登録と登録解除が可能なネットワークサービスを提供するソフトウェア
サービス通知にクエリーを発行することによってサービスを要求できるクライアントソフトウェア
登録と要求に使用できる SLP スコープのリスト
slpd とクライアントライブラリ (前述のサービスを提供する) 間のプロセス間通信を可能にするには、特別な構成は必要ありません。ただし、ライブラリが機能するように、先に slpd プロセスを実行してからクライアントライブラリをロードする必要があります。
次の図で、サービスプロバイダプログラム内の SLP クライアントライブラリは、SA の機能を使用します。サービスプロバイダプログラムは SLP クライアントライブラリを使用して、サービスを slpd に登録または登録解除します。サービスクライアントプログラムの SLP クライアントライブラリは、UA の機能を使用します。サービスクライアントプログラムは SLP クライアントライブラリを使用して、要求を出します。SLP クライアントライブラリは、SA に要求をマルチキャストするか、DA に要求をユニキャストします。この通信はアプリケーションから見て透過です。ただし、ユニキャスト方式の要求発行はより高速になります。クライアントライブラリの動作は、SLP のさまざまな構成プロパティの設定によって影響を受けます。第 18 章「SLP の管理 (手順)」を参照してください。slpd プロセスは、マルチキャスト要求への応答、DA への登録など、SA の全機能を処理します。
SLP の詳細は、次の文書を参照してください。
Kempf、James、Pete St. Pierre 著、『Service Location Protocol for Enterprise Networks』、John Wiley & Sons, Inc. (ISBN 番号 :0–47–3158–7)
『Authentication Management Infrastructure Administration Guide』(パート番号 :805–1139–03)
Guttman、Erik、Charles Perkins、John Veizades、Michael Day 著、『Service Location Protocol, Version 2, RFC 2608』、Internet Engineering Task Force (IETF) 。[ http://www.ietf.org/rfc/rfc2608.txt]
Kempf、James、Erik Guttman 著、『An API for Service Location, RFC 2614』、Internet Engineering Task Force (IETF) 。[http://www.ietf.org/rfc/rfc2614.txt]