Issue 1778: Need to specify when are side-effects allowed (mof-rtf) Source: (, ) Nature: Revision Severity: Minor Summary: Summary: The MOF was designed under the assumption that ordinary (i.e. non-derived) M1-level attribute values and links only change when the client expects them to. Unfortunately, the spec does not address this issue. In particular, it does not say what mapped IDL operations are allowed to change things by side-effect. Resolution: resolved and closed Revised Text: Actions taken: August 6, 1998: received issue May 8, 2000: closed issue Discussion: 1. Add text to define "visible state" (object identity, non-derived attribute values and links) and "hidden state" (other state). 2. Add text to specify which mapped operations can alter which kinds of state. For ex-ample, setting a non-derived attribute cannot have side-effects on any other visible state. Implementation: Added above as subsections of Section 4.11, “A Style Guide for Metadata Computational Semantics,” on page 4-21. Done. [SC] End of Annotations:===== Return-Path: To: mof-rtf@omg.org, issues@omg.org Subject: Need to specify when are side-effects allowed Date: Thu, 06 Aug 1998 14:51:23 +1000 From: Stephen Crawley Source: DSTC (Dr. Stephen Crawley, crawley@dstc.edu.au) Nature: Revision Severity: Minor Summary: The MOF was designed under the assumption that ordinary (i.e. non-derived) M1-level attribute values and links only change when the client expects them to. Unfortunately, the spec does not address this issue. In particular, it does not say what mapped IDL operations are allowed to change things by side-effect. Additional Text: For the purpose of this discussion: The "explicit state" of a model is that which is defined by the Classes, their (non-derived) MofAttributes and the (non-derived) Associations between them. Any other state is called "hidden state". A "side-effect" is a change to the explicit state of a model that results from something other than a mapped operation for the model element that defines the state. I tentatively propose that only IDL operations corresponding to the following be allowed to have side-effects on explicit state (as defined above): Operations with is_query == false MofAttributes with is_derived == true && is_changeable == true, and where the operation is an update Associations / AssociationEnds / References where the Association has is_derived == true and the Reference or AssociationEnd has is_changeable == true, and where the operation is an update [I don't propose that we limit changes to hidden state. For example, the hidden variable for a derived Attribute that holds a count of the number of reads on some other Attribute. We may want to tighten this up later, when the MOF Model supports behavioral specification of Operations and derived MofAttributes and Associations. However, that is beyond the scope of this RTF.]