• No labels

1 Comment

  1. This model has numerous problems, and should be replaced with either the IETF SUPA model or, preferably, the MEF PDO model (which is a superset of SUPA). I honestly cannot fathom how this is supposed to work. Here is a BRIEF description of key problems:

    • Sub-rules are very difficult to model, and even more difficult to implement correctly. Simply defining a Boolean attribute that says that this Rule is a SubRule is NOT sufficient. You need to add structure to the model to show how this works.
    • How is the combination of a rule and a sub-rule different than a PolicyGroup? More importantly, how is that realized in this model?
      • The PolicyGroupHasPolicyRule association is incorrect, it should be either an aggregation or a composition, depending on the semantics you want. A group is the definition of a whole-part relationship, and an association cannot represent this.
    • PolicyCondition is missing completely.
    • A PolicyRule is **supposed** to be a container. This means that aggregations or compositions MUST be used. Instead, associations are used to "contain" PolicyEvents and PolicyActions, which is semantically incorrect.
    • The proposed modeling of a template will not work.
      • First, it looks like inheritance was used with a composition relationship. This is a composition, with the **Template** being the whole, which means that Rules are **contained** within a template. That is not how Templates work!
      • Second, any 1..1 multiplicity for a composition is likely incorrect.
      • Third, things like the xxxSelectCriteria have no business being modeled as attributes in an info model. How are these attributes populated - surely NOT by just pasting hard-wired values into these attributes? One would hope that any filtering or correlation done using these concepts would be done dynamically at runtime, which means that they can NOT be class-level attributes.
    • The execution semantics of Drools and XACML, and even their uses, are worlds apart. How is it that they can inherit from the same class?
    • How do you model the execution semantics of declarative policies? Those do not necessarily have events, conditions, and actions.
    • Please use inheritance to define common attributes like name and description. Otherwise, you are defining these attributes on an instance-specific basis, and will end up with redefining the same concept hundreds or thousands of times.
    • Attributes should be uniquely named, otherwise implementation is messy