サービスロケーションプロトコル (SLP) は、IP イントラネット上で、SLP 使用可能なネットワークサービスを検出し対応するための、移植性が高くプラットフォームに依存しないフレームワークを提供します。この章では SLP のアーキテクチャの概要を述べ、Solaris SLP の実装について説明します。
このセクションでは、SLP の基本的なオペレーション、SLP の構成部品、およびこれらの部品がエンタープライズに対して何を行うかについて説明します。SLP を使用することにより、次のことが可能になります。
クライアントアプリケーションがネットワークサービスのロケーション情報を要求する
サービスの通知
サービスおよびユーザーを論理上または機能上でグループ分けして組織する
主サーバーの障害からの管理された回復
SLP はこれらのサービスを自動的に行い、設定はほとんどあるいはまったく必要ありません。さらに、必要に応じて、管理を補助したり SLP のオペレーションを調整するよう SLP を設定したりすることができます。
たとえば、SLP のログ機構を有効にして、ネットワーク上の SLP オペレーションの監視および障害追跡が行えます。特定のプロパティを調整すると、エージェント間の SLP メッセージ交換のタイミングの同期をとることができます。さらに、SLP マルチキャストを禁止して、ネットワークの輻輳を軽減することができます。また、ディレクトリエージェントと呼ばれる SLP エージェントをエンタープライズ中に戦略的に配置することにより、サービスに対応することができます。これは、スコープと呼ばれるユーザーのグループを作成して、エンタープライズの必要に合うようにサービスの対応を調整することによって行います。
SLP では、各種ソフトウェアベースのエージェントは、ユーザーアプリケーションおよびネットワークサービスを表します。SLP はエンタープライズサービスの性質およびロケーションに関する情報を保持し、エンタープライズ上の SLP エンティティに関する情報は自動的に更新されます。さらに、プロキシ登録を使用すると、SLP は SLP 使用不可なサービスを通知することができます (第 7 章「レガシーサービスの組み込み」を参照)。
表 1-1 では、SLP のフレームワークを構成するエージェントおよびプロセスについて説明します。
表 1-1 SLP エージェントとプロセス
ディレクトリエージェント (DA) は、サービスエージェント (SA) が送ったサービス通知のキャッシュを保存し、保持するオプションの SLP エージェント。DA が配置された場合、DA がユーザーエージェント (UA) のサービス要求を解決する。DA は ディレクトリ通知に対して、SA および UA からの能動的な要請に応答する。したがって、SA および UA が 関連する DA およびスコープ (下記を参照) を検出する。DA は定期的に請求されていない通知を送るが、この通知を通して SA および UA は共有のスコープ内で DA を検出する。 |
|
サービスエージェント (SA) は、ネットワークサービスのサービス通知を保持する。DA が使用できない場合は、SA が UA からのサービス要求のマルチキャストに答える。DA が使用できる場合は、SA はそのスコープをサポートする DA にサービスを登録、あるいはオプションで登録解除する。 |
|
ユーザーエージェント (UA) は、ユーザーアプリケーションおよびクエリの、対応するスコープ、ディレクトリエージェント、およびサービス通知を識別するために機能する。 |
|
スコープは、UA および SA を管理上、トポロジ上、あるいは別の組織化の方法でまとめたグループ。スコープを使用すると、エンタープライズを超えてサービスアクセスに対応する方法を調整できる (第 5 章「スコープの構成」を参照)。 |
|
Solaris の SLP 実装において、slpd は DA サーバーあるいは SA サーバーのどちらかとして機能するデーモンプロセス。ホスト上でのサービス処理は、通知を個々に保持するのではなく、slpd を使用してサービス通知を登録する。これらのサービス処理には、slpd と通信し、SA サーバーとして機能する SA クライアントライブラリが含まれる。slpd はすべての登録および登録解除情報を DA に転送し、期限切れのサービス通知をタイムアウトにする。slpd はまた、能動的および受動的に DA を検出し、使用可能な DA の表を整備する。これらの仕組みを通して、DA の情報が UA クライアントに提供される。UA クライアントは DA 情報についてのみホスト上で slpd を使用する。各 SLP ホストは自動的に slpd デーモンを 1 つ持つ。オプションで slpd を DA として構成できる。 |
|
レガシーサービスは、SLP が使用不可なネットワークサービス。プロキシ登録がレガシーサービスのために作成されていれば、レガシーサービスがサポートされる。プロキシ登録を行うと、SLP 使用不可なサービスを SLP に登録できる。そうすると、SLP ベースのクライアントはレガシーサービスを検出できる (第 7 章「レガシーサービスの組み込み」を参照)。 |
|
サービス通知は、サービスを説明する、URL および、属性と値の対のリストの集合。すべてのサービス通知には有効期限がある。期限が切れると、サービス通知は再登録されない限り無効になる。 |
|
サービス URL は、サービスのネットワークロケーションを通知するために使用される。サービス URL には、サービスタイプ名、ホスト名、あるいはサービスをホストしているシステムのネットワークアドレス、オプションのポート番号、およびサービスを使用するのに必要なその他の情報が含まれる。 |
図 1-1 は、SLP アーキテクチャを実装する、基本的なエージェントおよびプロセスを示しています。
図 1-1 は、構成がまったく行われていないデフォルトの SLP 配置でもあります。UA と SA という 2 つのエージェントだけが必要です。SLP フレームワークでは、UA が SA に対してサービスの要求をマルチキャストすることを許可しています。SA は通知しているサービスに対する要求を受け取ると、UA に対し、サービス通知を含む応答をユニキャストします。
図 1-2 は、フレームワークに DA が配置された場合の、SLP アーキテクチャを実装する基本的なエージェントおよびプロセスを示しています。
より複雑なエンタープライズの場合、1 つ以上の DA が使用されます。DA は登録されたサービス通知のキャッシュの役割を果たします。SA は DA に対して、通知するすべてのサービスをリストした登録メッセージ (SrvReg) を送り、その応答として確認応答 (SrvAck) を受け取ります。サービス通知は DA によって更新されるか、通知に設定された有効期限に従って期限切れになります。UA がいったん DA を検出すると、UA は SA に対して要求をマルチキャストするのではなく、DA に要求をユニキャストします。
Solaris SLP メッセージについての詳細は、付録 A 「SLP のメッセージタイプ」 を参照してください。
Solaris SLP の実装において、SLP の SA、UA、DA、SA サーバー、スコープ、その他のアーキテクチャ部品 (表 1-1 のリストを参照) の一部は slpd に配置され、一部はアプリケーションプロセスに配置されます。SLP デーモン (slpd) は、特定のオフホストの SLP 相互作用を構成します。SLP デーモンは、次のことを行います。
ローカルホスト上のすべての UA および SA に対し、受動的および能動的なディレクトリエージェントの検出を行う
DA の表を保持し、ローカルホスト上の UA および SA が使用するために更新する
レガシーサービス通知に対してプロキシ SA サーバーとして機能する (プロキシ登録)
DA として機能するように構成可能
SLP デーモンについては、slpd(1M)のマニュアルページを参照してください。
slpd の他に、UA クライアントライブラリおよび SA クライアントライブラリ (C または C++ の場合は libslp.so、Java の場合は slp.jar) が UA クライアントおよび SA クライアントに SLP のフレームワークへのアクセスを提供します。クライアントライブラリは、以下のことを行います。
SA クライアントと slpd との間でサービス通知を登録および登録解除する通信を提供する
UA クライアントに UA 要求を作成する機能を提供する
slpd と UA クライアントの間の DA アクセス可情報の通信を提供する
図 1-3 で、サービスプロバイダプログラム内の SLP クライアントライブラリは、SA の機能を実装します。サービスプロバイダプログラムは SLP クライアントライブラリを使用して、サービスを slpd に登録または登録解除します。サービスクライアントプログラムの SLP クライアントライブラリは、UA の機能を実装します。サービスクライアントプログラムは SLP クライアントライブラリを使用して、サービス要求のマルチキャストおよびユニキャスト (DA に対して) を発行し、slpd に DA に関する情報を問い合わせます。slpd プロセスは、マルチキャスト要求への応答、DA の登録など、SA の全機能を処理します。
SLP は、SLP デーモン slpd を実行することにより有効になります。slpd を起動するためにサポートされているインタフェースが /etc/init.d/slpd スクリプトで、SLP 構成ファイル /etc/inet/slp.conf が存在すればデーモンを起動します。Solaris オペレーティング環境には、/etc/inet/slp.conf.example というファイルがあります。起動時に SLP を有効にするには、このファイル名を /etc/inet/slp.conf に変更します。