OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [regrep] PROPOSAL: More flexible ObjectRef

Monica J. Martin wrote:

> Farrukh Najmi wrote:
>> Nikola Stojanovic wrote:
>>> <Farrukh>
>>> > My proposal is to add a new logical id attribute to the set of
>>> > registry versioning attributes, and otherwise improving ObjectRef to
>>> > allow selection of a particular version of an object.
>>> +1 on being able to reference a logical object in a version independent
>>> manner.
>>> This is exactly what the lid attribute is for in the versioning spec
>>> being added to version 2.6.
>>> I think that the use case you raise can (and should) be addressed very
>>> easily by extending the ObjectRef class to have a choice of:
>>> a) a static "hard-wired" reference to a specific version of a specific
>>> object (current capability)
>>> b) a dynamic "late-binding" reference to a logical object which is
>>> determined at run-time (de-refence time).
>>> I could see this being done via a second attribute named "dynamic". 
>>> When
>>> dynamic is false (default) the registry
>>> assumes that the id attribute references the referenced object. When
>>> dynamic is true, the registry assumes that the id attribute MUST be 
>>> to a
>>> stored query that dynamically determines the referenced objects.
>>> This is a very powerful concept. Thanks Matt for seeding this idea. I
>>> hope we can discuss this over email prior to next telecon. Thanks.
>>> </Farrukh>
>>> I also see this as a very valid and a needed Use Case and that 
>>> LateBinding approach is interesting. However, I think that we have a 
>>> solution that doesn't need LateBinding. It would be something like 
>>> this:
>>> - subscribe to relevant event(s); in this case it is Update of the 
>>> objects that are members of the package.
>>> - implement "Web Service" that is going to be triggered by the above 
>>> event and that is going to adjust relevant object references.
>>> As one looks at the context of the two, LateBinding would incur 
>>> lookups whenever object references need to be resolved and 
>>> EventNotification will be invoked when relevant events happen. One 
>>> would assume that occurrence frequency of the first is higher then 
>>> of the second.
>> Interesting point that Matt's use case is already addressable via the 
>> Event Notification feature. So as I understand your suggestion the 
>> reference that needs to always be to the latest version of an object 
>> could be updated from one version  of an object to another by a web 
>> service that is an Event Notification Listener  service that gets 
>> invoked whenever a new version of the object is created.
>> I agree with the point that your alternative is more efficient than 
>> late binding Object Reference approach and requires no additional work.
>> I now reconsider the idea of doing late binding of object references 
>> now. Instead we should keep it in our future candidate work items and 
>> rely on your Event Notification based approach to address Matt's use 
>> case for now.
>> Any one disagree with this proposed resolution?
> mm1: I don't disagree but wish to ask a question that applies to not 
> only late binding but the event notification approach where object 
> references are updated.  In ebBP, we found that LateBinding is not a 
> black-white situation. For example, when we started to talk about 
> conditional attributes such as time to perform, we determined that 
> LateBinding could have a duration, may or may not be allowed, and 
> constraints could be applied (when changed, if changed where does the 
> value come from, etc). This raises questions:
>    * Can you update the object references to the latest version?

Yes. For the latest object at the time of update.

>    * Are there conditions that apply? Are all objects in the package
>      updated?

Lets focus on the simpler case of Object A wishing to reference latest 
version of Object B.

The answer is that:

-If late binding is used then the object A updated when the object B is 
updated since the late binding ObjectRef stays unchanged.

-If event notification is used to update the reference in Object A then 
Object A will be updated (and likely new version created) when Object B 
is updated.

This is a significant difference between the two solutions.

>    * Does the owner define the duration, parameters or constraints of
>      when they can be changed?

Object B can change any time its owner (or delegate) updates it. Object 
A's owner (or delegate) controls the criterea for the dynamic reference 
but has no control over when Object B is updated.

> As well, in our work on time to perform, we found the conditional 
> aspects to be best expressed as an element not an attribute. 

In the late binding approach the conditional aspects are expressed in a 
stored query so an attribute with the query's id is sufficient.

Thanks for the though provoking questions.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]