// Copyright (c) 2005 DMTF. All rights reserved. // Add 'Service/Support Pack' // to SoftwareIdentity classifications // Updated description. // Add UmlPackagePath // qualifier values to CIM Schema. // ================================================================== // CIM_SoftwareIdentity // ================================================================== [Version ( "2.14.0" ), UMLPackagePath ( "CIM::Core::Software" ), Description ( "SoftwareIdentity provides descriptive information about a " "software component for asset tracking and/or installation " "dependency management. When the IsEntity property has the " "value TRUE, the instance of SoftwareIdentity represents an " "individually identifiable entity similar to Physical Element. " "SoftwareIdentity does NOT indicate whether the software is " "installed, executing, etc. This extra information may be " "provided through specialized associations to Software " "Identity. For instance, both InstalledSoftwareIdentity and " "ElementSoftwareIdentity may be used to indicate that the " "software identified by this class is installed. " "SoftwareIdentity is used when managing the software components " "of a ManagedElement that is management focus. Since software " "may be acquired, SoftwareIdentity can be associated with a " "Product using the ProductSoftwareComponent relationship. The " "Application Model manages the deployment and installation of " "software via the classes, SoftwareFeatures and " "SoftwareElements. SoftwareFeature and SoftwareElement are used " "when the software component is the management focus. The " "deployment/installation concepts are related to the " "asset/identity one. In fact, a SoftwareIdentity may correspond " "to a Product, or to one or more SoftwareFeatures or " "SoftwareElements - depending on the granularity of these " "classes and the deployment model. The correspondence of " "Software Identity to Product, SoftwareFeature or " "SoftwareElement is indicated using the ConcreteIdentity " "association. Note that there may not be sufficient detail or " "instrumentation to instantiate ConcreteIdentity. And, if the " "association is instantiated, some duplication of information " "may result. For example, the Vendor described in the instances " "of Product and SoftwareIdentity MAY be the same. However, this " "is not necessarily true, and it is why vendor and similar " "information are duplicated in this class. \n" "Note that ConcreteIdentity can also be used to describe the " "relationship of the software to any LogicalFiles that result " "from installing it. As above, there may not be sufficient " "detail or instrumentation to instantiate this association.")] class CIM_SoftwareIdentity : CIM_LogicalElement { [Key, Description ( "Within the scope of the instantiating Namespace, InstanceID " "opaquely and uniquely identifies an instance of this class. " "In order to ensure uniqueness within the NameSpace, the " "value of InstanceID SHOULD be constructed using the " "following 'preferred' algorithm: \n" ": \n" "Where and are separated by a colon ':', " "and where MUST include a copyrighted, trademarked " "or otherwise unique name that is owned by the business " "entity creating/defining the InstanceID, or is a registered " "ID that is assigned to the business entity by a recognized " "global authority (This is similar to the _ structure of Schema class names.) In " "addition, to ensure uniqueness MUST NOT contain a " "colon (':'). When using this algorithm, the first colon to " "appear in InstanceID MUST appear between and " ". \n" " is chosen by the business entity and SHOULD not " "be re-used to identify different underlying (real-world) " "elements. If the above 'preferred' algorithm is not used, " "the defining entity MUST assure that the resultant " "InstanceID is not re-used across any InstanceIDs produced " "by this or other providers for this instance's NameSpace. \n" "For DMTF defined instances, the 'preferred' algorithm MUST " "be used with the set to 'CIM'.")] string InstanceID; [Description ( "The major number component of the software's version " "information - for example, '12' from version 12.1(3)T. This " "property is defined as a numeric value to allow the " "determination of 'newer' vs. 'older' releases. A 'newer' " "major release is indicated by a larger numeric value.")] uint16 MajorVersion; [Description ( "The minor number component of the software's version " "information - for example, '1' from version 12.1(3)T. This " "property is defined as a numeric value to allow the " "determination of 'newer' vs. 'older' releases. A 'newer' " "minor release is indicated by a larger numeric value.")] uint16 MinorVersion; [Description ( "The revision or maintenance release component of the " "software's version information - for example, '3' from " "version 12.1(3)T. This property is defined as a numeric " "value to allow the determination of 'newer' vs. 'older' " "releases. A 'newer' revision is indicated by a larger " "numeric value.")] uint16 RevisionNumber; [Description ( "The build number of the software.")] uint16 BuildNumber; [Description ( "A string representing the complete software version " "information - for example, '12.1(3)T'. This string and the " "numeric major/minor/revision/build properties are " "complementary. Since vastly different representations and " "semantics exist for versions, it is not assumed that one " "representation is sufficient to permit a client to perform " "computations (i.e., the values are numeric) and a user to " "recognize the software's version (i.e., the values are " "understandable and readable). Hence, both numeric and " "string representations of version are provided.")] string VersionString; [Description ( "Specifies the target operating systems of the software. " "This property should be used when a target operating system " "is not listed in the TargetOSTypes array values.")] string TargetOperatingSystems[]; [Description ( "Manufacturer of this software.")] string Manufacturer; [Description ( "The language editions supported by the software. The " "language codes defined in ISO 639 should be used.")] string Languages[]; [Description ( "An array of enumerated integers that classify this " "software. For example, the software MAY be instrumentation " "(value=5) or firmware and diagnostic software (10 and 7). " "The use of value 6, Firmware/BIOS, is being deprecated. " "Instead, either the value 10 (Firmware) and/or 11 " "(BIOS/FCode) SHOULD be used. The value 13, Software Bundle, " "identifies a software package consisting of multiple " "discrete software instances that can be installed " "individually or together. \n" "Each contained software instance is represented by an " "instance of SoftwareIdentity that is associated to this " "instance of SoftwareIdentity instance via a Component " "association."), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "..", "0x8000..0xFFFF" }, Values { "Unknown", "Other", "Driver", "Configuration Software", "Application Software", "Instrumentation", "Firmware/BIOS", "Diagnostic Software", "Operating System", "Middleware", "Firmware", "BIOS/FCode", "Support/Service Pack", "Software Bundle", "DMTF Reserved", "Vendor Reserved" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_SoftwareIdentity.ClassificationDescriptions" }] uint16 Classifications[]; [Description ( "An array of free-form strings providing more detailed " "explanations for any of the entries in the Classifications " "array. Note that each entry is related to one in the " "Classifications array located at the same index."), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_SoftwareIdentity.Classifications" }] string ClassificationDescriptions[]; [Description ( "A manufacturer-allocated number used to identify the " "software.")] string SerialNumber; [Description ( "The date the software was released.")] datetime ReleaseDate; };