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