[gfs-wg] Re: Proposed Final Draft for RNS v1.0
Hiro Kishimoto
hiro.kishimoto at jp.fujitsu.com
Fri Jun 24 22:28:14 CDT 2005
Hi Manuel,
Revised draft still have a reference to inappropriate version of
WS-addressing. I strongly recommend to update RNS spec to refer
to the latest W3C spec.
> RNS v1.0 now depends on WS-Address W3C Member Submission dated
> 10 August 2004. Although member submission is available on W3C
> site, it is not at all standards specification.
>
> I see several reasons RNS v1.0 should refer to the latest
> WS-addressing specification.
>
> - Member submission depends on several (so-called) proprietary
> specifications, e.g. WS-Policy.
> - WS-address WG has made great job and modified their spec quite
> a bit.
> - Necessary changes of RNS v1.0 is immaterial and simple alterations.
You also need to change WSRF 1.1 and WSN 1.2 to WSRF 1.2 and WSN 1.3
respectively.
Thanks,
----
Hiro Kishimoto
Manuel Pereira wrote:
> Hi Osamu and all,
>
> Please refer to the latest revision of the RNS Specification draft, now on
> GridForge:
> https://forge.gridforum.org/projects/gfs-wg/document/RNS-Proposed_Final_Draft-v1.4/en/5
>
> ------
>
>>* Update operation
>>
>>'Type' needs to be described *not to be updated*.
>
>
> Is this a necessary constraint? Can you please explain why this is a
> requirement. What if a user wanted to change an ?Alias? to a ?Referral?,
> provided that the other corresponding properties were change concurrently?
>
>
>>* Symlink behavior for VFDS
>>
>>We need to consider how to implement (or represent) a symbolic link
>>(aka PathAlias in VFDS) in RNS. Possible solution is
>>
>>1) to represent as 'Alias' but its targetPath is not updated when
>> moving the target entry, or
>>
>>2) to represent as 'Referral' but it has 'TargetPath' instead of
>> 'EPR'.
>>
>>Unfortunately, either solution affects the RNS specification...
>
>
> This can easily be accomplished with the use of an extended property
> assigned to the Entry properties document. This extended property would
> be defined in the GFS profile and would describe the syntax, conditions,
> and behavior of such a property.
>
> An example might look something like:
> PathAlias
> -Property name: PathAliasTarget
> -Data type: String
> -Profile: GFS
>
> This property would extend the specified Entry properties document, and so
> an example entry record might look like this:
> [ENTRY]
> AliasCount = 0
> ChildCount = 0
> Description = ?This is a path-based symlink?
> ModificationTime = 2005-06-22 14:23:00
> Name = ?latest-build?
> Type = Junction
> PathAliasTarget = ?/ggf.org/data/gfs-wg/bin/build-1234?
>
>
>
>>* IteratorContext
>>
>>When IteratorContext is created as ResourceProperties in WS-Resource,
>>an EPR can specify the IteratorContext (as a WS-Resource). This
>>means iteratorContextID is not necessary, does not it?
>
>
> The specification requires that a service implementation be capable of
> constructing point-in-time unique iteratorContextID, see section 1.3.4.3.
> The EPR does specify the IteratorContext, however, to construct the
> context that the EPR corresponds to, some unique value must be used to
> distinguish the resource. The createIteratorContext operation simply
> allows the implementer/user to specify the identity of this temporal
> resource.
>
>
>>* Junction message
>>
>>In the current document, a referral message is only used for a
>>referral junction. On the other hand, this mechanism is quite useful
>>for other junctions; Endpoint Reference Junction and Virtualized
>>Reference Junction. To do this, just add 'Type' and
>>'LogicelReferences' to QueryResponse and ChangeResponse. 'Type' needs
>>to be added to distinguish a type of junctions (or type of junction
>>messages). In this case, 'baseDirectory' does not always refer to a
>>'directory'. Maybe it is better to be renamed to 'basePath'. Also,
>>'referralEPR' should be just 'EPRs' since it can refer to 'EPRs' in
>>Endpoint Reference Junction.
>
>
> I am afraid I don?t understand your suggestion, or I have not explained
> the referral message well enough. The QueryResponse is designed to
> provide a valid answer to any query operation, provided that the operation
> was successful. This means that the message ?mechanism? is used for all
> types, see section 1.3.1.3. The ?array of unrestricted message elements?
> is the allocated message element for Endpoint Reference Junctions,
> Virtualized Reference Junctions, etc.
>
> We do not want to add ?Type? to the QueryResponse, since this is a
> property that is selectable by the caller to be included in the response.
>
> Remember that the referral message is a special case message that
> signifies an ?interruption? to the operation. Its sole purpose is to
> redirect the caller to another RNS service that will resolve the request
> (this information is stored only in Referral entries). You can view the
> referralEPR message element as part of the message header for the
> QueryResponse message. The content of the QueryResponse is not contained
> in the header.
>
>
>>Moreover, 'remainingPath' (I am not sure this name is good or not) is
>>useful that represent a path to be traversed. Of course, this can be
>>obtained by 'Path' and 'basePath', while it is useful.
>
>
> Again, I am not quite sure what you are suggesting here. If this is still
> applicable in light of the above comment, please let me know.
>
>
>>* XML Structure of EPRs and LogicalReferences
>>
>>EPRs and LogicalReferences are basically a list of EPR and
>>LogicalReference, while the structure is not known in the document.
>>This needs to be clarified.
>
>
> I have expanded on this a bit in section 1.2.2.2.1. Additionally, I have
> just updated section 1.3.1.3 to illustrate an example QueryResonse that
> now contains the XML structure of EPRs.
>
>
>>* <Entry> and <Target> in example of QueryResponse
>>
>>Neither <Entry> nor <Target> is introduced in the document.
>
>
> Target is introduced in section 1.2.2.2.1. Although Entry is discussed at
> some length, the QName was not introduced; I have added a brief note about
> it in section 1.1.
>
>
>>* rename operation
>>
>>Now 'update' does not have 'Name'. Need to update the description.
>
>
> Done, thanks for catching that!
>
>
>>* QueryInput in list operation
>>
>>'EPR' and 'LogicalReference' seem to be missing QueryInput of list
>>operation.
>
>
> Only the plural form seem appropriate as input parameters. In other words
> ?EPR? carries a singular connotation, whereas ?EPRs? indicates all/any
> EPRs that are registered. The list operation input parameters are used to
> identify which properties should be included in the response message, so
> it doesn?t appear to be appropriate to request only a single EPR in the
> response message.
>
>
>>* Error message
>>
>>Error message (string) is better to be added in QueryResponse and
>>ChangeResponse. Moreover, several typical error messages need to be
>>defined such as 'no such junction or virtual directory', 'not a
>>virtual directory', 'junction exists', 'is a virtual directory',
>>'virtual directory not empty', 'invalid argument', ....
>
>
> I agree that error messages need to be defined, however I believe that
> adding an ?error message? element in the response message structure is not
> the optimal approach. Although error messages still need to be defined,
> the current doc does specify that a (SOAP) ?fault? will be thrown (in
> other words, a ?fault message? will be returned to the caller based on
> WS-BaseFaults) in case of an ?error?.
>
>
>>* EPRs and LogicalReferences
>>
>>How to update and delete entries in EPRs and LogicalReferences is not
>>well-defined. For example, how to create a junction entry that has
>>two EPRs? How to insert an EPR3 to a junction entry that already has
>>EPR1 and EPR2? How to delete just EPR2 from a junction entry that has
>>EPR1 and EPR2? Would you describe a procedure with an example of
>>setResourceProperties?
>
>
> I do believe that the create case is covered in section 1.3.2.1. It does
> contain a brief note below the parameter table that indicates multiple
> <EPR> elements may be used. I have added a quick example however.
>
> As for the update case, you are correct in saying that it was not
> well-defined. I have tried to enhance that section (1.3.2.5); it now
> includes an example and much more description. Additionally, it
> identifies what change type messages are allowable for what properties.
> Thanks again for bringing this to my attention.
>
>
>>* In the case that the specified 'Path' is a junction
>>
>>When the specified 'Path' is a junction, 'lookup', 'delete', and
>>'update' operations are for the specified junction itself, while
>>'list' and 'create' are not since these operations basically apply to
>>a sub entry (or entries) in the specified 'Path'. This needs to be
>>clarified in the document. In the list and create cases, a referral
>>message (or a above-mentioned junction message) could be returned as a
>>QueryResponse and ChangeResponse, respectively.
>
>
> The list operation only accepts a virtual directory as an input, if not a
> fault should be thrown. As for the create operation, it behaves just as
> the other operations (lookup, delete, and update). You can specify an
> absolute path that denotes the junction to create. The document does make
> an explicit statement regarding the list operation only taking a virtual
> directory, see the last paragraph of the summary section of 1.3.2.3.
>
>
>>* In the case that the specified 'Path' in create operation is an
>> alias to a virtual directory
>>
>>When the specified 'Path' in create operation is an alias to a virtual
>>directory, how does the create operate? Since 'Alias' can be resolved
>>within the service, it is reasonable to create a new entry under a
>>virtual directory pointed to the alias specified by 'Path'. This
>>seems to be a special case enough to be described.
>
>
> This is a very good point. In fact this augments the previous statement
> somewhat in that an Alias that points to a VirtualDirectory is also
> legitimate as input to the list operation. I will add a brief description
> of this consideration of Aliases.
>
> ------
>
> Thank you for your detailed review.
>
> See you at GGF14!
>
> Best regards,
> Manuel Pereira
> IBM Almaden Research Center
> 1-408-927-1935 [T/L 457]
> mpereira at us.ibm.com
More information about the gfs-wg
mailing list