インストール時に CIM Object Manager は、/usr/sadm/mof/ ディレクトリにある MOF ファイルをコンパイルします。MOF ファイルは CIM スキーマや Solaris スキーマを記述するファイルです。CIM スキーマファイルには、Common Information Model の Core Model と Common Model が実装されています。このファイル名の一部には CIM が使用されています。Solaris スキーマファイルには、Common Information Model に対する Solaris 拡張が実装されています。このファイル名の一部には Solaris が使用されています。この付録では次の Solaris スキーマファイルについて説明します。
次の表に、/usr/sadm/mof/ にある Solaris スキーマファイルの簡単な概要を示します。
表 B-1 Solaris スキーマファイル| Solaris スキーマファイル | 説明 |
| Solaris_Schema1.0.mof |
Solaris スキーマのすべてのコンポーネントを読み込む。Solaris スキーマの各 MOF ファイルを実行する順序を指定する |
| Solaris_Core1.0.mof |
WBEM のコア機能を実装する。これにより、ユーザーはロケール、修飾子、プロバイダを設定できる |
| Solaris_Application1.0.mof |
Solaris のパッケージやパッチを CIM に作成する |
| Solaris_System1.0.mof |
システムに対する Solaris スキーマコンポーネントを作成する。これらのコンポーネントは、システムのオペレーティングシステムやプロセスなど。Solaris_Process や Solaris_OperatingSystem の定義によって CIM スキーマの定義を拡張する |
| Solaris_Device1.0.mof |
コンピュータが CIM Object Manager とともに動作するように、システムのプロセッサを記述する |
| Solaris_Acl1.0.mof |
ユーザー ACL の基底クラスと修飾子を設定する |
ファイルの詳細は、下記の各項を参照してください。
Solaris_Schema1.0.mof ファイルは、Solaris スキーマに属するすべての MOF ファイルの最上位レベルのコンテナです。このファイルには、MOF ファイルがコンパイル順に表示されています。コンパイルによって生成される Java クラスは CIM Object Manager に送信されます。CIM Object Manager は、それらの Java クラスをイベントとして規定するか、CIM Object Manager Repository に送信し、オブジェクトとして格納します。次のコードは、Include 宣言がコンパイル順に指定されています。
// ===================================================================
// Title: Solaris Master MOF 1.0
// Filename: Solaris_Schema1.0.mof
// Version: 1.0
// Author: Sun Microsystems, Inc.
// Date: 02/01/1999
// Description:
// ===================================================================
// ===================================================================
// Includes
// ===================================================================
#pragma Include ("usr/sadm/mof/Solaris_Core1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Application1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_System1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Device1.0.mof")
//#pragma Include ("/opt/SUNWconn/wbem/schema/Solaris_Physical1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Acl1.0.mof")
|
コンパイラは、Solaris_Schema1.0.mof ファイルの宣言を 1 行ずつ解析し、Include ステートメントに指定されたファイルをコンパイルします。このようにしてコンパイラは、Solaris_Schema1.0.mof ファイルに記述されているすべてのファイルをコンパイルします。
Solaris_Core1.0.mof ファイルは、Solaris_Schema1.0.mof ファイルの次にコンパイルする Solaris スキーマファイルです。このファイルには、Solaris Provider の Solaris_ComputerSystem と Solaris_SerialPortSetting 部分の定義が含まれています。この定義には、LogRecord、Solaris_Product、Solaris_LogService などがあります。
Solaris_Core1.0.mof ファイルの最初のセクションでは、Solaris_ComputerSystem の定義を CIM_UnitaryComputerSystem クラスの拡張として設定します。
[Provider("com.sun.wbem.solarisprovider.Solaris")]
class Solaris_ComputerSystem:CIM_UnitaryComputerSystem
{
};
|
Solaris_SerialPortSetting 定義では、CIM_SerialPortSetting クラスを Solaris オペレーティング環境に拡張します。Solaris_LogRecord クラスでは、WBEM システムログに書き込めるデータの型を定義します。
[Provider ("com.sun.wbem.solarisprovider.Solaris")]
class Solaris_SerialPortSetting:CIM_ElementSetting
{
[override("Element")]
Solaris_SerialPort REF Element;
[override("Setting")]
Solaris_SerialPortConfiguration REF Setting;
};
[Provider ("com.sun.wbem.solarisprovider.Solaris")]
class Solaris_LogRecord
{
|
WBEM システムログは、アプリケーションログ、システムログ、セキュリティログという 3 つの一般的なカテゴリに分類できます。ログレコードには、情報ログ、警告ログ、エラーログといった異なる重要度レベルが割り当てられます。アプリケーションの中で Solaris_LogRecord 呼び出しを使ってロギングを有効にする方法については、第 5 章「イベントのロギング」 の「API によるロギングの有効化」を参照してください。
すべてのログレコードには、Solaris_LogRecord クラスに定義されている標準形式を使用します。Solaris_LogRecord のプロパティには、アプリケーションからログレコードに渡されるデータの型が指定されています。CIM Object Manager や CIM Object Manager Repository は、記録されるデータを識別するためにデータの一部を必要とします。このようなプロパティには、読み取り専用であることを示すために [read, key] 修飾子が付けられます。このようなプロパティのデータは表示できますが、変更はできません。次のリストは、Solaris_Core1.0.mof ファイルの Solaris_LogRecord に割り当てられるプロパティを示しています。
{
[read, key]
sint64 RecordID;
[read, key]
sint32 RecordHashCode;
[read, key]
string Filename;
[read]
datetime RecordDate;
[read, write]
sint32 category;
[read, write]
sint32 severity;
[read, write]
string AppName;
[read, write]
string UserName;
[read, write]
string ClientMachineName;
[read, write]
string ServerMachineName;
[read, write]
string SummaryMessage;
[read, write]
string DetailedMessage;
[read, write]
string data;
[read, write]
boolean SyslogFlag;
};
|
Solaris_LogRecord のプロパティを定義したら、Solaris_LogService クラスを CIM_Service の拡張として定義します。Solaris_LogService ではロギングサービスの操作を制御します。
[Provider ("com.sun.wbem.solarisprovider.Solaris")]
class Solaris_LogService : CIM_Service
{
|
Solaris_LogService クラスに指定するそれぞれの関数では、ログファイルのデータをどのように処理するかを定義します。たとえば、clearLog 関数では、ログファイルのすべてのデータを消去し、ログファイルを一新して新しいデータを受け取れるようにします。
{
sint32 clearLog([IN] string fileName);
sint64 getNumRecords([IN] string fileName, [OUT] sint64 numRec);
sint32 listLogFiles([OUT]string logFiles[]);
sint32 getCurrentLogFileName([OUT] string fileName);
sint32 getNumLogFiles([OUT] sint32 numFiles);
sint64 getLogFileSize([OUT] sint64 fileSize);
sint32 getSyslogSwitch([OUT] string switch);
sint32 getLogStorageName([OUT] string fileName);
sint32 getLogFileDir([OUT] string dirName);
sint32 setProperties([IN] string data[]);
};
|
Solaris_LogServicePropertiesクラスでは、ログファイルの次の属性を制御します。
ログファイルを書き込むディレクトリ
ログファイルの名前
ログファイルが作成された日付
ログファイルの名前を変更し、ログファイルを保存するために必要なログファイルのサイズ
アーカイブに保存できるログファイルの数
ログデータを SysLog に書き込めるかどうか。SysLog は、Solaris オペレーティング環境のデフォルトのロギングシステム
Solaris_Application1.0.mofファイルでは、Solaris スキーマを拡張するアプリケーションパッケージやパッチを設定します。
Solaris_Application1.0.mof ファイルには、標準の Solaris パッケージを表すクラスが含まれています。これらのパッケージは、Solaris オペレーティング環境に個別にインストールしたり、削除したりすることができます。
次の表は、設定できるアプリケーションパッケージの属性です。pkginfo フィールドは、pkginfo コマンドを実行したときにパッケージ属性が表示されるフィールド、説明はパッケージ属性の説明です。
表 B-2 指定可能なパッケージ情報| パッケージ属性 | pkginfo フィールド | 説明 |
|
名前 | PKGINST |
パッケージに付ける名前。通常、名前は、ベンダー名を表す 3〜4 文字の大文字とパッケージを固有に識別する 5 文字までの小文字で表す |
|
説明 | DESC |
パッケージの簡単な説明を文字列で指定する |
|
キャプション | NAME |
パッケージの簡単な追加の説明を文字列で指定する |
|
カテゴリ | CATEGORY |
パッケージに含まれる情報の種類。これは、パッケージにビデオアプリケーション、グラフィックアプリケーション、Java アプリケーションなどが含まれる場合に使用する。カテゴリは自由形式の文字列で、通常、文字列には system や application などの単語が含まれる。カテゴリ文字列には、複数の単語をコンマで区切って指定できる。値としては、ALE, graphics, java, video, JFP, SyMON. などが指定できる |
|
アーキテクチャ | ARCH |
このパッケージが適用されるシステムアーキテクチャ。アーキテクチャ属性は文字列かその列挙。マニュアルページだけからなるパッケージなど汎用テキストパッケージを指定する場合は、all を使用する。バイナリを表す場合は、プロセッサタイプを示す sparc や i386 を使用する。カーネルを表す場合は、プロセッサタイプのサブタイプを示す sparc.sun4u を使用する |
|
ベースディレクトリ | BASEDIR |
パッケージがインストールされているトップレベルのディレクトリを示す有効な UNIX のパス |
|
メーカー | VENDOR |
製品の製造メーカー |
|
ビルド番号 | PSTAMP |
ビルドホスト名とタイムスタンプを含む文字列 |
|
インストール日付 | INSIDE |
オペレーティングシステムがインストールされた日付と時刻 |
|
パッケージの状態 | STATUS |
パッケージが完全にインストールされているかどうかを示す値。unknown 、completely installed 、partially installed のいずれか |
|
サポート情報 | HOTLINE |
サポートが必要なときの連絡先を示す文字列 |
Solaris_Application1.0.mof ファイルでは、さらに、アプリケーションの問題や更新バージョンに対する修正をパッチの形で提供します。次の表は、指定できるパッチの属性とその説明です。
表 B-3 提供可能なパッチ情報| パッチ属性 | 説明 |
| 廃止 | 廃止されたパッチや現在のパッチに統合されているパッチを示す |
| 必須 | 現在のパッチが動作するために必要なパッチのリスト |
| 非互換 | 現在のパッチと互換性のないパッチのリスト |
| メーカー | メーカー名のリスト |
| インストール日付 | パッチがインストールされた日付と時刻を示す日付/時刻を示す値 |
Solaris_System1.0.mof ファイルでは、Solaris_Process クラスと Solaris_OperatingSystem クラスを定義します。
// ==================================================================
// Solaris_Process
// ==================================================================
[Provider("Solaris"),
Description ("A Solaris process that is running.")
]
class Solaris_Process:CIM_Process
{
};
// ==================================================================
// Solaris_OperatingSystem
// ==================================================================
[Provider("Solaris"),
Description ("The Solaris Operating System.")
]
class Solaris_OperatingSystem:CIM_OperatingSystem
{
};
|
Solaris_Device1.0.mof ファイルでは、次のクラスが定義されます。
Solaris_Processor クラス。CIM_Processor の拡張として定義される
Solaris_DiskDrive クラス。CIM_DiskDrive の拡張として定義される
Solaris_SerialPort クラス。CIM_SerialController の拡張として定義される。この構成クラス Solaris_SerialPortConfiguration が CIM_Setting の拡張として定義される
Solaris_Processor は CIM_Processor の拡張として次のプロパティで定義されます。
class Solaris_Processor:CIM_Processor
{
string Name;
string Description;
string Architecture;
string ClockSpeed;
string SparcVersion;
uint32 D_Cache;
uint32 E_Cache;
uint32 I_Cache;
};
|
現在、Solaris_DiskDrive に対し次のクラス定義されています。
]
class Solaris_DiskDrive:CIM_DiskDrive
{
|
Solaris_SerialPort クラスはブール値プロパティとして定義されているため、ボーレートやパリティなどのシリアルポート特性をポートでどのように処理するかを制御できます。
// ==================================================================
// Solaris_SerialPort
// ==================================================================
[Provider("com.sun.wbem.solarisprovider.Solaris"),
Description (
"This is the MOF file that defines a Solaris serial port.")
]
class Solaris_SerialPort:CIM_SerialController
{
[read]
boolean ServiceEnabled;
[read]
boolean SettableBaudRate;
[read]
boolean SettableDataBits;
[read]
boolean SettableFlowControl;
[read]
boolean SettableParity;
[read]
boolean SettableParityCheck;
[read]
boolean SettableStopBits;
[read]
boolean SupportsParityCheck;
[read]
boolean SupportsXOnXOff;
[read]
boolean SupportsXOnXOffSet;
[read]
string PortMonitor;
[read]
string ServiceTag;
[read]
string Comment;
boolean DisablePortService();
};
|
Solaris_PortConfiguration のプロパティでは、データの値をユーザーが表示したり、変更したりできるかどうかを指定します。
[Provider ("Solaris") ]
class Solaris_SerialPortConfiguration:CIM_Setting
{
[read, write]
boolean ServiceEnabled;
[read, write]
uint32 BaudRate;
[read, write]
string TerminalType;
[read, write]
boolean TTYFlag_Init;
[read, write]
boolean TTYFlag_Bidirectional;
[read, write]
boolean TTYFlag_CarrierConnect;
[read, write]
boolean SoftwareCarrier;
[read, write]
boolean CreateUtmp;
[read, write]
string LoginPrompt;
[read, write]
string Comment;
[read, key]
string ServiceTag;
[read, key]
string PortName;
[read]
string deviceName;
[read, write]
string PortmonTag;
[read, write]
string ServiceProgram;
[read, write]
string StreamsModules;
[read, write]
string Timeout; };
|
このファイルでは Solaris WBEM Services のセキュリティクラスを指定します。このファイルには、Solaris オペレーティング環境のアクセス制御リスト、ユーザー、およびネームスペースの基底クラスが定義されます。このファイルについては、第 3 章「セキュリティの管理」の「API によるアクセス制御の設定」を参照してください。Solaris WBEM Services のセキュリティ機能については、第 3 章「セキュリティの管理」を参照してください。