Inventory Database Schema in ZfS

The following section describes the database schema classes and the extensions and associations made to the CIM schema for use in ZfS. These extensions have ZENworks or ManageWise as their schema name. ZENworks.classname refers to the extended class in the ZENworks schema and ManageWise.classname refers to the extended class in the ManageWise schema.

The following sections will help you understand the ZfS 3 database schema:


Case Study of CIM Schema Implementation in ZfS

The following scenario describes an inventoried server that has two parallel ports with a specified interrupt number.

In the following schema diagram, the CIM_UnitaryComputerSystem represents a managed inventory system.

In this illustration, class CIM.PointingDevice associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemDevice.PartComponent pointing to CIM.PointingDevice. The relationship between the two classes is one to many. This means a computer system might have more than one pointing devices.

Class CIM.IRQ associates to CIM.PointingDevice using the association CIM.AllocatedResource. Dependent pointing to CIM.PointingDevice and Antecedent pointing to CIM.IRQ.

Class ZENworks.ZENKeyboard associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemDevice.PartComponent pointing to ZENworks.ZENKeyboard. The relationship between the two classes is one to one. This means a computer system can have only one Keyboard.

Class ZENworks.BIOS associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemBIOS.PartComponent pointing to ZENworks.BIOS. The relationship between the two classes is one to one. This means a computer system can have only one BIOS.

Class CIM.ZENworks.ParallelPort associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemDevice.PartComponent pointing to CIM.ZENworks.ParallelPort. The relationship between the two classes is one to many. This means a computer system might have more than one parallel port.

Class ZENworks.BUS associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemBUS.PartComponent pointing to ZENworks.BUS. The relationship between the two classes is one to one. This means a computer system can have only one BUS.

Class ManageWise.Usera associates to CIM.UnitaryComputerSystem using CurrentLoginUser and LastLoginUser. In the CurrentLoginUser association, the specific instance of User is the one who is currently logged into the inventoried server. In the LastLoginUser association, the specific instance of User is the one who logged last into the inventoried server.

Class CIM.IRQ associates to CIM.ParallelPort using the association CIM.AllocatedResource. Dependent pointing to CIM.ParallelPort and Antecedent pointing to CIM.IRQ.


Schema diagram for CIM_UnitaryComputerSystem with its associations

The schema diagram illustrates the following:

All other classes follow similar representation. For an explanation of the CIM and extended classes, see CIM Classes and Extension Classes in ZfS . For schema diagrams of other classes, see Schema Diagrams of CIM and the Extension Schema in ZfS .


Legends for Schema Diagrams

The legends for reading the schema diagrams are as follows:

For an explanation about CIM schema, see the CIM 2.2 schema specification on the DMTF Web site.


CIM Classes and Extension Classes in ZfS

The following table describes the CIM and extension classes that ZfS uses:

CIM and Extension Class in ZfS Description of the details that the Class Models

CIM.PointingDevice

Any pointing device available on the managed system. Mostly used to model the mouse.

ZENworks.SystemInfo

Identification details about the system such as serial number and asset tag.

ZENworks.PointingDeviceDeviceDriver

Device driver that is installed with the pointing device.

ZENworks.SerialPort

Serial ports on the managed system.

ZENworks.ParallelPort

Parallel ports on the managed system.

ZENworks.ZENKeyboard

Attributes modeling the properties of the system keyboard.

ZENworks.BIOS

BIOS software on the system.

ZENworks.Bus

System bus in the system.

ManageWise.User

Details of the user who was logged in to the inventoried server.

ManageWise.MSDomainName

Name of the domain to which the Windows NT inventoried server is attached.

ManageWise.NDSName

DN name and tree under which the managed inventoried server is registered in Novell eDirectoryTM.

CIM.VideoBIOSElement:

Video driver.

CIM.Processor

Processor of the inventoried server.

ZENworks.Videoadapter

Properties of the monitor and the adapter connecting it.

ZENworks.ZENOperatingSystem

Details of the operating system.

ZENworks.InventoryScanner

Details of the inventory scanner that has scanned for hardware and software details of the managed inventoried server.

ZENworks.NetwareClient

NetWare client version of the inventoried server.

CIM.Product

Software installed on the managed system. Key attributes are the names of the product, vendor, and version.

ZENworks.ZENNetworkAdapter

Information on the properties of the network adapter.

ZENworks.NetworkAdapterDriver

Network card adapter driver information.

CIM.IPProtocolEndpoint

IP address of the inventoried server.

CIM.IPXProtocolEndpoint

IPX address of the inventoried server.

CIM.LANEndpoint

Active MAC address.

ManageWise.DNSName

DNS name of the inventoried server.

ZENworks.SoundAdapter

Description of the multimedia adapter on the inventoried server.

ZENworks.ZENPOTSModem

Physical configuration of the modem device.

CIM.DMA

Information about the system DMA channels.

CIM.CacheMemory

Information about the configured system cache.

CIM.IRQ

List of Interrupt channels and their status on the system. They are also associated to devices that use the specified interrupt number.

ZENworks.MotherBoard

Information about the motherboard on the inventoried server.

CIM.PowerSupply

Information about the power supply unit of the inventoried server.

CIM.Battery

Physical details of the system battery.

CIM.Card

Details of adapter cards mounted on the system board.

CIM.Slot

Expansion slots available on the system board.

ZENworks.StoragePhysicalMedia

Physical information about the storage devices on the inventoried server, such as hard disk, floppy drives, CD drives, and others.

ZENworks.LogicalDiskette

Drive mapped to the floppy drive.

ZENworks.PhysicalDiskette

Derived from ZENworks.StoragePhysicalMedia to model the floppy disk drive.

ZENworks.PhysicalDiskDrive

Derived from ZENworks.StoragePhysicalMedia to model the hard disk.

ZENworks.LogicalDiskDrive

Information about the local drives on the hard disk.

CIM.LocalFileSystem

Information about the local file system installed on the Windows servers.

ZENworks.PhysicalCDROM

Derived from ZENworks.StoragePhysicalMedia to model the CD drive.

ZENworks.WinOperatingSystem

Details of the Windows operating system.

ZENworks.NetWareOperatingSystem

Details of the NetWare operating system.

ZENworks.ZENDiskDrive

Details of fixed or removable disk drives.

ZENworks.LogicalCDROM

Drive mapped to the CD drive.


Schema Diagrams of CIM and the Extension Schema in ZfS

The following schema diagrams of the CIM and extension schema model the Inventory database in ZfS.

In the following schema diagram, the CIM_UnitaryComputerSystem represents a managed inventory system.

In this illustration, class CIM.PointingDevice associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemDevice.PartComponent pointing to CIM.PointingDevice. The relationship between the two classes is one to many. This means a computer system might have more than one pointing devices.

Class CIM.IRQ associates to CIM.PointingDevice using the association CIM.AllocatedResource. Dependent pointing to CIM.PointingDevice and Antecedent pointing to CIM.IRQ.

Class ZENworks.ZENKeyboard associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemDevice.PartComponent pointing to ZENworks.ZENKeyboard. The relationship between the two classes is one to one. This means a computer system can have only one Keyboard.

Class ZENworks.BIOS associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemBIOS.PartComponent pointing to ZENworks.BIOS. The relationship between the two classes is one to one. This means a computer system can have only one BIOS.

Class CIM.ZENworks.ParallelPort associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemDevice.PartComponent pointing to CIM.ZENworks.ParallelPort. The relationship between the two classes is one to many. This means a computer system might have more than one parallel port.

Class ZENworks.BUS associates to CIM.UnitaryComputerSystem using the association CIM.SystemDevice with SystemDevice.GroupComponent pointing to CIM.UnitaryComputerSystem and SystemBUS.PartComponent pointing to ZENworks.BUS. The relationship between the two classes is one to one. This means a computer system can have only one BUS.

Class ManageWise.User has two associations with CIM.UnitaryComputerSystem; CurrentLoginUser and LastLoginUser. In the CurrentLoginUser association, the specific instance of User is the one who is currently logged into the inventoried server. In the LastLoginUser association, the specific instance of User is the one who logged last into the inventoried server.

Class CIM.IRQ associates to CIM.ParallelPort using the association CIM.AllocatedResource. Dependent pointing to CIM.ParallelPort and Antecedent pointing to CIM.IRQ.


Schema diagram for CIM_UnitaryComputerSystem and extension schema model


Schema diagram for CIM_UnitaryComputerSystem


Schema diagram for CIM_UnitaryComputerSystem


Schema diagram for CIM_UnitaryComputerSystem


Schema diagram for CIM_UnitaryComputerSystem


Schema diagram for CIM_UnitaryComputerSystem


Sample Inventory Database Queries

The following are sample queries for retrieving the inventory information from the ZfS Inventory database.

Refer to the schema diagrams in Schema Diagrams of CIM and the Extension Schema in ZfS to find out the associated schema classes and attribute information.

  1. Retrieve the name and ID of all inventoried servers from the database and also to the eDirectory tree to which these servers are registered. The query is as follows:

    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$

  2. Retrieve the asset tag, manufacturer, and serial number of all the inventoried servers in the database. The query is as follows:

    SELECT m.Tag,m.Manufacturer,m.SerialNumber FROM
    cim.UnitaryComputerSystem u,zenworks.SystemInfo
    m,cim.ComputerSystemPackage s WHERE s.Antecedent=m.id$and
    s.Dependent=u.id$

  3. Retrieve all the software applications with their versions that are installed on the inventoried server 'SJOHN164_99_139_79' registered under the 'NOVELL_AUS' eDirectory tree. The query is as follows:

    SELECT m.name,m.version FROM cim.Product
    m,cim.UnitaryComputerSystem u,zenworks.InstalledProduct
    s,managewise.NDSName m1,managewise.Designates s1 WHERE
    (s.Product=m.id$and s.ComputerSystem=u.id$) AND
    (s1.Designation=m1.id$and s1.Host=u.id$) AND
    m1.label='SJOHN164_99_139_79' and m1.tree='Novell_AUS'

  4. Retrieve the processor information for the inventoried server 'SJOHN164_99_139_79'. The query is as follows:

    SELECT
    m.DeviceID,m.Family,m.Stepping,m.OtherFamilyDescription,
    m.MaxClockSpeed,m.Role,m.UpgradeMethod FROM cim.Processor
    m,cim.UnitaryComputerSystem
    u,cim.ComputerSystemProcessor s managewise.NDSName
    m1,managewise.Designates s1 WHERE
    (s.PartComponent=m.id$and s.GroupComponent=u.id$) AND
    m1.label='SJOHN164_99_139_79'

  5. Retrieve the ID of the UnitaryComputerSystem used for the inventoried server 'SJOHN164_99_139_79'. The query is as follows:

    SELECT name from CIM.UnitaryComputerSystem WHERE
    name='SJOHN164_99_139_79'

  6. When you know the ID of the UnitaryComputerSystem for a particular inventoried server from the query as shown in query 5, query 4 can be modified as:

    SELECT
    m.DeviceID,m.Family,m.Stepping,m.OtherFamilyDescription,
    m.MaxClockSpeed,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$

    Substitute the ID of the specified inventoried server in place of the ? value for u.id in the query.

  7. List the IP address, IPX address, and MAC address of all inventoried servers in the database. The query is as follows:

    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$)

    Modify the same query to get the information for a specified inventoried server as follows:

    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$=?

    Use the query as shown in query 5 to retrieve the ID of the specified inventoried server and substitute the ID in place of the ? value for u.id in the query.

  8. Retrieve the name and other properties of the drives on the hard disk of the specified inventoried server.

    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$)

    Use the query shown in query 5to retrieve the ID of the specified inventoried server and substitute the ID in place of the ? for u.id$ in the query.