For OIs or appliers receiving ccb-callbacks, the handling of the modify-callback
can be particularly complex. This is due to the modify callback being defined
by SAF as faithfully presenting the same parameters as the originating om-client
parameters provided over the om-api.
The ccbObjectModify operation allows for modifications expressed as changes
relative to the current state of attributes. This is of course acted on by
the imm-server resulting in an after-image for the modified object.
The callback to the oi or applier is currently of the same form, in general
requiring the oi/applier to (a) know the current state of the attributes of
the object or do an for appliers unsafe read and (b) to correctly compute
the transformation as defined by the imm-spec. Particularly the later is
asking quite a lot for the average oi/applier implementer.
Only for the "special applier" (see IMMSV README) is the modify callback
currently canonicalized to contain simply the replacement values, i.e. the
after operation image.
To simplify the task for oi's and appliers in handling modify callbacks,
we suggest that the modify-callback instead provides the after-modify-
operation-image of the attributes.
Note that this change is a fully backwards compatible change, because the
new callback format contaning just the replacement value resulting from the
operation must be logically equivalent to the set of all before-image and
operation variants resulting in this replacement value.
The only complication I can think of here is a potential performance issue
in pushing values to the callback that are actually unchanged. This is why
I think it is better that the main OI still gets only the replacement value
for attributes that actually have changed, or to be precise, where actually
operated on.
New ticket has been created for sending all writable values to the callback for appliers [1651]
Tickets: #1651
Tickets: #1680
Tickets: #801
Wiki: ChangeLog-5.0.0
Wiki: NEWS-5.0.0
Diff:
Discussion threads
https://sourceforge.net/p/opensaf/mailman/message/34678123/
https://sourceforge.net/p/opensaf/mailman/message/34704760/
default (5.0)
changeset: 7277:0ef28b60edf5 [0ef28b]
user: Hung Nguyen hung.d.nguyen@dektech.com.au
date: Wed Dec 23 16:07:48 2015 +0700
summary: imm: Canonicalize attributes presented by OiCcbObjectModifyCallback [#801]
Related
Commit: [0ef28b]
Tickets:
#801