Project:
|
![]() Figure 1P-33 - PolicySetSpec : Class diagram
This aggregation defines the set of PolicySets that can be defined from a particular PolicySetSpec. This enables the PolicySetSpec to define the invariant attributes, methods, relationships, and constraints that different PolicySets all contain. This standardizes the construction and usage of a PolicySet, and enables different PolicySets to define different variations of the PolicySetSpec to suit the needs of different applications. <br/>The PolicySetSpec defines a single attribute called decisionStrategy. This attribute is an enumerated integer that specifies the particular decision strategy to be used in this PolicySet. This attribute defines how PolicyRules in a PolicyGroup or a PolicyRule are to be evaluated. <br/>The values of this attribute can include:<br/> • 0: Unknown<br/> • 1: MatchFirst<br/> • 2: MatchAll<br/>Unknown can be used at initialization time, or if an error occurs, as an easy way to signify that an error in this PolicySet has occurred, since the two legal values of this attribute are MatchFirst and MatchAll.<br/>MatchFirst looks for the first PolicyRule whose condition clause evaluates to TRUE in a PolicySet; and then evaluates that PolicyRule. Policy evaluation in this PolicySet then STOPS, and all subsequent PolicySets are no longer evaluated.<br/>In contrast, MatchAll evaluates all PolicyRules. Those whose condition clauses evaluate to TRUE are (conceptually) put in a bucket. When all PolicyRules have been evaluated, a second pass is performed that executes all the PolicyRules that are in the (conceptual) bucket. Execution of these rules is controlled through the Priority attribute, which is defined as part of the PolicySetComponent aggregation, and prescribes the order in which the PolicyRules execute.<br/>Thus, a PolicySet can be configured to either execute the first PolicyRule whose condition clause evaluates to TRUE, or to execute all PolicyRules whose condition clauses evaluate to TRUE.<br/>The semantics of this attribute are identical for PolicyGroups as well as for PolicyRules. In a PolicyGroup, this attribute defines how to evaluate the set of PolicyRules that are contained in a PolicyGroup. In a PolicyRule, this attribute defines how to evaluate nested PolicyRules within a higher-level PolicyRule.<br/>
|