// =================================================================== // Title: Software Resources // $State: dead $ // $Date: 2006/01/17 20:13:14 $ // $Source: /cvs/MSB/pegasus/Schemas/CIMPrelim291/Attic/Application_SWResources.mof,v $ // $Revision: 1.2 $ // =================================================================== //#pragma inLine ("Includes/copyright.inc") // Copyright 1998-2005 Distributed Management Task Force, Inc. (DMTF). // All rights reserved. // DMTF is a not-for-profit association of industry members dedicated // to promoting enterprise and systems management and interoperability. // DMTF specifications and documents may be reproduced for uses // consistent with this purpose by members and non-members, // provided that correct attribution is given. // As DMTF specifications may be revised from time to time, // the particular version and release date should always be noted. // // Implementation of certain elements of this standard or proposed // standard may be subject to third party patent rights, including // provisional patent rights (herein "patent rights"). DMTF makes // no representations to users of the standard as to the existence // of such rights, and is not responsible to recognize, disclose, or // identify any or all such third party patent right, owners or // claimants, nor for any incomplete or inaccurate identification or // disclosure of such rights, owners or claimants. DMTF shall have no // liability to any party, in any manner or circumstance, under any // legal theory whatsoever, for failure to recognize, disclose, or // identify any such third party patent rights, or for such party's // reliance on the standard or incorporation thereof in its product, // protocols or testing procedures. DMTF shall have no liability to // any party implementing such standard, whether such implementation // is foreseeable or not, nor to any patent owner or claimant, and shall // have no liability or responsibility for costs or losses incurred if // a standard is withdrawn or modified after publication, and shall be // indemnified and held harmless by any party implementing the // standard from any and all claims of infringement by a patent owner // for such implementations. // // For information about patents held by third-parties which have // notified the DMTF that, in their opinion, such patent may relate to // or impact implementations of DMTF standards, visit // http://www.dmtf.org/about/policies/disclosures.php. //#pragma inLine // =================================================================== // Description: The classes represent the characterization of // software resources (SW resource). A SW resource is an // abstraction of the utilization of other entities in the // environment (communications, memory, files, etc.) within // the context of the software entity being managed. This version // version of software resources concentrates on // entities to transfer data over space and time from the // internal view of running software. Processor/CPU-like resources // are not considered for now. // Software for which resources exist can be vary from operating // system to application systems. An application system is // an entity that supports a particular business // function and that can be managed as an independent unit. // The behavior a software resource is that items bundled // in transfers are input to or output from the resource. // What happens to the items inside the resource depends on // type of resource (transferring data over time or space) and // the implementation. // The following types of software resources are considered: // Buffer, Queue, Protocol Endpoint, Remote Interface, Pool, // Cache, File and Database. // The software resources consist of statistics that // describe their input, output and allocation (size). // An associated settings class allows for setting // the limits (I/O, allocation) of the software // resource. The limits are designed as one of the levers // to manipulate and control the operation of the software // through managing software resources. The statistics // provide the operational parameters of the limits, performance // metrics and error information for performance and fault // management functions as well as management tasks like // monitoring, reporting or root cause analysis. // Some of the software resources (file, protocol endpoint // and database) are linked to existing classes since they // cannot share the same base class due to existing, // incompatible inheritance hierarchies and the fact that they // are concurrently viewed and controlled outside the software // by the OS. Thus, software resources are aspects of these // existing objects. // // They are maintained as a separate MOF file in the // Application Model. // // The object classes below are listed in an order that // avoids forward references. Required objects, defined // by other working groups, are omitted. // ================================================================== // Change Log for v2.9 Preliminary // 14 May 2004 // - CR 1312 - Original Software Resource Model // =================================================================== #pragma locale ("en_US") // ================================================================== // SoftwareResource // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "A Software Resource (SWR) is an abstraction of the utilization " "of other entities in the environment (communications, memory, " "files, etc.) within the context of the software entity being " "managed. SWR have a component-like implementation that is " "independently manageable from the real entity outside the " "software. These implementations are often used for storage and " "transmission. Thus, a Software Resource (SWR) is: \n" "a) any entity that is used by a system (e.g. an application " "system) to transfer data over space and time (i.e., no data " "processing in terms of creation/deletion or modification of " "data). In contrast to normal (application) services (i.e., the " "abstraction of data processing in terms of its " "creation/deletion etc.), the SWR has limits (bounds) that are " "not to be exceeded. This version does not consider resources " "like CPU. \n" "b) the system's view of such a transfer entity. Note that the " "software resource is ultimately contained by or related to a " "limited (physical or logical) resource of the encompassing " "(operating) system such as memory, storage or a communication " "links. \n" "Anything transferred by an SWR is called an 'item'. Items may " "be data, code, connections, packets, etc.. Items are atomic in " "the model, thus there is no partial items. \n" "An instance only exists if a running system exists since it is " "an internal component of the system implemented by its " "software. Software resources are potentially external entities " "like files viewed internally and (at least partially) " "controlled by the software of the system. \n" "SoftwareResource is contained by System via SystemComponent. " "At least one system (e.g., one application system or a system " "in general) contains 0 or more software resources. If more " "than one system claims to contain the software resource, it is " "a shared resource. \n" "SoftwareResource is associated to SWRLimitSetting via " "ElementSettingData. One software resource can have multiple " "limit settings. Only one of the settings is the default and " "one (potentially another one) is operational (current). " "Settings can be shared by software resources. \n" "SoftwareResource is associated to SWRStatistics via " "ElementStatisticalData. In general, one software resource is " "expected to have three statistics. The statistics type covers " "each behavior characteristics at most once. I.e., the software " "resource has at most one allocation statistcs, one input " "statistics and one output statistics. Nevertheless, the " "implementation of the software resource may exhibit more " "statistics SWRStatistics instances that cover more " "context-specific behavior characteristics.")] class CIM_SoftwareResource : CIM_EnabledLogicalElement { [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 ( "IsAspect indicates whether the instance of this software " "resource refers to another entity residing outside the - " "software that implements the resource. This knowledge " "should kept into account in order to solve control " "conflicts. The property value is 'IsAspect' if the " "instrumentation knows that there is a corresponding outside " "managed entity, e.g., a file that corresponds to this " "software resource. Values: \n" "Is Aspect: The instance of the software resource is an " "aspect. The logically identical entity external to the " "software (e.g., a file) is known to exist. Is not Aspect: " "The instance of the software resource is not an aspect. No " "logically identical entity external to the software (e.g., " "likely in the case of a buffer) is known to exist."), ValueMap { "0", "2" , "3", "4..32767", "32768..65535" }, Values { "Unknown", "Is Aspect", "Is not Aspect", "DMTF Reserved","Vendor Reserved" }] uint16 IsAspect; [Description ( "The property value is 'Aspect Is in Use' if the software " "resource is currently control of the software. E.g., it " "still has a file handle of file. Any operations on the " "corresponding outside entity (e.g., the file) can now " "result in errors. E.g., the deletion of file from the " "outside could be refused since it still opened by the " "software. Note that currently no conflict resolution is " "designed into software resource classes. \n" "Values: \n" "Aspect Is in Use: The software resource is in use by the " "software (i.e., at least a reference to the resource is " "held by the software). Access to the resource may result in " "conflicting usage of any logically identical entity " "external to this software. \n" "Aspect Is not in Use: In special cases it may be the case " "that the software resource is currently not controlled by " "the software (i.e., a file is currently not accessed by the " "software and the file handle is returned. The software " "resource object exists without having the file in use."), ValueMap { "0", "2", "3", "4..32767", "32768..65535" }, Values { "Unknown", "Aspect Is in Use", "Aspect Is not in Use", "DMTF Reserved","Vendor Reserved" }] uint16 AspectInUse = 2; [Description ( "ByReference indicates whether the software resource handles " "only references to items, but not the items itself. This " "can be the case for buffers or pools, where the items " "reside in the memory that was originally allocated for them " "and only the reference is kept in the buffer. Other " "implementations or software resource types, especially " "distributed resources that require data transfer over space " "(i.e., communication) may deal with the entire item. \n" "Values: \n" "Items Are References: The software resource holds only " "pointers to the items (e.g., connections in a connection " "pool. \n" "Items Are Copies: The software resources transfers entire " "items, i.e., the items are copied from one place to another " "(e.g., packets in a communication)."), ValueMap { "0", "2", "3", "4..32767", "32768..65535" }, Values { "Unknown", "Items Are References", "Items Are Copies", "DMTF Reserved","Vendor Reserved" }] uint16 ByReference; [Description ( "The type of the software resource. Although the behavior of " "the different software resource types is modeled similarly, " "different names for resources transferring data over time " "or/and space have been established. SoftwareResourceType " "conveys their original, most common name. \n" "Values: \n" "Buffer: volatile storage (transfer over time). \n" "Queue: transfer over time (the internal FIFO) and often " "over space (as entry point to a communication link. Both, " "volatile and persistent versions exit. \n" "Protocol Endpoint: transfer over space, entry point to a " "communication link \n" "Remote Interface: A generalized protocol endpoint without a " "specific protocol. Is a proxy. \n" "Pool: A special buffer. Clearly the lower allocation limit " "is the important limit, i.e., depletion of the pool is a " "problem. \n" "Cache: Another special buffer with an aging algorithm for " "dropping items held in the cache. \n" "File: the simplest form of persistent storage. \n" "Database: a more sophisticated form of persistent storage " "that may consist of several files."), ValueMap { "0", "2", "3", "4", "5", "6", "7", "8", "9", "10..32767", "32768..65535" }, Values { "Unknown", "Buffer", "Queue", "Protocol Endpoint", "Remote Interface", "Pool", "Cache", "File", "Database", "DMTF Reserved","Vendor Reserved" }] uint16 SoftwareResourceType; [Description ( "Error situations may sometimes require drastic measures. " "One of them being the complete re-initialization of an " "software resource. Re-initialization includes that the " "resource is emptied entirely and the limit settings are " "newly applied. \n" "Reintialize Already in Progress: software resource still " "being reinitialized."), ValueMap { "0", "1", "2", "3", "4", "6", "7", "8", "9..32767", "32768..65535" }, Values { "Success", "Not Supported", "Unknown", "Timeout", "Failed", "Access Denied", "Not Found", "Reinitialize already in Progress", "DMTF Reserved", "Vendor Specific" }] uint32 Reinitialize(); }; // ================================================================== // SWRLimitSetting // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "SWRLimitSetting describes the limits of the software resource. " "In essence it is possible to define 6 different types of " "limits in groups of three. Each group consists of allocation, " "input and output limits. One group is always expressed by " "technical units (the default) and the other group in " "domain-specific units (e.g., items per second as the input " "limit). Thus, they are of different types. In order to avoid " "inconsistencies, only one group of settings is writable. The " "other one is derived from the writable limits. I.e., if " "technical limits are specifiable by the user (the type of the " "settings is technical) then the other set of limits (the " "non-writeable and derived settings) are domain-specific. \n" "SWRLimitSetting is associated to SoftwareResource via " "ElementSettingData. One software resource can have multiple " "limit settings. Only one of the settings is the default and " "one (potentially another one) is operational (current). " "Settings can be shared by software resources.")] class CIM_SWRLimitSetting : CIM_SettingData { [Write, Description ( "This is the lower limit of the input of the software " "resource. In general, the limit is a rate (i.e., items per " "second or Bytes per second). The corresponding unit is " "found at the property InputUnit. A null value indicates " "that no lower limit exists. The property value can be " "modified and is persisted on saving the modification."), ModelCorrespondence { "CIM_SWRLimitSetting.InputUnit" }] uint32 LowerInputLimit; [Write, Description ( "This is the upper limit of the input of the software " "resource. In general, the limit is a rate (i.e., items per " "second or Bytes per second). The corresponding unit is " "found at the property InputUnit. A null value indicates " "that no upper limit exists. The property value can be " "modified and is persisted on saving the modification."), ModelCorrespondence { "CIM_SWRLimitSetting.InputUnit" }] uint32 UpperInputLimit; [Description ( "This is the unit of the input limits of the software " "resource. In general, the unit describes a rate (i.e., " "items per second or Bytes per second). A null value is only " "allowed if neither upper nor lower limit exist. Otherwise, " "the property value is read-only and assumed to be " "correspond to the implementation of the software resource " "to which the settings have to apply."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherInputUnit", "CIM_SWRLimitSetting.LimitSettingType" }] string InputUnit; [Write, Description ( "This is the lower limit of the output of the software " "resource. In general, the limit is a rate (i.e., items per " "second or Bytes per second). The corresponding unit is " "found at the property OutputUnit. A null value indicates " "that no lower limit exists. The property value can be " "modified and is persisted on saving the modification."), ModelCorrespondence { "CIM_SWRLimitSetting.OutputUnit" }] uint32 LowerOutputLimit; [Write, Description ( "This is the upper limit of the output of the software " "resource. In general, the limit is a rate (i.e., items per " "second or Bytes per second). The corresponding unit is " "found at the property OutputUnit. A null value indicates " "that no upper limit exists. The property value can be " "modified and is persisted on saving the modification."), ModelCorrespondence { "CIM_SWRLimitSetting.OutputUnit" }] uint32 UpperOutputLimit; [Description ( "This is the unit of the output limits of the software " "resource. In general, the unit describes a rate (i.e., " "items per second or Bytes per second). A null value is only " "allowed if neither upper nor lower limit exist. Otherwise, " "the property value is read-only and assumed to be " "correspond to the implementation of the software resource " "to which the settings have to apply."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherOutputUnit", "CIM_SWRLimitSetting.LimitSettingType" }] string OutputUnit; [Write, Description ( "This is the lower limit of the allocation (i.e., size) of " "the software resource. In general, the limit is a quantity " "(i.e., items or Megabytes). The corresponding unit is found " "at the property AllocationUnit. A null value indicates that " "no allocation limit exists. The property value can be " "modified and is persisted on saving the modification."), ModelCorrespondence { "CIM_SWRLimitSetting.AllocationUnit" }] uint32 LowerAllocationLimit; [Write, Description ( "This is the upper limit of the allocation (i.e., size) of " "the software resource. In general, the limit is a quantity " "(i.e., items or Megabytes). The corresponding unit is found " "at the property AllocationUnit. A null value indicates that " "no allocation limit exists. The property value can be " "modified and is persisted on saving the modification."), ModelCorrespondence { "CIM_SWRLimitSetting.AllocationUnit" }] uint32 UpperAllocationLimit; [Description ( "This is the unit of the allocation limits of the software " "resource. In general, the unit describes a quantity (i.e., " "items MegyBytes). A null value is only allowed if neither " "upper nor lower limit exist. Otherwise, the property value " "is read-only and assumed to correspond to the " "implementation of the software resource to which the " "settings have to apply. The default value is of the " "technical domain (kB per second)."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherAllocationUnit", "CIM_SWRLimitSetting.LimitSettingType" }] string AllocationUnit ="MB"; [Description ( "This property is not null, if the lower input limit of the " "software resource can be calculated from the property " "LowerInputLimit. If LowerInputLimit is described by " "technical units (i.e., InputUnit applies to the technical " "domain), OtherLowerInputLimit is described by " "domain-specific units."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherInputUnit" }] uint32 OtherLowerInputLimit; [Description ( "This property is not null, if the upper input limit of the " "software resource can be calculated from the property " "UpperInputLimit. If UpperInputLimit is described by " "technical units (i.e., InputUnit applies to the technical " "domain), OtherUpperInputLimit is described by " "domain-specific units."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherInputUnit" }] uint32 OtherUpperInputLimit; [Description ( "This is the complementary unit of the input limits. If " "InputUnit is a unit of the technical domain, OtherInputUnit " "is a domain-specific unit."), ModelCorrespondence { "CIM_SWRLimitSetting.InputUnit" }] string OtherInputUnit; [Description ( "This property is not null, if the lower output limit of the " "software resource can be calculated from the property " "LowerOutputLimit. If LowerOutputLimit is described by " "technical units (i.e., OutputUnit applies to the technical " "domain), OtherLowerOutputLimit is described by " "domain-specific units."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherOutputUnit" }] uint32 OtherLowerOutputLimit; [Description ( "This property is not null, if the upper output limit of the " "software resource can be calculated from the property " "UpperOutputLimit. If UpperOutputLimit is described by " "technical units (i.e., OutputUnit applies to the technical " "domain), OtherUpperOutputLimit is described by " "domain-specific units."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherOutputUnit" }] uint32 OtherUpperOutputLimit; [Description ( "This is the complementary unit of the output limits. If " "OutputUnit is a unit of the technical domain, " "OtherOutputUnit is a domain-specific unit."), ModelCorrespondence { "CIM_SWRLimitSetting.OutputUnit" }] string OtherOutputUnit; [Description ( "This property is not null, if the lower allocation limit of " "the software resource can be calculated from the property " "LowerAllocationLimit. If LowerAllocationLimit is described " "by technical units (i.e., AllocationUnit applies to the " "technical domain), OtherLowerAllocationLimit is described " "by domain-specific units."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherAllocationUnit" }] uint32 OtherLowerAllocationLimit; [Description ( "This property is not null, if the upper allocation limit of " "the software resource can be calculated from the property " "UpperAllocationLimit. If UpperAllocationLimit is described " "by technical units (i.e., AllocationUnit applies to the " "technical domain), OtherUpperAllocationLimit is described " "by domain-specific units."), ModelCorrespondence { "CIM_SWRLimitSetting.OtherAllocationUnit" }] uint32 OtherUpperAllocationLimit; [Description ( "This is the complementary unit of the output limits. If " "OutputUnit is a unit of the technical domain, " "OtherOutputUnit is a domain-specific unit."), ModelCorrespondence { "CIM_SWRLimitSetting.AllocationUnit" }] string OtherAllocationUnit; [Description ( "LimitSettingType describes whether the limits are specified " "in terms of technical units or domain-specific units. " "Domain-specific is meant to be the items unit or 'business' " "unit of the usage the software resource. It may range from " "objects or tables (in a buffer) to orders in a queue. It " "depends on the implementation and usage context of the " "software resource. The default is the technical domain. \n" "Values: \n" "Technical: The writable setting properties are assigned a " "technical unit e.g Kilobytes. \n" "Domain-Specific: The writable setting properties are " "assigned a business-like, item-oriented unit e.g messages, " "objects, orders, etc.."), ValueMap { "0", "2", "3", "4..32767", "32768..65535" }, Values { "Unknown", "Technical", "Domain-Specific", "DMTF Reserved","Vendor Reserved" }] uint16 LimitSettingType = 2; }; // ================================================================== // SWRStatistics // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "This is base class for the software resource statistics. " "Depending on the implementation it can be of six types that " "identify the unit type (technical or domain-specific) and the " "behavioral characteristic of the software resource " "(allocation, input or output). The statistics is also the " "place at which the corresponding operational settings of the " "software resource appear. These parameters are changeable " "on-the-fly (i.e., they are writable). They bear the same " "constraints regarding their interdependencies between " "technical and domain-specific units as SWRLimitSettings. \n" "Point metrics apply to the point in time of end of the sample, " "interval metrics apply to the sample interval. It is up to the " "implementation of the statistcs whether the sample interval " "ends at the point in time of the request of the instance of " "this class (working with internal ring buffers) or whether the " "underlying instrumentation autonomously determines the " "beginning and the end of the sample interval. \n" "SWRStatistics is associated to SoftwareResource via " "ElementStatisticalData. In general, one software resource is " "expected to have three statistics. The statistics type covers " "each behavior characteristics at most once. I.e., the software " "resource has at most one allocation statistcs, one input " "statistics and one output statistics. Nevertheless, the " "implementation of the software resource may exhibit more " "statistics SWRStatistics instances that cover more " "context-specific behavior characteristics.")] class CIM_SWRStatistics : CIM_StatisticalData { [Write, Description ( "This is an operational lower limit parameter of the " "software resource. The limit applies to input, output or " "allocation according to the statistics type. The " "corresponding unit is found at the property Unit. A null " "value indicates that no lower limit exists. The property " "value can be modified. Whether changes are persisted on " "saving the modification depends on the implementation of " "the software resource. The default behavior is no " "persistence."), ModelCorrespondence { "CIM_SWRLimitSetting.LowerInputLimit", "CIM_SWRLimitSetting.LowerOutputLimit", "CIM_SWRLimitSetting.LowerAllocationLimit" }] uint32 LowerLimit; [Write, Description ( "This is an operational upper limit parameter of the " "software resource. The limit applies to input, output or " "allocation according to the statistics type. The " "corresponding unit is found at the property Unit. A null " "value indicates that no upper limit exists. The property " "value can be modified. Whether changes are persisted on " "saving the modification depends on the implementation of " "the software resource. The default behavior is no " "persistence."), ModelCorrespondence { "CIM_SWRLimitSetting.UpperInputLimit", "CIM_SWRLimitSetting.UpperOutputLimit", "CIM_SWRLimitSetting.UpperAllocationLimit" }] uint32 UpperLimit; [Description ( "This is the unit of the numeric metrics and the set of " "upper and lower limits of the software resource. The " "property should always have a value, null should not " "appear.The property value is read-only and assumed to " "correspond to the implementation of the software resource " "to which the operational parameters and metrics apply. The " "default value is of the technical domain (Kilobytes)."), ModelCorrespondence { "CIM_SWRLimitSetting.InputUnit", "CIM_SWRLimitSetting.OutputUnit", "CIM_SWRLimitSetting.AllocationUnit" }] string Unit = "kB"; [Description ( "This property is not null, if the operational lower limit " "parameter of the software resource can be calculated from " "the property LowerLimit. If LowerLimit is described by " "technical units (i.e., InputUnit applies to the technical " "domain), OtherLowerLimit is described by domain-specific " "units.")] uint32 OtherLowerLimit; [Description ( "This property is not null, if the operational upper limit " "parameter of the software resource can be calculated from " "the property UpperLimit. If UpperLimit is described by " "technical units (i.e., InputUnit applies to the technical " "domain), OtherUpperLimit is described by domain-specific " "units.")] uint32 OtherUpperLimit; [Description ( "This is the complementary unit of the operational limit " "parameters. If Unit is a unit of the technical domain, " "OtherUnit is a domain-specific unit.")] string OtherUnit; [Description ( "Characteristic allows for the distinction of the software " "resource behavior characteristics. This is either the " "allocation, input and output. \n" "Values: \n" "Allocation: Statistics about the size of the software " "resource. \n" "Input: Statistics about the data transfer into the software " "resource. \n" "Output: Statistics about the data transfer from the " "software resource."), ValueMap { "0", "2", "3", "4", "5..32767", "32768..65535" }, Values { "Unknown", "Allocation", "Input", "Output", "DMTF Reserved","Vendor Reserved" }] uint16 Characteristic; [Description ( "StatisticsType describes whether the statistics is " "specified in terms of technical units or domain-specific " "units. Domain-specific is meant to be the items unit or " "'business' unit of the usage the software resource. It may " "range from objects or tables (in a buffer) to orders in a " "queue. It depends on the implementation and usage context " "of the software resource. The default is the technical " "domain. \n" "Values: \n" "Technical: The writable operational parameters and the " "affected metrics are assigned a technical unit e.g " "Kilobytes. \n" "Domain-Specific: The writable operational parameters and " "the affected metrics are assigned a business-like, " "item-oriented unit e.g messages, objects, orders, etc.."), ValueMap { "0", "2", "3", "4..32767", "32768..65535" }, Values { "Unknown", "Technical", "Domain-Specific", "DMTF Reserved","Vendor Reserved" }] uint16 StatisticsType = 2; [Description ( "This is the error code of the first error that occurs " "during the sample interval. It is assumed that the first " "error, detected throughout the sample interval, is the " "first symptom of the root cause and therefore closer than " "the last error. Unrelated, subsequent errors during the " "sample interval of the statistics do not show up. Such a " "behavior is tolerable compared to the relatively short " "length of the sample interval. \n" "Values: \n" "Unspecified Error: No error code can be determined. \n" "Violate Upper Limit: The upper limit of the behavior " "characteristic (allocation, input, output) was exceeded. \n" "Violate Lower Limit: The lower limit was underrun. \n" "Erroneous Transfer: The transfer had to be aborted. This " "message does not overlap with 'Erroneous Item'. \n" "Erroneous Item: The handling of at least one item was " "problematic and the item had to be dropped, suspended or " "rejected. \n" "Access to Software Resource Denied: The access control of " "software resource refused the use of the it."), ValueMap { "0", "2", "3", "4", "5", "6", "7..32767", "32768..65535" }, Values { "Unspecified Error", "Violate Upper Limit", "Violate Lower Limit", "Erroneous Transfer" , "Erroneous Item", "Access to Software Resource Denied", "DMTF Reserved", "Vendor Reserved" }] uint16 FirstError; [Description ( "FirstErrorTimeStamp is the point in time at which " "FirstError was detected.")] datetime FirstErrorTimeStamp; [Description ( "This is the error code of the last error that occured. The " "value of LastError remains from one sample interval to the " "next even if a sample interval is error-free. \n" "Values: \n" "Unspecified Error: No error code can be determined. \n" "Violate Upper Limit: The upper limit of the behavior " "characteristic (allocation, input, output) was exceeded. \n" "Violate Lower Limit: The lower limit was underrun. \n" "Erroneous Transfer: The transfer had to be aborted. This " "message does not overlap with 'Erroneous Item'. \n" "Erroneous Item: The handling of at least one item was " "problematic and the item had to be dropped, suspended or " "rejected. \n" "Access to Software Resource Denied: The access control of " "software resource refused the use of the it."), ValueMap { "0", "2", "3", "4", "5", "6", "7..32767", "32768..65535" }, Values { "Unspecified Error", "Violate Upper Limit", "Violate Lower Limit", "Erroneous Transfer" , "Erroneous Item", "Access to Software Resource Denied", "DMTF Reserved", "Vendor Reserved" }] uint16 LastError; [Description ( "LastErrorTimeStamp is the point in time at which FirstError " "was detected.")] datetime LastErrorTimeStamp; [Description ( "ErrorCount is the count of errors that have been detected " "throughout the sample interval.")] uint32 ErrorCount; }; // ================================================================== // SWRAllocationStatistics // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "The metrics of SWRAllocationStatistics describe the allocation " "of the software resource. The allocation is basically the size " "of the software resource in terms of technical units (e.g., " "kB) or domain-specific units (e.g., the number of items (e.g., " "the number of messages if the software resource is of the type " "'queue'). \n" "The operational parameters regarding the allocation limits are " "surfaced also. Further details can be found in the description " "of the base class SWRStatistics. \n" "The metrics found in this statistics are raw values that " "describe the allocation behavior of the software resource as " "simple as possible. Thus, the metric values can be used most " "flexibly (e.g., cumulative, averaged, etc.). The drawback of " "the flexibility is that the likelyhood of required " "calculations - subsequent to retrieval of the values - " "increases in order to result in rates or statistical data " "needed for monitoring and reporting.")] class CIM_SWRAllocationStatistics : CIM_SWRStatistics { [Description ( "AllocationLevel describes the current size of the software " "resource in units corresponding to the type of the " "statistics (e.g., technical based on Kilobytes). The unit " "can be found at the CIM_SWRStatistics.Unit. \n" "The metric is a point metric and applies to the point in " "time of the end of the sample interval. \n" "A value of null indicates that no allocation level is " "available. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRStatistics.Unit" }] uint32 AllocationLevel; [Description ( "OtherAllocationLevel describes the current size of the " "software resource in complementary units compared to " "AllocationLevel (e.g., domain-specific units like the " "number of items: buffered objects or pooled connections). " "The unit can be found at CIM_SWRStatistics.OtherUnit. \n" "The metric is a point metric and applies to the point in " "time of the end of the sample interval. A value of null " "indicates that no allocation level is available. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRStatistics.OtherUnit", "CIM_SWRAllocationStatistics.AllocationLevel" }] uint32 OtherAllocationLevel; [Description ( "AverageItemResidenceTime describes the average period of " "time that items reside in the software resource. This is " "particular interesting for blocked or (volatile) storage " "software resources. The average takes all items into " "account that are output from the software resource (i.e., " "the items' residence time ends). \n" "A value of null indicates that no average is available. \n" "The initial value is 0.")] datetime AverageItemResidenceTime; [Description ( "AllocationHighWaterMark describes allocation peak (highest " "allocation level) reached throughout the sample interval. " "The unit depends on the type of the statistics. The " "timestamp that corresponds to the high water mark is not " "presented since the sample interval is small enough that " "the exact point in time is not significant. The metric is " "targeted to quantify errors like the violation of the upper " "limit or any capacity problems. A value of null indicates " "that no allocation level is available. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRStatistics.Unit", "CIM_SWRAllocationStatistics.AllocationHighWaterMark" }] uint32 AllocationHighWaterMark; [Description ( "HighWaterMarkTimeStamp is the point in time at which the " "high water mark was detected. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRAllocationStatistics.AllocationHighWaterMark" }] datetime HighWaterMarkTimeStamp; [Description ( "DroppedAllocationQuantity allows to further quantify the " "error of the software resource is over-used and upper " "limits are reached. In such a case, aging algorithms or " "other priorization algorithms implemented by the software " "resource may enforce the deletion of items. " "DroppedAllocationQuantity counts the items dropped due the " "resolution of such an overload. The metric's unit depends " "on the type of the statistics. If no items have been " "dropped, the value is 0. The property value is null if no " "numeric value can be provided. \n" "The initial value is 0.")] uint32 DroppedAllocationQuantity; }; // ================================================================== // SWRIOStatistics // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "The metrics of SWRIOStatistics describe the transfer behavior " "of the software resource in one particular direction (input or " "the output). The transfer is basically the amount of data " "input to or output from the software resource during a sample " "interval in terms of technical units (e.g., kB) or " "domain-specific units (e.g., the number of items (e.g., the " "number of messages if the software resource is of the type " "'queue'). \n" "The operational parameters regarding the allocation limits are " "surfaced also. Further details can be found in the description " "of the base class SWRStatistics. \n" "The metrics found in this statistics are raw values that " "describe the allocation behavior of the software resource as " "simple as possible. Thus, the metric values can be used most " "flexibly (e.g., cumulative, averaged, etc.). The drawback of " "the flexibility is that the likelyhood of required " "calculations - subsequent to retrieval of the values - " "increases in order to result in rates or statistical data " "needed for monitoring and reporting.")] class CIM_SWRIOStatistics : CIM_SWRStatistics { [Description ( "TransferredQuantity describes the quantity transferred " "to/from the software resource in units corresponding to the " "type of the statistics (e.g., technical based on " "Kilobytes). The unit can be found at the " "CIM_SWRStatistics.Unit. The direction of the transfer can " "be found at the type of the statistics. \n" "The metric accumulates the transfer quantity over the " "sample interval and is the gross amount of data transferred " "to/from the software resource. \n" "A value of null indicates that no quantity is available. " "The value is 0 if no transfer happened or all transfers " "where empty. (Note that this must be true for both the " "request and the response). \n" "The corresponding limits are expected to be a rate. One " "method to detect limit violations require the division of " "TransferredQuantity by the sample interval in order to " "result in rate that then can be compared to the " "corresponding limit. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRStatistics.Unit", "CIM_SWRStatistics.StatisticsType" }] uint32 TransferredQuantity; [Description ( "OtherTransferredQuantity describes the transfer size of the " "software resource in complementary units compared to " "AllocationLevel (e.g., domain-specific units like the " "number of items: buffered objects or pooled connections). " "The unit can be found at CIM_SWRStatistics.OtherUnit. \n" "The metric accumulates the transfer quantity over the " "sample interval. \n" "A value of null indicates that no quantity is available. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRStatistics.OtherUnit", "CIM_SWRIOStatistics.TransferredQuantity" }] uint32 OtherTransferredQuantity; [Description ( "Transfers is the count of all transfers (sucessful or not) " "that happened during the sample interval. If the value is " "null no number can be provided. \n" "The initial value is 0.")] uint32 Transfers; [Description ( "AverageTransferTime is the average time all counted " "transfers took during the sample interval. If the value is " "null no average can be provided. \n" "The initial value is 0.")] datetime AverageTransferTime; [Description ( "SuccessfulTransfers is the count of all transfers that " "could be executing fully (i.e., transfer all items " "requested) during the sample interval. If the value is null " "no number can be provided. In case of errors, the property " "can be used to quantify the quality with which the software " "resource works. \n" "The initial value is 0.")] uint32 SuccessfulTransfers; [Description ( "SuccessfulQuantity specifies the successfully transferred " "amount of data to/from the software resource. It is the net " "amount in contrast to TransferredQuantity. \n" "The unit can be found at the CIM_SWRStatistics.Unit. The " "direction of the transfer can be found at the type of the " "statistics. \n" "If the value is null no number can be provided. \n" "The initial value is 0."), ModelCorrespondence { "CIM_SWRStatistics.Unit" }] uint32 SuccessfulQuantity; [Description ( "CountOfActiveTransfers is a point metric and applies to the " "point in time of the end of the sample interval. It " "describes the number of in-progress transfers. This also " "includes pending, suspended, open and asynchronous requests " "that obviously have not been acknowledged to the requestor " "of the transfer. If the implementation of the resource is " "single process, single thread and synchronous (i.e., no " "internal queue), the number cannot be greater than 1 since " "no parallel requests can occur. \n" "A value of null indicates that no count is available. A " "value of 0 indicates no active requests. An increasing " "number indicates that the software resource hangs and a " "reinitialize() can solve the problem. \n" "The initial value is 0.")] uint32 CountOfActiveTransfers; [Description ( "LastActivity is the point in time at which the last " "transfer ended. The timestamp is 0 if " "CountOfActiveTransfers is greater than 0, i.e., at least " "one transfer is still in progress and, thus, the software " "resource is still active. Even if a transfer is still in " "progress, LastActivity can be a valid point in time, if the " "software resource is currently idle due to internal wait " "states or deadlocks. Thus, activity is defined as the " "software resource is actively carrying out inputs and " "outputs. LastActivity may refer to a point in time that is " "outside the sample interval. This is, the instrumentation " "internally keeps the timestamp during the lifetime of the " "software resource. The metric can be used to better " "quantify what happens at the interfaces of the software " "resource. \n" "The initial value is 0.")] datetime LastActivity; }; // ================================================================== // SWRPEP // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "This protocol endpoint is an software resource of software " "(e.g., an application system). It may be the internal view of " "an external ProtocolEndpoint which is controlled entirely or " "partially by the software.")] class CIM_SWRPEP : CIM_SoftwareResource { [Override ( "IsAspect" ), Description ( "The default is that it is an aspect (value 2).")] uint16 IsAspect = 2; [Override ( "ByReference" ), Description ( "The default is that item references are in the PEP (value " "2).")] uint16 ByReference = 2; [Override ( "SoftwareResourceType" ), Description ( "The default is of course 'Protocol Endpoint' (value 3).")] uint16 SoftwareResourceType = 3; }; // ================================================================== // SWRFile // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "This file is an software resource of software. It may be the " "internal view of an external LogicalFile which is controlled " "entirely or partially by the software.")] class CIM_SWRFile : CIM_SoftwareResource { [Override ( "IsAspect" ), Description ( "The default is that it is an aspect (value 2).")] uint16 IsAspect = 2; [Override ( "ByReference" ), Description ( "The default is that item copies are in the file (value 2).")] uint16 ByReference = 2; [Override ( "SoftwareResourceType" ), Description ( "The default is of course 'File' (value 7).")] uint16 SoftwareResourceType = 7; }; // ================================================================== // SWRDatabase // ================================================================== [Experimental, Version ( "2.8.1000" ), Description ( "This database is an software resource of software. It may be " "the internal view of an external CommonDatabase which is " "controlled entirely or partially by the software. \n" "SWRDatabase should not be confused with databases commonly " "provided by database systems and used by software (e.g., " "application systems). It describes databases that are " "implemented by the software.")] class CIM_SWRDatabase : CIM_SoftwareResource { [Override ( "IsAspect" ), Description ( "The default is that it is an aspect (value 2).")] uint16 IsAspect = 2; [Override ( "ByReference" ), Description ( "The default is that item copies are in the database (value " "2).")] uint16 ByReference = 2; [Override ( "SoftwareResourceType" ), Description ( "The default is of course 'Database' (value 8).")] uint16 SoftwareResourceType = 8; }; // ================================================================== // SWRManageableAspect // ================================================================== [Association, Experimental, Version ( "2.8.1000" ), Description ( "SWRManageableAspect is the association that allows to express " "the shared control between an software resource (as being the " "interval view of the software) and its corresponding external " "entity, e.g., a LogicalFile. It is possible to express that " "several systems (that run software) and one external, " "incompassing system (in general the OS) exercise control.")] class CIM_SWRManageableAspect : CIM_LogicalIdentity { [Override ( "SameElement" ), Description ( "This reference points to the software resource that is " "aspect in the relationship.")] CIM_SoftwareResource REF SameElement; [Override ( "SystemElement" ), Max ( 1 ), Description ( "This reference points to the entity viewed and controlled " "by the external, encompassing system like the OS. It is not " "the aspect.")] CIM_ManagedElement REF SystemElement; }; // ================================================================== // SWRPEPAspect // ================================================================== [Association, Experimental, Version ( "2.8.1000" ), Description ( "SWRPEPAspect is the association between multiple communication " "endpoint software resources (i.e., the aspects) and the one " "endpoint controlled by the operating system or middleware " "outside the software.")] class CIM_SWRPEPAspect : CIM_SWRManageableAspect { [Override ( "SystemElement" ), Description ( "The protocol endpoint which is viewed as software resource.")] CIM_ProtocolEndpoint REF SystemElement; [Override ( "SameElement" ), Description ( "SameElement is the aspect: the software resource 'Protocol " "Endpoint'.")] CIM_SWRPEP REF SameElement; }; // ================================================================== // SWRFileAspect // ================================================================== [Association, Experimental, Version ( "2.8.1000" ), Description ( "SWRFileAspect is the association between multiple file " "software resources (i.e., the aspects) and the one file " "controlled by the operating system.")] class CIM_SWRFileAspect : CIM_SWRManageableAspect { [Override ( "SystemElement" ), Description ( "The logical file which is viewed as software resource.")] CIM_LogicalFile REF SystemElement; [Override ( "SameElement" ), Description ( "SameElement is the aspect: the software resource 'File'.")] CIM_SWRFile REF SameElement; }; // =================================================================== // end of file // ===================================================================