RE: PCLS classes deprecated in PCELS
John Strassner <[email protected]> Mon, 15 Sep 2003 07:14:42 -0600
| Newsgroups | gmane.ietf.policy |
|---|---|
| Message-ID | <[email protected]> |
Please see comments inline. regards, John John C. Strassner Chief Strategy Officer Intelliden Inc. 90 South Cascade Avenue Colorado Springs, CO 80906 USA phone: +1.791.785.0648 fax: +1.719.785.0644 email: [email protected] -----Original Message----- From: Pana, Mircea [mailto:[email protected]] Sent: Thursday, September 11, 2003 4:22 PM To: '[email protected]' Cc: '[email protected]'; '[email protected]' Subject: RE: [Policy] PCLS classes deprecated in PCELS IMO the usage of schema items corresponding to deprecated concepts would be in conflict with the model (in this case PCIMe). <js> Au contraire, it is inappropriate to deprecate LDAP schema. You have a tough choice - try and design a true update of PCLS, or say "Gee, since PCIMe changed the playing rules, so can we. Unfortunately, what you've done is try to do both - build a new design under the guise of an "update", and it doesn't work. You need to choose one approach or the other. And if you choose update, then you need to be compatible with PCLS. Currently, you're not. </js> However, a "peaceful co-existence" would be a very good reason for compromise. The following proposal gets PCELS out of the "policing business" and where compliance with PCIMe requires PCLS classes or attributes not to be used, this is noted with the specific indication "for compliance with PCIMe implementations shall/shall not use ..." (or rather SHALL / SHALL NOT). I hope you will find the following acceptable: <js> But you STILL need to choose one approach or the other, see below </js> 1. Replace the pcimGroupContainmentAuxClass class deprecation with a paragraph to indicate that "for compliance with PCIMe, implementations shall use the pcimPolicySet.pcimPolicySetComponentList attribute and a subordinated pcimPolicySetAssociation entry instead of an attached pcimGroupContainmentAuxClass to aggregate Policy Groups in a Policy Group, Rule or System". 2. Replace the pcimRuleContainmentAuxClass class deprecation with a paragraph to indicate that "for compliance with PCIMe, implementations shall use the pcimPolicySet.pcimPolicySetComponentList attribute and a subordinated pcimPolicySetAssociation entry instead of an attached pcimRuleContainmentAuxClass to aggregate Policy Rules in a Policy Group, Rule or System". <js> Upper case SHALL, or just a plain "shall"? </js> 3. The pcimRule* classes would not be deprecated. Instead, the abstract class pcimRule would be modified to become a subclass of the abstract class pcimPolicyRule defined in PCELS. A note would be added to indicate that "for compliance with PCIMe, implementations shall not use the pcimRule.pcimRulePriority attribute". See also Note_1 below. 4. The class pcimRuleConditionAssociation would be modified to become subclass of the pcimConditionAssociation class. 5. The class pcimRuleActionAssociation would be modified to become subclass of the pcimActionAssociation class. 6. The pcimRepository* classes would not be deprecated. Instead the abstract class pcimRepository would be modified to become subclass of the abstract class pcimReusableContainer defined in PCELS. PCELS would indicate that "for compliance with PCIMe, the pcimReusableContainer* classes shall be used instead of the pcimRepository* classes". <js> These are exactly backwards. A PolicyRule is-a special type of Rule. Same problem with 4 and 5 - for example, in the old QPIM work, we had defined the concept of a condition in a condition. Thus, there is (or at least could be) a marked difference between a condition and a ruleCondition. Regarding pcimRepository, it shares two things with the other classes in 3-5 - in the LDAP sense, it is exactly backwards, and your proposal ensures incompatibility. </js> Note_1: Without other changes, the pcimRule would end up having redundant functionality: - pcimRuleConditionList and pcimConditionList for aggregating conditions - pcimRuleActionList and pcimActionList for aggregating actions etc. <js> This assumes that the semantics of aggregating a condition in a rule are the same as aggregating a condition in other types of objects. I, for one, disagree with that assumption. </js> A. One option would be to do nothing about it but this may lead to ambiguous situations :-( B. A second option would be to use the pcimRuleConditionAssociation and the pcimRuleActionAssociation attributes and the association classes defined by PCLS in the definition of the pcimPolicyRule. In this case the pcimPolicyRule* and pcimCompound*AuxClass would not use the same attributes and association classes to aggregate Conditions and Actions :-( C. A third option would be to change the pcimPolicyRule definition to: ( [...] SUP pcimPolicySet ABSTRACT MAY ( pcimRuleName $ pcimRuleEnabled $ pcimRuleValidityPeriodList $ pcimRuleUsage $ pcimRuleMandatory ) ) (Condition and Action aggregation attributes removed from the Rule class) In this case, PCELS would recommend the use of attached pcimCompound*AuxClass instances as means to aggregate multiple Actions/Conditions to a Rule. D. A mix of the previous two: Option B with a note that implementations MAY choose to support only C. Comments and suggestions would be greatly appreciated? Also, I would greatly appreciate the PCIMe author's opinion wrt. the [non]deprecation. <js> Your choice depends on whether you believe that we're done, or that their may be future implementations that want to further refine the semantics that PCIMe has defined. Your choice must also consider compatibility with previous PCLS implementations. Since I'm working on one of those "future" implementations, I would rather see a generic condition aggregation defined, with the particular case of a policyCondition aggregated by a policyRule treated as a specialization of that generic aggregation. </js> Thanks, Mircea. > -----Original Message----- > From: Ryan Moats [mailto:[email protected]] > Sent: Tuesday, September 09, 2003 10:26 AM > To: Pana, Mircea > Cc: '[email protected]'; '[email protected]' > Subject: Re: [Policy] PCLS classes deprecated in PCELS > > > On Thu, Sep 04, 2003 at 05:09:46PM -0500, Pana, Mircea wrote: > | PCELS deprecates some of the PCLS classes and attributes for various > | reasons. In some cases, deprecation could have been avoided > but in other > | cases this was dictated by PCIMe. (details discussed below) > I agree that > | deprecation might create backward compatibility problems > where PCELS and > | PCLS implementations attempt to cooperate. BTW, does > anybody out there have > | such requirements? Given that PCIMe deprecates a > significant number of > | concepts from PCIM, is such cooperation even possible? > | > | The classes deprecated by PCELS are discussed below: > | > | 1. The class pcimGroupContainmentAuxClass defined by PCLS > provides a single, > | multi-valued attribute that references a set of pcimGroups. > This unordered > | aggregation mechanism can not be reused in implementations > of PCIMe because > | the model (PCIMe) requires PolicySetComponent associations to be > | prioritized: > | " 5.5. Priorities and Decision Strategies > | [...] Unlike the earlier definition, > | PolicySetComponent.Priority MUST have a unique value > when compared > | with others defined for the same aggregating PolicySet. > Thus, the > | evaluation of rules within a set is deterministically > specified. " > | If PCELS allowed pcimGroupContainmentAuxClass, then it > would be conflicting > | with PCIMe. > | > | 2. The class pcimRuleContainmentAuxClass defined in PCLS is > deprecated by > | PCELS for the same reasons. > > Those are not reason to deprecate classes in the more general > model. That's > a reason to say "in this space, this other class should be used". > > | 3. The pcimRule* classes defined by PCLS are deprecated and > redefined as > | pcimPolicyRule* in PCELS. According to PCIMe the PolicyRule.Priority > | property is deprecated. Therefore PCELS redefines the > PolicyRule class > | mainly for removing the Priority attribute. An other option > would have been > | to leave pcimRule* as they are and then PCELS would have > had to specify that > | the pcimRulePriority attribute MUST NOT be used - a less > formal solution > | that does not prevent accidental use of the deprecated attribute. > | > | An other reason for replacing the pcimRule* classes is the > renaming of the > | attributes that serve in the Rule-Condition and Rule-Action > associations. > | pcimRuleConditionList is replaced by pcimConditionList and > | pcimRuleActionList is replaced by pcimActionList. Thus, the > new attributes > | along with the new association classes (discussed below) > offer a generic > | mechanism for aggregating Conditions or Actions. The use the same > | Condition/Action aggregation mechanism for both Policy > Rules and Compound > | Conditions/Action is an optimization in line with the > Policy*Structure > | concepts defined by PCIMe. > > Since you are rethinking subclass/deprication below, I'd > argue rethink it > here. > > | The deprecation of the pcimRule* classes is certainly not > the only option > | but based on our experience implementing PCIMe this one > seemed an acceptable > | compromise. However, any opinions or suggestions from the > WG based on their > | experience would be greatly appreciated. > | > | 4. The class pcimRuleConditionAssociation defined by PCLS > has probably less > | reasons to be deprecated. It was done simply to keep the Condition > | aggregation (into rules or compound conditions) limited to a single > | association class. Now, looking from this different > prospective, I think > | that it is a good idea to retain it. > | > | So, I suggest the modification of the > pcimRuleConditionAssociation to become > | a subclass of the pcimConditionAssociation already defined > in PCELS. The > | attributes of the pcimRuleConditionAssociation, all > inherited from its > | superclass, would end up being the same ones as previously > defined by PCLS. > | Thus, for aggregating Conditions into a Policy Rule, one > would have the > | choice of using pcimConditionAssociation or > pcimRuleConditionAssociation > | while Condition aggregation into a Compound Condition would > be realized only > | through the pcimConditionAssociation class. > | > | 5. pcimRuleActionAssociation - same suggestion as for the > | pcimRuleConditionAssociation class > > This is a much better solution... > > | 6. The pcimRepository class defined by PCLS is deprecated > by PCELS for > | reasons described in PCIMe: > | " Because of the potential for confusion with the Policy Framework > | component Policy Repository (from the four-box picture: Policy > | Management Tool, Policy Repository, PDP, PEP), > "PolicyRepository" is > | a bad name for the PCIM class representing a container > of reusable > | policy elements. Thus the class PolicyRepository is > being replaced > | with the class ReusablePolicyContainer." > > This could also be handled with a subclass. > > Ryan > > _______________________________________________ > Policy mailing list > [email protected] > https://www1.ietf.org/mailman/listinfo/policy >