Solaris のシステム管理 (資源管理とネットワークサービス)

第 18 章 SLP (概要)

サービスロケーションプロトコル (SLP) は、SLP が使用できるネットワークサービスを検出しそれに対応するための、移植性が高くプラットフォームに依存しないフレームワークを提供します。この章では、SLP のアーキテクチャの概要と、IP イントラネットに対応する SLP の Solaris 9 での実装について説明します。

SLP のアーキテクチャ

この節では、SLP の基本的な処理を示し、SLP の管理で使用されるエージェントとプロセスについて説明します。

SLP は、次のサービスを自動的に行い、設定はほとんどあるいはまったく必要ありません。

また、SLP の動作を管理、調整するために、必要に応じて次のことを実行できます。

SLP 設計の概要

SLP ライブラリは、サービスをネットワークで検出するための情報を、サービスを通知するネットワーク対応のエージェントに与えます。SLP エージェントは、サービスの種類と場所に関する最新情報を保持します。これらのエージェントはプロキシ登録を使用することで、SLP が直接使用できないサービスを通知することもできます。詳細は、第 21 章「レガシーサービスの組み込み」を参照してください。

クライアントアプリケーションは、SLP ライブラリに依頼して、サービスを通知するエージェントに直接要求を出してもらいます。

SLP エージェントとプロセス

次の表では、SLP エージェントについて説明します。ここで使用する用語の詳細な定義は、用語集を参照してください。

表 18-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 はサービス応答メッセージを返します。サービス応答には、クライアントの要求と一致するサービスの場所が含まれています。属性やサービスタイプに関する要求や応答も可能です。詳細は、第 22 章「SLP (リファレンス)」を参照してください。

図 18-1 SLP の基本的なエージェントとプロセス

図。

以下の図は、フレームワークに DA が配置された場合の、SLP アーキテクチャを実装する基本的なエージェントとプロセスを示しています。

図 18-2 DA を使って実装される SLP アーキテクチャのエージェントとプロセス

図。

DA を配置すると、ネットワークにはより少ないメッセージが送られるので、UA は情報をすばやく受け取ることができます。DA は、ネットワークのサイズが増大する場合やマルチキャストルーティングがサポートされていない場合に必要です。DA は登録されたサービス通知のキャッシュの役割を果たします。SA は DA に対して、通知するすべてのサービスをリストした登録メッセージ (SrvReg) を送り、その応答として確認応答 (SrvAck) を受け取ります。サービス通知は DA によって更新されるか、通知に設定された有効期限に従って期限切れになります。UA が DA を検出すると、UA は要求を SA にマルチキャストするのではなく、DA にユニキャストします。

Solaris SLP メッセージについての詳細は、第 22 章「SLP (リファレンス)」を参照してください。

SLP の実装

Solaris SLP の実装では、SLP の SA、UA、DA、SA サーバー、スコープなどのアーキテクチャ部品 (表 18–1を参照) の一部が slpd にマップされ、一部がアプリケーションプロセスにマップされます。SLP デーモン (slpd) は、特定のオフホストの SLP 相互作用を構成して、次のことを実行します。

net.slpisDA プロパティを設定し、slpd が DA として機能するように構成することもできます。第 20 章「SLP の管理 (手順)」を参照してください。

SLP デーモンについては、slpd(1M)のマニュアルページを参照してください。

slpd の他に、C/C++ クライアントライブラリと Java クライアントライブラリ (libslp.so および slp.jar) が、UA クライアントと SA クライアントに SLP のフレームワークへのアクセスを提供します。クライアントライブラリは、次の機能を提供します。

slpd とクライアントライブラリ (前述のサービスを提供する) 間のプロセス間通信を可能にするには、特別な構成は必要ありません。ただし、ライブラリが機能するように、先に slpd プロセスを実行してからクライアントライブラリをロードする必要があります。

次の図で、サービスプロバイダプログラム内の SLP クライアントライブラリは、SA の機能を使用します。サービスプロバイダプログラムは SLP クライアントライブラリを使用して、サービスを slpd に登録または登録解除します。サービスクライアントプログラムの SLP クライアントライブラリは、UA の機能を使用します。サービスクライアントプログラムは SLP クライアントライブラリを使用して、要求を出します。SLP クライアントライブラリは、SA に要求をマルチキャストするか、DA に要求をユニキャストします。この通信はアプリケーションから見て透過です。ただし、ユニキャスト方式の要求発行はより高速になります。クライアントライブラリの動作は、SLP のさまざまな構成プロパティの設定によって影響を受けます。第 20 章「SLP の管理 (手順)」を参照してください。slpd プロセスは、マルチキャスト要求への応答、DA への登録など、SA の全機能を処理します。

図 18-3 SLP の実装

図。

SLP の参考資料

SLP の詳細は、次の文書を参照してください。