この章では、Solaris Bandwidth Manager 1.6 に含まれるプログラミングインタフェースについて紹介します。
Java API は、次の目的で提供されています。
構成
ディレクトリ情報とディレクトリの使用
統計情報
Solaris Bandwidth Manager 1.6 には、Sun Bandwidth Allocator 1.0 に提供されているものに類似した C Statistics API も含まれています。
Solaris Bandwidth Manager 1.6 の Java インタフェースは、Java Dynamic ManagementTM Kit にもとづく管理 bean (m-bean) セットとして実装されます。この節では、Java Dynamic Management Kit の基本的な概念と用語について紹介します。Java API の使用方法の概要については、第 2 章「Java インタフェースの使用」を参照してください。
図 1-1 は、Java Dynamic Management Kit の重要な概念がエージェントとマネージャにどのように関係するかを示しています。各コンセプトについては、以下の項で説明します。

コア管理フレームワーク (フレームワークとも呼ぶ) は、エージェント内のオブジェクトのレジストリです。オブジェクトの登録は、次の要素によって行えます。
エージェント自体
エージェント内のアダプタを通して接続されたマネージャ
オブジェクトをフレームワークの外から管理したい場合は、そのオブジェクトを登録する必要があります。登録すると、Java Dynamic Management Kit によってデフォルトのオブジェクト名がオブジェクトに割り当てられます。マネージャは、このオブジェクト名を使用して、管理オペレーションの対象となるオブジェクトを識別します。フレームワークに登録されるオブジェクトはすべて、m-bean のインスタンスでなければなりません。フレームワークは、Java Dynamic Management Kit に提供されているコンポーネントの 1 つです。
管理 bean (m-bean) は、一定のデザインパターンに準拠する Java オブジェクトです。これらのデザインパターンは、JavaBeansTM コンポーネントモデルから派生して作成されています。デザインパターンを使用すると、m-bean のプロパティ、アクション、およびイベントを定義できます。また、m-bean 内の読み取り専用のプロパティと読み書き両用のプロパティの区別もできます。m-bean のデザインパターンに準拠するには、個々の m-bean は JavaBeans コンポーネントでなければなりません。
m-bean インスタンスは、フレームワークへの登録が終わるとすぐに管理できます。m-bean のインスタンス化と登録は、次の要素によって行えます。
エージェント
エージェント内のアダプタを通して接続されたマネージャ
フレームワークを通してアクセスしたいオブジェクトはすべて、m-bean として記述されている必要があります。このようなオブジェクトには、次のようなものがあります。
エージェントで管理したいリソース
リソース管理に提供したいサービス
これらのオブジェクトを表現する m-bean は開発者自身で記述します。Java Dynamic Management Kit のコンポーネントの一部は、m-bean として実装されています。
エージェントが動作している間、m-bean はメモリー内に保持されます。
メモリー内の情報はすべて、エージェントが停止する時に消失します。そのためエージェントは、その起動時に情報をリポジトリに読み込み直す必要があります。コンパイルされた m-bean クラスは、エージェントの CLASSPATH 環境変数に指定されている任意のディレクトリに格納できます。
アダプタは、フレームワークを外部アプリケーションに接続します。アダプタは、インスタンス化されフレームワークに登録された m-bean の特定のプロトコルを通してビューを提供します。外部アプリケーションは、アダプタを通して次の処理を行えます。
既存の m-bean インスタンスのプロパティを取得または設定する
既存の m-bean インスタンスに対してメソッドを呼び出す
m-bean をインスタンス化し、その新しい m-bean インスタンスを登録する
Solaris Bandwidth Manager のポリシーエージェントには、HTTP アダプタが含まれます。
クライアント bean (c-bean) は、アダプタクライアント API を使用して開発されたマネージャに対して、リモートの m-bean を描写するためのスタブオブジェクトです。m-bean と同様に、c-bean は JavaBeans コンポーネントです。マネージャは、m-bean に伝播される次のオペレーションを c-bean に対して実行することによって m-bean にアクセスします。
属性の取得または設定
メソッドの呼び出し
m-bean が生成するイベントは、c-bean に伝達されます。
Solaris Bandwidth Manager の C Statistics API は、Solaris Bandwidth Manager の設定に関する情報と、このソフトウェアが管理するインタフェースについての情報を取得します。C Statistics API はまた、モジュールレベルで発生するイベントを検出し、それらのイベント情報を返します。図 1-2 は、C Statistics API とアプリケーションの統合状態を示しています。
C Statistics API を使用して開発されたアプリケーションは、Solaris Bandwidth Manager がインストールされているマシンで動作しなければなりません。「デバイスの処理」と 「イベントの処理」 に示している関数は、ポリシーエージェントが動作中であることを要求しません。このため、デーモンが起動する時を検出するアプリケーションを実行できます。他の関数は、ポリシーエージェントが動作中でないとエラー BA_NOTRUNNING を返します。