この章では、Web-Based Enterprise Management (WBEM) と Solaris WBEM Services の概要を説明します。これらのソフトウェアを使用すれば、ソフトウェア開発者は、Solaris オペレーティング環境の管理を容易にする Solaris の管理アプリケーションを簡単に作成できます。
内容は次のとおりです。
業界全体の取り組みである Web-Based Enterprise Management (WBEM) には、異機種プラットフォーム上のシステム、ネットワーク、デバイスを Web 上で管理するための標準規格が含まれています。この標準化により、システム管理者はデスクトップ、デバイス、およびネットワークを管理することができます。
WBEM は、既存の主要な管理プロトコルに対応するように設計されています。対応するプロトコルは、Simple Network Management Protocol (SNMP)、Distributed Management Interface (DMI)、Common Management Information Protocol (CMIP) などです。
Common Information Model (CIM) - 管理資源を記述するための情報モデル
Managed Object Format (MOF) - CIM クラスとインスタンスを定義するための言語
eXtensible Markup Language (XML) - Web 上の管理リソースを記述するためのマークアップ言語
コンピュータ業界とテレコミュニケーション業界の企業を代表するグループの 1 つである Distributed Management Task Force (DMTF) は、管理の標準規格の開発では主導的な立場にあります。DMTF の目的は、さまざまなプラットフォームおよびプロトコルに渡ってネットワークを管理する統合的な手法を開発し、費用効率の高い相互運用性に優れた製品を提供することにあります。DMTF の提唱とその現況については、このグループの Web サイト http://www.dmtf.org を参照してください。
この節では、Solaris WBEM Services 製品で使用されている CIM の基本的な用語と概念を簡単に説明します。CIM の詳細は、付録 A 「Common Information Model (CIM) の用語と概念」 を参照してください。
CIM とは、ディスク、CPU、オペレーティングシステムなどの管理資源を記述するためのオブジェクト指向情報モデルです。CIM オブジェクトは、プリンタ、ディスクドライブ、CPU などの管理リソースを表すモデルです。CIM オブジェクトは、WBEM 対応のシステムやデバイス、アプリケーションの間で共有できます。
類似したプロパティや目的をもつ CIM オブジェクトは、CIM クラスで表されます。プロパティは、クラスのある単位データを記述する属性です。インスタンスは、特定のクラスの実際の管理オブジェクトを表したものです。インスタンスには実際のデータが含まれています。たとえば、solaris_computersystem が Solaris オペレーティングシステムを表す CIM クラスのときは、実際にシステムで動作している Solaris オペレーティング環境は solaris_computersystem クラスのインスタンスとして表されます。ResetCapability や InstallDate は solaris_computersystem クラスのプロパティです。
CIM クラスは、スキーマと呼ばれる意味のある集合にグループ分けされます。スキーマは複数のクラスからなるグループですが、クラスは 1 つのスキーマにしか所属できません。スキーマの所有者は 1 人だけです。スキーマは、管理やクラスの名前付けに使用されます。同じスキーマ内ではすべてのクラス名が異なっていなければなりません。スキーマが異なればクラスやプロパティの名前が同じになることがありますが、クラスとプロパティの区別にはスキーマ名が使用されます。スキーマ、クラス、プロパティの名前は、次の構文に従って付けられます。
Schemaname_classname.propertyname |
Common Information Model は、情報を一般的なものから特定のものへと分類します。Solaris の環境などの特定の情報は、このモデルを拡張して記述されています。CIM は、次に示す 3 つの情報層から構成されます。
コアモデル - プラットフォームに依存しない、CIM のサブセット
共通モデル - ネットワーク管理の特定の領域に関連するエンティティ (システム、デバイス、アプリケーションなど) の概念、機能性、および表示方法を視覚的に表す情報モデル
エクステンション (拡張)- CIM スキーマをサポートし、限定されたプラットフォーム、プロトコル、または企業独自のものを表す情報モデル
コアモデルと 共通モデルを、総称して CIM スキーマと呼びます。
コアモデルは、管理環境の基本となる一般的な前提事項を提供します (たとえば、要求された特定のデータはある場所に格納され、要求元のアプリケーションまたはユーザーに配付されなければならないなど)。これらの前提事項は、管理環境の基盤を概念的に形成する、クラスと関連のセットとして示されます。コアモデルは、管理環境の特定の側面を表現するスキーマに一貫性を持たせます。
コアモデルは、クラス、関連、およびプロパティのセットをアプリケーション開発者に提供します。開発者は、このセットを使用して管理対象システムを表現し、共通モデルを拡張する方法を決定することができます。コアモデルは、その他の管理環境をモデル化する概念的な枠組みを確立します。
コアモデルは、 共通モデルとエクステンション (拡張) により、システム、アプリケーション、ネットワーク、デバイスなどのネットワーク機能に関する特定の情報を拡張するためのクラスと関連を提供します。
共通モデルで示されるネットワーク管理の領域は、特定の技術や実装には依存しない管理アプリケーションの開発基盤を提供します。このモデルは、指定された 5 つの技術別スキーマ、Systems、Devices、Applications、Networks、および Physical に、拡張用の基底クラスセットを提供します。
拡張スキーマは、このモデルに特定の技術を関連づけるために CIM に組み込まれます。CIM を拡張すると、多数のユーザーと管理者が Solaris などの特定のオペレーティング環境を使用できるようになります。拡張スキーマのクラスを使用して、ソフトウェア開発者は拡張された技術を管理するアプリケーションを開発することができます。Solaris スキーマは CIM スキーマを拡張したものです。
Solaris WBEM Services は、Solaris 8 オペレーティング環境で Web-Based Enterprise Management (WBEM) サービスを提供するソフトウェアです。このようなサービスを使用すれば、ソフトウェア開発者は、Solaris オペレーティング環境の管理を容易にする Solaris の管理アプリケーションを簡単に作成できます。
Solaris WBEM Services ソフトウェアでは、セキュリティが侵害されることなく管理データにアクセスし操作することができます。製品には Solaris Provider が組み込まれているため、管理アプリケーションから Solaris オペレーティング環境の管理リソース (デバイスやソフトウェア) の情報にアクセスできます。
管理アプリケーションは、RMI や XML/HTTP プロトコルを使って CIM Object Manager に接続します。CIM Object Manager は、接続されたクライアントに次のサービスを提供します。
管理サービス
CIM Object Manager は、CIM データの意味と構文を検査し、アプリケーション、CIM Repository、管理リソースとの間でデータの送受信を行います。
セキュリティサービス
管理者はユーザーの CIM 情報へのアクセスを制御できます。
ロギングサービス
このサービスを構成するクラスを使えば、開発者は、イベントデータを動的にログレコードに記録し、ログレコードからデータを取り出すことができるアプリケーションを作成できます。管理者はこのデータを使ってイベントの原因を追跡したり、判定したりすることができます。
XML データを CIM クラスに変換する XML サービス
XML/HTTP ベースの WBEM クライアントで CIM Object Manager と通信できます。
WBEM 対応システムに接続されると WBEM クライアントは、次のような WBEM 操作を要求できます。CIM クラスとインスタンスの作成、表示、削除や、指定する値をもつプロパティの検索、指定するクラス階層にあるインスタンスやクラスの列挙 (リストの取得) などです。
Solaris WBEM Services ソフトウェアは、アプリケーション、管理、プロバイダという 3 つの層で機能するソフトウェアコンポーネントで構成されます。これらのコンポーネントはオペレーティングシステム層やハードウェア層とデータをやりとりします。図 1-1 は、各層におけるソフトウェアコンポーネントとその関係を示しています。
アプリケーション層 - WBEM クライアントが管理リソースからのデータを処理したり、表示したりします。Solaris WBEM Services には、次のアプリケーションがあります。
WBEM Log Viewer - ログファイルを表示するアプリケーションです。Log Viewer では、ログファイルに記録されているコマンドを実行したユーザーの名前や、記録されているイベントが起きたクライアントコンピュータなど、ログレコードの詳細を表示できます。
Sun WBEM User Manager - このアプリケーションでは、管理者が、承認された WBEM ユーザーの追加や削除を行なったり、管理リソースに対するそれらのユーザーのアクセス権を設定したりすることができます。
Managed Object Format (MOF) コンパイラ - このプログラムでは、MOF を宣言しているファイルを解析し、ファイルに定義されているクラスやインスタンスを Java クラスに変換し、その Java クラスを CIM Object Manager Repository に追加します。Repository は、管理データを一元的に格納する場所です。
MOF は CIM クラスやインスタンスを定義する言語です。MOF ファイルは、MOF 言語を使って CIM オブジェクトを記述する ASCII テキストファイルです。CIM オブジェクトは、プリンタ、ディスクドライブ、CPU などの管理リソースを表したモデルです。
管理リソースの情報は MOF ファイルに格納されることがあります。MOF は Java に変換できるため、Java Virtual Machine をもつシステムで動作するアプリケーションならこの情報の解釈や交換を行うことができます。さらに、インストールの後で、mofcomp コマンドを使って MOF ファイルをいつでもコンパイルできます。MOF の詳細は、DMTF の Web ページ http://www.dmtf.org を参照してください。
管理層 - この層のコンポーネントは、接続された WBEM クライアントに次のサービスを提供します。
クライアントおよび CIM アプリケーションプログラミングインタフェース (API) - WBEM クライアントアプリケーションは、これらの Java インタフェースを使って、管理リソースのクラスやインスタンスの作成や表示などの操作を CIM Object Manager に要求します。
Common Information Model (CIM) Object Manager - WBEM システム上の CIM オブジェクトを管理するソフトウェアです。CIM オブジェクトは、プリンタ、ディスクドライブ、CPU などの管理リソースを表したモデルです。CIM オブジェクトは内部的には Java クラスとして格納されます。CIM Object Manager は WBEM クライアント、CIM Object Manager Repository、管理リソースとの間で情報を送受信します。
CIM Object Manager Repository - CIM クラスやインスタンスの定義を一元的に格納する場所です。
プロバイダインタフェース - プロバイダは、これらのインタフェースを使って管理リソースの情報を CIM Object Manager に転送します。CIM Object Manager は、これらのインタフェースを使って、ローカルにインストールされたプロバイダに情報を転送します。
プロバイダ層 - プロバイダは、CIM Object Manager と 1 つまたは複数の管理リソースとの間の仲介を行います。CIM Object Manager は、WBEM クライアントから CIM Object Manager Repository にないデータを要求されると、要求を適切なプロバイダに転送します。
Solaris Provider - Solaris オペレーティング環境にある管理リソースの CIM Object Manager インスタンスを提供します。プロバイダは、管理デバイスに関する情報の取得や設定を行います。ネイティブプロバイダとは、管理デバイスで動作するように作成されたマシン固有のプログラムです。たとえば、Solaris システムのデータにアクセスするプロバイダには、通常、Solaris システムの照会を行う C 関数が含まれています。JNI (Java Native Interface) は、JDK に含まれている Java 用ネイティブプログラミングインタフェースです。JNI を使ってプログラムを作成すれば、コードはどのプラットフォームでも完全に動作します。JNI を使うと、Java Virtual Machine (VM) で動作する Java コードは、C、C++、アセンブリなど他の言語で作成されたアプリケーションやライブラリとともに動作します。
Solaris スキーマ - Solaris オペレーティング環境にある管理オブジェクトを記述するクラスの集合です。CIM スキーマや Solaris スキーマのクラスは CIM Object Manager Repository に格納されます。CIM スキーマは、すべての管理環境で発生する管理オブジェクトを表すためのクラス定義の集合です。
Solaris スキーマは CIM スキーマを拡張したクラス定義の集合であり、一般的な Solaris オペレーティング環境にある管理オブジェクトを表します。さらに、ユーザーは、インストールの後で、mofcomp コマンドを使って CIM スキーマ、Solaris スキーマ、あるいはその他のクラスを CIM Object Manager Repository に追加できます。
オペレーティングシステム層 - Solaris プロバイダを使えば、管理アプリケーションから Solaris オペレーティング環境にある管理リソース (デバイスやソフトウェアなど) の情報にアクセスできます。
ハードウェア層 - 管理クライアントは、サポートされる Solaris プラットフォームの管理データにアクセスできます。
ネームスペースと呼ぶディレクトリのような構造には、1 つまたは複数のスキーマを格納できます。CIM ネームスペースには、他のネームスペース、クラス、インスタンス、修飾子型を格納できます。ネームスペース内のオブジェクト名は固有のものにします。
Solaris WBEM Services では、WBEM クライアントアプリケーションが特定のネームスペースに接続されると、それ以後のすべての操作はそのネームスペース内で行われます。ネームスペースに接続されているクライアントは、そのネームスペースとそのネームスペースに含まれるすべてのネームスペースのクラスやインスタンスに (存在すれば) アクセスできます。たとえば、child というネームスペースを root¥cimv2 ネームスペースに作成すれば、root¥cimv2 に接続することにより、root¥cimv2 と root¥cimv2¥child ネームスペースのクラスやインスタンスにアクセスできます。
アプリケーションを、あるネームスペース内の下にあるネームスペースに接続することができます。これはディレクトリ内のサブディレクトリを使用するのと同じことです。アプリケーションを新しいネームスペースに接続すると、それ以後のすべての操作はそのネームスペース内で行われます。たとえば、アプリケーションを root¥cimv2¥child ネームスペースに接続すると、そのネームスペースのすべてのクラスやインスタンスにはアクセスできますが、親ネームスペース root¥cimv2 のクラスやインスタンスにはアクセスできません。
インストール時に 3 つのネームスペースがデフォルトで作成されます。
root - 他のネームスペースを含む一番上のネームスペースです。
root¥cimv2 - LogicalDisk、Netcard など、システムのオブジェクトを表すデフォルトの CIM クラスとインスタンスが入っています。これがデフォルトのネームスペースです。
root¥security - ユーザーやネームスペースのアクセス権を表すセキュリティクラスが入ります。これらのクラスは CIM Object Manager が使用します。
WBEM クライアントアプリケーションが CIM データにアクセスすると、WBEM システムは現在のホストにあるユーザーのログイン情報を検証します。ユーザーには、デフォルトで CIM スキーマと Solaris スキーマに対する読み取り権が与えられます。CIM スキーマには、システムにあるすべての管理オブジェクトが標準形式で記述されています。WBEM 対応のすべてのシステムやアプリケーションは、この標準形式を解釈できます。
プロバイダとは、管理オブジェクトと通信してデータにアクセスするクラスです。プロバイダは、統合と解釈のためにこの情報を CIM Object Manager に転送します。CIM Object Manager は、CIM Object Manager Repository にないデータを管理アプリケーションから要求されると、要求をプロバイダに転送します。
CIM Object Manager は、オブジェクトプロバイダのアプリケーションプログラミングインタフェース (API) を使ってプロバイダと通信します。
アプリケーションが動的データを CIM Object Manager に要求すると、CIM Object Manager はプロバイダインタフェースを使って要求をプロバイダに渡します。
プロバイダは、CIM Object Manager の要求に対し次のことを行います。
WBEM クライアントと WBEM システムは同じシステムで動作することも、別々のシステムで動作することもできます。WBEM システムには複数の WBEM クライアントを接続できます。一般的な WBEM システムでは、4 つから 5 つの WBEM クライアントがサポートされます。
Solaris WBEM Services は、Version 1.0 Specification for CIM Operations over HTTP をサポートします。この仕様では、XML を使って CIM のオブジェクトやメッセージを記述します。XML は、Web 上のデータを記述するための標準マークアップ言語です。この仕様では、XML マークアップを拡張して CIM のオブジェクトや操作を定義します。XML は Web 上に送信可能なデータを記述する標準的な方法であるため、WBEM クライアントは、XML データを解析できる任意の WBEM システム上の CIM データにアクセスできます。
Sun WBEM Software Development Kit (SDK) には、WBEM 対応の管理デバイスと通信する管理アプリケーションの作成に必要なコンポーネントが含まれています。さらに、開発者はこのツールキットを使ってプロバイダを作成できます。プロバイダとは管理オブジェクトと通信してデータにアクセスするプログラムです。Sun WBEM SDK を使って開発したすべての管理アプリケーションは Java プラットフォームで実行できます。
WBEM クライアントアプリケーションは、Sun WBEM SDK API を使って CIM オブジェクトを操作するプログラムです。クライアントアプリケーションは、通常、CIM API を使ってオブジェクト (ネームスペース、クラス、インスタンスなど) を構築し、初期化します。次に、クライアントアプリケーションは Client API を使ってオブジェクトを CIM Object Manager に渡し、CIM のネームスペース、クラス、インスタンスの作成などの WBEM 操作を要求します。
Sun WBEM SDK は、どの Java 環境にでもインストールし、実行できます。Sun WBEM SDK は、スタンドアロンアプリケーションとして使用することも、Solaris WBEM Services といっしょに使用することもできます。Sun WBEM SDK は、http://www.sun.com/developers/tools/sw_overview.html#foundation の Sun Developer Connection から入手できます。