インストール時に 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 スキーマのすべての MOF ファイルを #pragma Include ステートメントでリスト表示する。MOF ファイルが読み込まれコンパイルされる順番を指定する |
Solaris_CIMOM1.0.mof |
CIM Object Manager が使用するすべてのシステムプロパティを含む |
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_Network1.0.mof |
ネットワークドメイン、IP サブネット、およびネーミングサービス (NIS、NIS+、LDAP、DNS、およびサーバー /etc ファイルを含む) に関連するクラスを定義する |
Solaris_Users1.0.mof |
ユーザーのアカウントで実行することのできるクラスを定義する |
ファイルの詳細は、下記の各項を参照してください。
Solaris_Schema1.0.mof ファイルは、Solaris スキーマに属するすべての MOF ファイルの最上位レベルのコンテナです。このファイルには、MOF ファイルがコンパイル順に表示されています。コンパイルによって生成される Java クラスは CIM Object Manager に送信されます。CIM Object Manager は、それらの Java クラスをイベントとして規定するか、CIM Object Manager Repository に送信し、オブジェクトとして格納します。以下の Solaris_Schema1.0.mof ファイルのリスト表示では、Include ステートメントを必要なコンパイルの順に示しています。
/* Title: Solaris Master MOF 1.0 Description: Include pragmas for all other mofs Date: 05/09/00 Version: 1.0 Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved. */ #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 ("usr/sadm/mof/Solaris_Network1.0.mof") #pragma Include ("usr/sadm/mof/Solaris_Users1.0.mof") #pragma Include ("usr/sadm/mof/Solaris_CIMOM1.0.mof") // This must be the last include since it changes the CIM namespace #pragma Include ("usr/sadm/mof/Solaris_Acl1.0.mof") |
コンパイラは、Solaris_Schema1.0.mof ファイルの宣言を 1 行ずつ解析し、Include ステートメントに指定されたファイルをコンパイルします。このようにしてコンパイラは、Solaris_Schema1.0.mof ファイルに記述されているすべてのファイルをコンパイルします。
Solaris_CIMOM1.0.mof ファイルには、CIM Object Manager が使用するすべてのシステムプロパティが含まれます。
/* Title : Solaris CIMOM mof specification Description: Models the system properties used by the CIMOM Date: 05/09/00 Version: 1.0 Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved. */ #pragma namespace ("root/system") Qualifier Abstract : boolean = false, Scope(class, association, indication), Flavor(DisableOverride, Restricted); Qualifier Association : boolean = false, Scope(class, association), Flavor(DisableOverride); Qualifier Key : boolean = false, Scope(property, reference), Flavor(DisableOverride); Qualifier Override : string = null, Scope(property, method, reference); Qualifier Description : string = null, Scope(any), Flavor(Translatable); Qualifier Expensive : boolean = false, Scope(property, reference, method, class, association); Qualifier In : boolean = true, Scope(parameter); Qualifier Provider : string = null, Scope(any); [Provider("internal"), Description("Each instance becomes part of the classpath") ] class Solaris_ProviderPath { [key] string pathurl; }; [Provider("internal"), Description("This class represents the CIMOM") ] class Solaris_CIMOM { [key] string name; [Description("Shuts down the CIMOM")] sint8 shutdown(); }; |
Solaris_Core1.0.mof ファイルは、Solaris_Schema1.0.mof ファイルの後にコンパイルされる最初の Solaris スキーマファイルです。このファイルには、Solaris Provider の Solaris_ComputerSystem クラスの定義、および Solaris_LogRecord クラス、Solaris_LogService クラス、 Solaris_LogServiceProperties クラス、Solaris_LogServiceSetting クラスの定義が含まれます。
Solaris_Core1.0.mof ファイルの最初のセクションでは、Solaris_ComputerSystem の定義を CIM_UnitaryComputerSystem クラスの拡張として設定します。
[Provider("com.sun.wbem.solarisprovider.computersystem.Solaris_ComputerSystem")] class Solaris_ComputerSystem:CIM_UnitaryComputerSystem { }; |
Solaris_LogRecord は、WBEM のシステムログに書き込めるデータのタイプを定義します。
[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogRecord")] 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 の拡張として定義します。このクラスではロギングサービスの操作を制御します。
[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogService")] 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); }; |
Solaris_LogServiceProperties クラスは、CIM_Setting の拡張として定義されます。
[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogServiceProperties")] class Solaris_LogServiceProperties:CIM_Setting { |
このクラスのプロパティは、ログファイルの次の機能を制御します。
Directory - ログファイルを書き込むディレクトリ
FileSize - ログファイルの名前を変更し、ログファイルを保存するために必要なログファイルのサイズ
NumFiles - アーカイブに保存できるログファイルの数
SyslogSwitch - ログデータを 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 |
ビルドホスト名と、その後ろにタイムスタンプを含む文字列 |
インストール日付 | INSTDATE |
オペレーティングシステムがインストールされた日付と時刻 |
サポート情報 | HOTLINE |
サポートが必要なときの連絡先を示す文字列 |
Solaris_Application1.0.mof ファイルでは、さらに、アプリケーションの問題や更新バージョンに対する修正をパッチの形で提供します。次の表は、指定できるパッチの属性とその説明です。パッチの属性に含まれる情報はすべて、showrev -p コマンドにより取得することができます。
表 B-3 提供可能なパッチ情報パッチ属性 | 説明 |
廃止 (Obsoletes) | 廃止されたパッチや現在のパッチに統合されているパッチを示す |
必須 (Requires) | 現在のパッチが動作するために必要なパッチのリスト |
非互換 (Incompatibles) | 現在のパッチと互換性のないパッチのリスト |
パッケージ (Packages) | このパッチが修正するパッケージのリスト |
メーカー (Manufacturer) | メーカー名のリスト |
インストール日付 (Installation Date) | パッチがインストールされた日付と時刻を示す、日付/時刻の値 |
Solaris_System1.0.mof ファイルは、以下のクラスを定義します。
Solaris_Process
Solaris_OperatingSystem
Solaris_InstalledOS
Solaris_RunningOS
Solaris_OSProcess
Solaris_LocalFileSystem
Solaris_UFS
Solaris_HSFS
Solaris_NFS
Solaris_Directory
Solaris_ScheduledJob
Solaris_ScheduledJob_Cron
Solaris_JobScheduler
Solaris_JobScheduler_Cron
Solaris_DisklessClient
Solaris_OsService
さらに、Solaris_System1.0.mof ファイルは以下の関連クラスを定義します。
Solaris_Mount
Solaris_NFSMount
Solaris_NFSExport
Solaris_UFSMount
Solaris_HSFSMount
Solaris_OwningJobScheduler
Solaris_HostedJobScheduler
Solaris_SystemDevice
Solaris_Device1.0.mof ファイルでは、次のクラスが定義されます。
Solaris_Processor
Solaris_Environment
Solaris_DiskDrive
Solaris_DiskPartition
Solaris_SerialPort
Solaris_SerialPortConfiguration
Solaris_SerialPortSetting
Solaris_EthernetAdapter
Solaris_SoundDevice
Solaris_Keyboard
Solaris_TimeZone
Solaris_Printer
Solaris_PrintJob
Solaris_PrintService
Solaris_PrintQueue
Solaris_PrintSAP
さらに、Solaris_Device1.0.mof ファイルは以下の関連クラスを定義します。
Solaris_MediaPresent
Solaris_QueueForPrintService
Solaris_OwningPrintQueue
Solaris_PrinterServicingQueue
Solaris_SystemTimeZone
Solaris_SerialPort クラスはブール値プロパティとして定義されているため、ボーレートやパリティなどのシリアルポート特性をポートでどのように処理するかを制御できます。Solaris_PortConfiguration クラスのプロパティで、ユーザーが参照および変更可能なデータ値を指定することができます。
Solaris_Printer クラスおよび関連するクラスのプロパティは CIM_Printer クラスから継承され、ユーザーはプリンタおよび印刷サービスについて値を指定することができます。
Solaris_TimeZone クラスのプロパティにより、日付の設定や変更のために値を指定することができます。
Solaris_SystemTimeZone クラスは、Solaris_ComputerSystem と Solaris_TimeZone クラス間の関連です。そのプロパティは、Element (Solaris_ComputerSystem インスタンスへの CIM_ObjectPath の値を保持する) と、Setting (Solaris_TimeZone インスタンスへの CIM_ObjectPath の値を保持する) です。
[Association, Provider ("com.sun.wbem.solarisprovider.tz.Solaris_SystemTimeZone")] class Solaris_SystemTimeZone:Solaris_SystemSetting { [override("Element")] Solaris_ComputerSystem REF Element; [override("Setting")] Solaris_TimeZone REF Setting; }; |
このファイルでは Solaris WBEM Services のセキュリティクラスを指定します。このファイルは、以下のアクセス制御リスト、ユーザー、およびネームスペースの基底クラスを定義します。
Solaris_Acl
Solaris_UserAcl
Solaris_NamespaceAcl
これらのクラスについては、第 3 章「セキュリティの管理」の 「API によるアクセス制御の設定」 を参照してください。
Solaris_Network1.0.mof ファイルは、ネットワークドメイン、IP サブネット、およびネーミングサービス (NIS、NIS+、LDAP、DNS、サーバー /etc ファイルを含む) に関連するクラスを定義します。以下のクラスが定義されます。
Solaris_AdminDomain
Solaris_SystemAdminDomain
Solaris_NisAdminDomain
Solaris_NisplusAdminDomain
Solaris_LdapAdminDomain
Solaris_DnsAdminDomain
Solaris_IPProtocolEndpoint
Solaris_IPSubnet
Solaris_Users1.0.mof ファイルは、以下のクラスを定義します。
Solaris_UserAccount
Solaris_UserGroup
Solaris_UserTemplate
Solaris_UserHomeDirectory
Solaris_AuthorizationAttribute
Solaris_ExecutionProfile
Solaris_ProfileAttribute
Solaris_MailBox
Solaris_EmailAlias