# Class CIM_SoftwareResource
extends CIM_EnabledLogicalElement

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: 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. 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. 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. 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. 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. 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. 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.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_SoftwareResource

## Direct Known Subclasses

CIM_SWRDatabase
CIM_SWRFile
CIM_SWRPEP

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Description | string | 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: 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. 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. 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. 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. 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. 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. 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.
Experimental | boolean | true
UMLPackagePath | string | CIM::Application::SWResources
Version | string | 2.19.0

## Class Properties

### Local Class Properties

Name | Data Type | Default Value | Qualifiers
--- | --- | --- | ---
Name | Data Type | Value
AspectInUse | uint16 | 2
Description | string | 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. Values: 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. 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 | string | 0, 2, 3, 4..32767, 32768..65535
Values | string | Unknown, Aspect Is in Use, Aspect Is not in Use, DMTF Reserved, Vendor Reserved
ByReference | uint16 |
Description | string | 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. Values: Items Are References: The software resource holds only pointers to the items (e.g., connections in a connection pool. 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 | string | 0, 2, 3, 4..32767, 32768..65535
Values | string | Unknown, Items Are References, Items Are Copies, DMTF Reserved, Vendor Reserved
InstanceID | string |
Description | string | 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: <OrgID>:<LocalID> Where <OrgID> and <LocalID> are separated by a colon ':', and where <OrgID> 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 <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness <OrgID> MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between <OrgID> and <LocalID>. <LocalID> 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. For DMTF defined instances, the 'preferred' algorithm MUST be used with the <OrgID> set to 'CIM'.
Key | boolean | true
Override | string | InstanceID
IsAspect | uint16 |
Description | string | 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: 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 | string | 0, 2, 3, 4..32767, 32768..65535
Values | string | Unknown, Is Aspect, Is not Aspect, DMTF Reserved, Vendor Reserved
SoftwareResourceType | uint16 |
Description | string | 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. Values: Buffer: volatile storage (transfer over time). Queue: transfer over time (the internal FIFO) and often over space (as entry point to a communication link. Both, volatile and persistent versions exit. Protocol Endpoint: transfer over space, entry point to a communication link Remote Interface: A generalized protocol endpoint without a specific protocol. Is a proxy. Pool: A special buffer. Clearly the lower allocation limit is the important limit, i.e., depletion of the pool is a problem. Cache: Another special buffer with an aging algorithm for dropping items held in the cache. File: the simplest form of persistent storage. Database: a more sophisticated form of persistent storage that may consist of several files.
ValueMap | string | 0, 2, 3, 4, 5, 6, 7, 8, 9, 10..32767, 32768..65535
Values | string | Unknown, Buffer, Queue, Protocol Endpoint, Remote Interface, Pool, Cache, File, Database, DMTF Reserved, Vendor Reserved

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
Generation | uint64 | CIM_ManagedElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
Name | string | CIM_ManagedSystemElement
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Status | string | CIM_ManagedSystemElement
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### Reinitialize (uint32)

#### Method Qualifiers (Reinitialize)

Name | Data Type | Value
--- | --- | ---
Description | string | 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. Reintialize Already in Progress: software resource still being reinitialized.
ValueMap | string | 0, 1, 2, 3, 4, 6, 7, 8, 9..32767, 32768..65535
Values | string | Success, Not Supported, Unknown, Timeout, Failed, Access Denied, Not Found, Reinitialize already in Progress, DMTF Reserved, Vendor Specific

#### Method Parameters (Reinitialize)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
RequestStateChange | uint32 | CIM_EnabledLogicalElement