次の節では、データベーススキーマクラスおよびZENworks for Desktopsで使用するためのCIMスキーマの拡張と関連付けについて説明します。これらの拡張では、そのスキーマ名としてZENworksまたはManageWiseを使用します。 ZENworks.classnameはZENworksスキーマの拡張クラスを示し、ManageWise.classnameはManageWiseスキーマの拡張クラスを示します。
次の節は、ZENworks for Desktops 4.xデータベーススキーマの理解に役立ちます。
次の構成は、特定の割り込み番号を持つ2つのパラレルポートを備えたインベントリ対象ワークステーションを示しています。
次のスキーマ図で、CIM_UnitaryComputerSystemは管理対象のインベントリシステムを表します。
この図では、クラスCIM.PointingDeviceは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとCIM.PointingDeviceを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムには複数のポインティングデバイスを接続できます。
クラスCIM.IRQは、関連付けCIM.AllocatedResourceによってCIM.PointingDeviceに関連付けられています。DependentはCIM.PointingDeviceを参照し、AntecedentはCIM.IRQを参照します。
クラスZENworks.ZENKeyboardは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.ZENKeyboardを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムにはキーボードを1台だけ接続できます。
クラスZENworks.BIOSは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.BIOSを参照するSystemBIOS.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムはBIOSを1つだけ持つことができます。
クラスCIM.ZENworks.ParallelPortは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとCIM.ZENworks.ParallelPortを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムは複数のパラレルポートを持つことができます。
クラスZENworks.BUSは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.BUSを参照するSystemBUS.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムはBUSを1つだけ持つことができます。
クラスManageWise.Userは、CurrentLoginUserとLastLoginUserによってCIM.UnitaryComputerSystemに関連付けられています。CurrentLoginUserでは、Userの特定のインスタンスは、インベントリ対象ワークステーションに現在ログインしているユーザを表します。LastLoginUserでは、Userの特定のインスタンスは、インベントリ対象ワークステーションに最後にログインしたユーザを表します。
クラスCIM.IRQは、関連付けCIM.AllocatedResourceによってCIM.ParallelPortに関連付けられています。DependentはCIM.ParallelPortを参照し、AntecedentはCIM.IRQを参照します。

スキーマ図は次の内容を示しています。
ZENworks_ParallelPortには、3つのインスタンスがあります。これらのインスタンスは、CIM_SystemDeviceに関連付けられた3つのインスタンスを使用するCIM_UnitaryComputerSystemのインスタンス1つに関連付けられています。CIM_SystemDevice.GroupComponentはUnitaryComputerSystemを参照し、CIM_SystemDevice.PartComponentはParallelPortを参照します。
これは、1対nオブジェクト参照関係と呼ばれ、図では「1..*」として示されています。同様に、ParallelPortのすべてのインスタンスには、ポートのIRQを指定するCIM_IRQに対応するインスタンスがあります。これは1対1の関係で、図では1..1として示されています。
その他のクラスもすべて同様の表記に従います。その他のクラスのスキーマ図については、ZENworks for DesktopsのCIMと拡張スキーマのスキーマ図を参照してください。
スキーマ図を読むための凡例は次のとおりです。
CIMスキーマについての詳細は、DMTFのWebサイトにあるCIM 2.2スキーマの仕様を参照してください。
次の表は、ZENworks for Desktopsが使用するCIMクラスと拡張クラスを示しています。
次のCIMと拡張スキーマのスキーマ図は、ZENworks for Desktopsのインベントリデータベースをモデリングしたものです。
次のスキーマ図で、CIM_UnitaryComputerSystemは管理対象のインベントリシステムを表します。
この図では、クラスCIM.PointingDeviceは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとCIM.PointingDeviceを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムには複数のポインティングデバイスを接続できます。
クラスCIM.IRQは、関連付けCIM.AllocatedResourceによってCIM.PointingDeviceに関連付けられています。DependentはCIM.PointingDeviceを参照し、AntecedentはCIM.IRQを参照します。
クラスZENworks.ZENKeyboardは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.ZENKeyboardを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムにはキーボードを1台だけ接続できます。
クラスZENworks.BIOSは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.BIOSを参照するSystemBIOS.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムはBIOSを1つだけ持つことができます。
クラスCIM.ZENworks.ParallelPortは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとCIM.ZENworks.ParallelPortを参照するSystemDevice.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対多です。つまり、コンピュータシステムは複数のパラレルポートを持つことができます。
クラスZENworks.BUSは、CIM.UnitaryComputerSystemを参照するSystemDevice.GroupComponentとZENworks.BUSを参照するSystemBUS.PartComponentの関連付けCIM.SystemDeviceによって、CIM.UnitaryComputerSystemに関連付けられています。この2つのクラスの関係は1対1です。つまり、コンピュータシステムはただ1つのBUSを持つことができます。
クラスManageWise.Userには、CIM.UnitaryComputerSystemとの間に、CurrentLoginUserおよびLastLoginUserという2つの関連付けがあります。CurrentLoginUserでは、Userの特定のインスタンスは、インベントリ対象ワークステーションに現在ログインしているユーザを表します。LastLoginUserでは、Userの特定のインスタンスは、インベントリ対象ワークステーションに最後にログインしたユーザを表します。
クラスCIM.IRQは、関連付けCIM.AllocatedResourceによってCIM.ParallelPortに関連付けられています。DependentはCIM.ParallelPortを参照し、AntecedentはCIM.IRQを参照します。

データベース内でカスタムインベントリ属性には次のクォリファイアがあります。
カスタムインベントリ情報は、ZENworks.CustomNameとZenworks.CustomValueの2つのテーブルに保存されます。
ZENworks.CustomNameテーブルには、属性名、ID、タイプ(使用しません)、およびクラス名が含まれています。新しいカスタム属性が保存されると、属性IDは自動的に増加します。
次のテーブルは、ZENworks.CustomNameテーブルの例です。
| ID | 名前 | クラス名 |
|---|---|---|
1 |
Cost |
ZENworks.VideoAdapter |
2 |
ProductUnit |
CIM.UnitaryComputerSystem |
Zenworks.CustomValueテーブルには、オブジェクトインスタンスID、属性値、および関連付けられているカスタム属性名の参照が含まれています。CustomValueテーブルでは、カスタム属性にはインベントリオブジェクトの異なるインスタンスに複数の値を設定できますが、インベントリオブジェクトの同じインスタンスに複数の値を設定することはできません。
次のテーブルは、Zenworks.CustomValueテーブルの例です。
| ID | インスタンス | CID | 値 |
|---|---|---|---|
28147497671065605 |
1 |
1 |
200.39 |
28147497671065606 |
1 |
1 |
345 |
69147497671045662 |
1 |
2 |
BAY-2 |
前例では、CustomNameテーブルにはCostとProductUnitの2つのカスタム属性があります。CustomValueテーブルには3つの行があります。そのうち2つは、ビデオアダプタのコストを示し、3つめの行はComputerSystemに直接割り当てられたProductUnit属性の値を示しています。
次の照会例は、ZENworks for Desktopsインベントリデータベースからインベントリ情報を取得するためのものです。
関連付けられているスキーマクラスと属性の詳細については、ZENworks for DesktopsのCIMと拡張スキーマのスキーマ図のスキーマ図を参照してください。
SELECT u.id$,m.label,m.tree FROM managewise.NDSName
m,cim.UnitaryComputerSystem u,managewise.Designates s
where s.Designation=m.id$and s.HOST=u.id$
この照会では、ツリー名はコンピュータシステム名の一部です。
SELECT m.Tag as AssetTag,m.Manufacturer,m.SerialNumber as ModelNumber FROM cim.UnitaryComputerSystem u,zenworks.SystemInfo m,cim.ComputerSystemPackage s WHERE s.Antecedent=m.id$ and s.Dependent=u.id$
SELECT m.name,m.version,m.IdentifyingNumber FROM cim.Product m,cim.UnitaryComputerSystem u, zenworks.InstalledProduct s WHERE (s.Product=m.id$ and s.ComputerSystem=u.id$) AND u.name='SJOHN164_99_139_79.Novell_AUS'AND m.Vendor LIKE 'Microsoft%'
SELECT m.DeviceID,m.Family,m.Stepping,m.OtherFamilyDescription,m.MaxClockSpeed,m.CurrentClockSpeed,m.Role,m.UpgradeMethod FROM cim.Processor m,cim.UnitaryComputerSystem u,cim.ComputerSystemProcessor s WHERE (s.PartComponent=m.id$ and s.GroupComponent=u.id$) AND u.name='SJOHN164_99_139_79.Novell_AUS'
SELECT id$ FROM CIM.UnitaryComputerSystem u,ZENworks.InventoryScanner m, CIM.InstalledSoftwareElement s WHERE u.name='SJOHN164_99_139_79.Novell_AUS'AND m.id$=s.Software AND u.id$=s.System
SELECT count(u.*) FROM CIM.UnitaryComputerSystem u,ZENworks.InventoryScanner m, CIM.InstalledSoftwareElement s WHERE m.id$=s.Software AND u.id$=s.System
SSELECT m.DeviceID,m.Family,m.Stepping,m.OtherFamilyDescription,m.MaxClockSpeed,m.CurrentClockSpeed,m.Role,m.UpgradeMethod FROM cim.Processor m,cim.UnitaryComputerSystem u,cim.ComputerSystemProcessor s u.id$=? and s.PartComponent=m.id$ and s.GroupComponent=u.id$
指定されたインベントリ対象ワークステーションのIDを、照会の「u.id」の値「?」と置き換えます。
SELECT ip.Address, ipx.Address, mac.MACAddress FROM
cim.IPProtocolEndpoint ip, cim.IPXProtocolEndpoint ipx,
cim.LANEndpoint mac, cim.UnitaryComputerSystem u,
cim.HostedAccessPoint s WHERE (s.Dependent=ip.id$ and
s.Antecedent=u.id$) AND (s.Dependent=ipx.id$ and
s.Antecedent=u.id$) AND (s.Dependent=mac.id$ and
s.Antecedent=u.id$)
同じ照会を次のように変更して、特定のインベントリ対象ワークステーションの情報を取得します。
SELECT ip.Address, ipx.Address, mac.MACAddress FROM
cim.IPProtocolEndpoint ip, cim.IPXProtocolEndpoint ipx,
cim.LANEndpoint mac, cim.UnitaryComputerSystem u,
cim.HostedAccessPoint s WHERE (s.Dependent=ip.id$ and
s.Antecedent=u.id$) AND (s.Dependent=ipx.id$ and
s.Antecedent=u.id$) AND (s.Dependent=mac.id$ and
s.Antecedent=u.id$)AND u.id$=?
照会例5に示されている照会を使用して、指定されたインベントリ対象ワークステーションのIDを取得し、そのIDを照会の「u.id」の値「?」と置き換えます。
SELECT m.id$,n.id$,m.DeviceID,n.FileSystemSize,
n.AvailableSpace,m.VolumeSerialNumber,m.caption as
VolumeLabel, n.FileSystemType FROM
ZENworks.LogicalDiskDrive m,CIM.LocalFileSystem
n,CIM.HostedFileSystem s,CIM.ResidesOnExtent r WHERE
(s.GroupComponent=? and s.PartComponent=n.id$) AND
(r.Antecedent=m.id$and r.Dependent=n.id$)
SELECT * FROM Zenworks.CustomInformation
SELECT * FROM Zenworks.CustomInformation WHERE extractClass(id) IN (SELECT id FROM MW_DBA.t$Class WHERE ClassName='CIM.UnitaryComputerSystem')