Policy Draft
Following is an update to the Policy Contribution.
1 Policy
1.1 Overview
Qualified Name: Common::Policy
Description:
Presently the scope of policy is imperitive (event, condition, action) only - not declaritive or intent.
Approach will be pragmatic in nature, establishing a model that meets the Policy team's near term needs, and then evolve from that base.
1.2 Diagrams
1.2.1 Overview
Qualified Name: Common::Policy::Diagrams
Description:
1.2.1.1 Diagrams
Figure 7‑1: Diagram Basic Policy
Figure 7‑2: Diagram Policy Event
Figure 7‑3: Diagram Policy Action
Figure 7‑4: Diagram Rooting Policy
Figure 7‑5: Diagram PolicyTypes
Figure 7‑6: Diagram Policy Datatypes & Enumerations
1.3 PolicyObjectClasses
1.3.1 Overview
Qualified Name: Common::Policy::PolicyObjectClasses
1.3.1.1 Classes
1.3.1.1.1 Policy class
Qualified Name: Common::Policy::PolicyObjectClasses::Policy
This class is abstract.
Parent class: RootEntity
Applied Stereotypes:
Experimental
OpenModelClass
- support: MANDATORY
Table 7‑1 Attributes for Class Policy
Attribute Name
|
Type
|
Mult.
|
Description
|
Stereotypes
|
name | String | 1 | Represents a user-friendly identifier of an object. It is a (possibly ambiguous) name by which the object is commonly known in some limited scope (such as an organization) and conforms to the naming conventions of the country or culture with which it is associated. It is NOT used as a naming attribute (i.e., to uniquely identify an instance of the object).
| OpenModelAttribute
|
description | String | 0..1 | Defines a textual free-form description of the object.
| OpenModelAttribute
|
id | Identifier | 1 | Unambiguously distinguishes different object instances. It is the naming attribute of the object. Identifier of this information element. This attribute shall be globally unique.
| OpenModelAttribute
|
invarientId | Identifier | 1 | An ID for the entity that does not change regardless of version.
| OpenModelAttribute
|
1.3.1.1.2 PolicyAction class
Qualified Name: Common::Policy::PolicyObjectClasses::PolicyAction
Description:
This is an abstract base class that represents how to form the action clause of a PolicyRule.
Certain actions will take place if the condition clause is TRUE, others if the condition clause is FALSE.
This class is abstract.
Parent class: Policy
Applied Stereotypes:
Experimental
OpenModelClass
- support: MANDATORY
Table 7‑2 Attributes for Class PolicyAction
Attribute Name
|
Type
|
Mult.
|
Description
|
Stereotypes
|
keyValuePair | String | 1 | Additional metadata pertinant to the action.
| OpenModelAttribute
|
actionExecutionStrategy | PolicyExecutionStrategy | 1 | Defines the strategy to be used when executing the aggregated actions
| OpenModelAttribute
|
name | String | 1 | Represents a user-friendly identifier of an object. It is a (possibly ambiguous) name by which the object is commonly known in some limited scope (such as an organization) and conforms to the naming conventions of the country or culture with which it is associated. It is NOT used as a naming attribute (i.e., to uniquely identify an instance of the object).
| OpenModelAttribute
|
description | String | 0..1 | Defines a textual free-form description of the object.
| OpenModelAttribute
|
id | Identifier | 1 | Unambiguously distinguishes different object instances. It is the naming attribute of the object. Identifier of this information element. This attribute shall be globally unique.
| OpenModelAttribute
|
invarientId | Identifier | 1 | An ID for the entity that does not change regardless of version.
| OpenModelAttribute
|
1.3.1.1.3 PolicyActionAtomic class
Qualified Name: Common::Policy::PolicyObjectClasses::PolicyActionAtomic
Description:
This is the base class for all simple PolicyActions. A simple PolicyAction consists of a single Boolean clause, which is used to perform a single action. This consists of a single occurrence of a PolicyStatement, which is of the form:
{SET | CLEAR} PolicyVariable to PolicyValue
This is distinctly different from the PolicyActionVendor, which does not use a PolicyStatement.
PolicyActionAtomic objects can also be used to form more complex action structures. A PolicyActionComposite object can be used to contain a group of PolicyActionAtomic objects - this grouping enables multiple PolicyActionAtomic objects to be executed as a group. Alternatively, a PolicyActionAtomic object can contain one or more PolicyActionAtomic objects (and also PolicyActionComposite groups if desired) to provide the semantics of a compound PolicyAction. In either case, the aggregation is done using the containedPolicyActions aggregation.
Parent class: PolicyAction
Applied Stereotypes:
Experimental
OpenModelClass
- support: MANDATORY
Table 7‑3 Attributes for Class PolicyActionAtomic
Attribute Name
|
Type
|
Mult.
|
Description
|
Stereotypes
|
actionSequenceNumber | Integer | 1 | This attribute is a non-negative integer and represents the particular sequence in which this element is executed as part of the overall policy structure. This will allow a policy engine to reference externally supplied arguments to this object as it is executed.
| OpenModelAttribute
|
subject | String | 1 | Tthe entity that is executing the policy.
| OpenModelAttribute
|
target | String | 1 | he set of entities that are affect-ed by the policy.
| OpenModelAttribute
|
hasExecutedd | HasExecuted | 1 | This is an enumerated integer that is set by a policy application to define the state of execution of this policyAction.
| OpenModelAttribute
|
keyValuePair | String | 1 | Additional metadata pertinant to the action.
| OpenModelAttribute
|
actionExecutionStrategy | PolicyExecutionStrategy | 1 | Defines the strategy to be used when executing the aggregated actions
| OpenModelAttribute
|
1.3.1.1.4 PolicyActionComposite class
Qualified Name: Common::Policy::PolicyObjectClasses::PolicyActionComposite
Description:
This attribute is a non-negative integer and represents the particular sequence in which this element is executed as part of the overall policy structure.
For example if a composite is part of another composite policy structure.
Notes: default is "1"
Parent class: PolicyAction
Applied Stereotypes:
Experimental
OpenModelClass
- support: MANDATORY
Table 7‑4 Attributes for Class PolicyActionComposite
Attribute Name
|
Type
|
Mult.
|
Description
|
|