[gfs-wg] RNSResolver-related questions

Manuel Pereira mpereira at almaden.ibm.com
Thu Feb 2 16:55:54 CST 2006


Hello Peter,

Please see my comments below.

> Ok, but still, how would the Delete change type element be used to
> identify the particular EPR to be deleted from the logical reference (as
> the Delete-component is only capable of carrying a QName)?

My apologies.  First, let me say that although I am certain that a 
resolver service like the RNSResolver is essential to the base RNS 
namespace service, the RNSResolver port type and associated operations 
were not as extensively tested or documented as well.  This was primarily 
due to the perception that other resolver services would soon occupy this 
space, and since this was not the focus of RNS, it did not receive equal 
time and treatment.

As a result, I noticed that indeed the RNSResolver lacks a valid operation 
for dereferencing or ?unbinding? a single EPR from a list that may be 
associated with a logical reference.  To accommodate this properly, the 
udpateLogicalReference operation should include a conditional description 
similar to the RNS update() operation in section 1.4.2.5, wherein complete 
lists of EPRs may be handled in a single transaction or single EPRs may be 
added or ?inserted? ONLY.  This same logic is true for the 
udpateLogicalReference since both update and delete change types would 
require implicit identification of the EPR to be updated or deleted.  I 
will change the udpateLogicalReference operation to reflect this logic; 
thank you!

> > Actually in order to leverage ChangeInput in this way, the service 
would
> > need to have a defined list of properties that may be "changed."  For
> > instance, in the RNS port type, one can easily extend the properties
> > document of a given resource by using the profile extension operations
> > (insertProperty, etc) defined in the specification.  Once a property 
is
> > defined, one can then use the ChangeInput message to manipulate 
defined
> > resource properties.  Although a similar dynamic property extension
> > mechanism is currently not defined for the RNSResolver port type, 
given
> > necessary interest, it would be easy to add.
> 
> Could you describe what such a property extension mechanism would look
> like in the RNSResolver case (which does not have WS-Resources and
> resource property documents)?

The RNSResolver port type does reflect an implicit resource properties 
document for the LogicalReference resource.  In other words, the 
LogicalReference entry may be manifest as a WS-Resource with properties 
that may be queried via standard WSRF operations.  So in this case, a 
property extension mechanism would simply enable additional properties to 
be defined and associated with the LogicalReference entry.  There are two 
properties currently associated with the LogicalReference resource, which 
are the ?Description? and ?EndpointReferenceList? properties.  Therefore, 
an extension mechanism would simply extend this list, for example by 
adding something like a ?LastModified? property.

> > With regard to the example that you presented, it sounds like that 
could
> > easily be resolved by using the updateEndpointReference operations.
> > Logical references theoretically should not change even if physical
> > locations, addresses, etc. change; in fact that is the principal 
purpose
> > for using logical references.  Therefore, in this example you are 
really
> > interested in changing the target address rather than the logical
> > referencing and this can be accomplished using the 
updateEndpointReference
> > operation which may potentially affect more than one logical reference
> > since RNSResolver facilitates a many-to-many mapping between logical
> > reference and EPR.
> 
> Right, however my service container may contain several services and/or
> WS-Resources - each of which is mapped by an individual logical 
reference.
 
I understand your position, this is still an issue.  As I mentioned in my 
last response, immediately before this quote, ?I agree that batch 
processing for bulk disparate operations is very attractive and promises 
efficiency in large scale systems.  Accomplishing this in a ?standard? way 
is another issue.  In as much as WSRF accommodate batch processing RNS 
does, and so it strives to maintain a standard and generic approach to the 
problem.?

Bulk operations are more of a framework issue rather than something that 
can/should be handled per service.  The RNS specification does not address 
this issue.  Although it is certainly a valid concern and a real-world 
issue, the problem should be addressed at lower levels.

> The updateEndpointReference operation could be used to update the target
> address of each logical reference to that of the relocated server, but
> that would either require the restarted server to somehow know its
> previous location, or for each service to fetch its previous target
> address from the RNS resolver and then update it appropriately. I 
believe
> that a more elegant model would be to allow a lifetime to be associated
> with each mapping, hence allowing soft-state handling of the mappings. A
> relocated server would then only need to add its new EPR, and its old
> mapping would eventually be invalidated (once its lifetime expires).

I may not completely understand your presented scenario, but let me try to 
reflect what I do understand about your example.  You may have multiple 
servers whose physical addresses are encapsulated in valid EPRs and are 
mapped to logical names with the RNSResolver.  These servers may change 
physical addresses and therefore require updated EPR values to update the 
resolver registry.  It sounds like the problem you mentioned in this last 
paragraph is that if the update EPR operation requires the value of the 
EPR in order to update/delete it, then the relocated server would have to 
know what its previous address/EPR value was before it could update the 
resolver registry with its new one, correct?  If this is close to 
accurate, then my recommendation would be: (1) to associate a single 
logical reference per server and (2) upon any change event on the server 
(physical address change, relocation, etc.) the server (perhaps during the 
boot/init process) would simply update the resolver mapping with its new 
information.  This approach ensure the most timely and accurate 
synchronization between logical and physical.  Keep in mind if each server 
is associated with a  corresponding logical reference, then the update 
process would be as simple as performing an updateLogicalReference() 
operation issuing the new EPR as the revised EndpointReferenceList; this 
would effectively unbind the reference to the deprecated EPR and rebind it 
to the new EPR in a single transaction, without requiring the knowledge of 
the previous EPR.

Best regards,
Manuel Pereira
------------------------------------------------------
IBM Almaden Research Center
1-408-927-1935                 [Tieline: 457]
mpereira at us.ibm.com
------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/gfs-wg/attachments/20060202/f7503c8b/attachment.html 


More information about the gfs-wg mailing list