This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/sfmain/do/go/artf6015?nav=1&selectedTab=comments at Sun, 06 Nov 2022 14:34:34 GMT SourceForge : artf6015: RUS Core IDL Recommendation First Draft

Project Home

Tracker

Documents

Tasks

Source Code

Discussions

File Releases

Wiki

Project Admin
Search Tracker
Project: RUS-WG     Trackers > Submit Draft Doc to Chairs > View Artifact
Artifact artf6015 : RUS Core IDL Recommendation First Draft
Tracker: Submit Draft Doc to Chairs
Title: RUS Core IDL Recommendation First Draft
Description:
Dear RUS members & chairs,

I want to submit the first draft of the interface definition language (IDL) specification of the RUS Core.

This specification is the outcome of the discussions at OGF19 were it was suggested to follow the idea of the ByteIO-WG 

and split the specification into an abstract part and concrete profile renderings.

It is basically based on the current OGSA RUS draft 17, with the addition of the suggestions from OGF20 and group 
discussions. Beyond that I also used the opportunity to add extension points to the current draft, which I would like to

 suggest for discussion.

The following changes have been incorporated:
- listMandatoryElements returns list of QNames instead of empty elements.
- extractUsageRecords (former extractRUSUsageRecords) returns list of plain UsageRecords, the RUSUsageRecord element is 

gone.
- extractRecordHistory added to expose the record history that was exposed via the RUSUsageRecord
- extractUsageRecords can now also return a WS-Enumeration context to allow extraction of larger result sets
- incrementUsageRecordPart and replaceUsageRecords have been removed because they can be expressed with 
modifyUsageRecords
- modifyUsageRecordPart was extended to become modifyUsageRecords to allow general modification of many usage records 
with one request
- deleteSpecificUsageRecords was removed because can be expressed with deleteUsageRecords
- deleteRecords was renamed to deleteUsageRecords

New features:
- All search terms/filters/update expressions were changed to xs:any and now have an URI attribute to allow different 
query dialects to be used. Currently the specification mandates XPath 1.0 for delete and extract and XQuery Update 
Facilities for modify.
- xs:any extension points were added to all operation request and response messages as well as to the record history.
- The type of operation in the record history is now specified using a URI allowing future and implementor 
extensiability.

This document currently is very much a work in progress, some sections are still missing (authors, abstract, 
contributors, appendix amongst others) and the text can need some more work. However I feel that it is time to present 
this to the working group for discussion so that we can come to a consent about the general direction and move on from 
there. 

Besides wanting to encourage people to critically examine the presented document, I want also to especially encourage 
expressions of support!

The document was written using the W3c XMLspec DTD and converted with a stylesheet to xhtml format.

WARNING: GridForge mangles the file a little bit upon download, so either ignore or remove the faulty comment at the end
!
Submitted By: Gilbert Netzer
Submitted On: 09/18/2007 7:23 AM EDT
Last Modified: 10/16/2007 10:59 AM EDT

Status / Comments Change Log Associations Attachments (1)  
Status  
Group: *
Status:* Open
Category: *
Customer: *
Priority: * 1
Assigned To: * None
Reported in Release: *
Fixed in Release: *
Estimated Hours: * 0
Actual Hours: * 0
Comments
Morris Riedel: 10/16/2007 10:59 AM EDT
  Comment:
Hi,

  interesting document. However we should bring it somehow in a word document that people are able to use the "track changes" function and can comment
 directly on the document. Usual procedure in other groups.

Regards,
Morris
  Action: Update
Assigned To changed from Gilbert Netzer to none (no value)
Gilbert Netzer: 09/21/2007 7:57 AM EDT
  Comment:
After a little experimentation I have been able to use a single XQuery update statement (in this case with the eXist XMLDB in version 1.1.1) to 
replace the contents of several usage records, thus emulating the behaviour of the old replaceUsageRecords operation:

for $new_ur in (<ur><id recId="1"/><val>New Value1</val></ur>, <ur><id recId="2"/><val>New Value2</val></ur> ), $old_ur in /urs/ur
where $old_ur/id[@recId=$new_ur/id/@recId]
return (update replace $old_ur with $new_ur)

The previous statement replaces two usage records in the collection with new contents supplied via the query. It is written in the eXist variant of 
XQuery update, the current W3C draft variant would look the same but the word "update" replaced with "do". 

While this demonstrates that the replaceUsageRecords operation can be moddeled using the modifyUsageRecords operation, the issue of including a 
replaceUsageRecords operation into the specification is still open.

To further elaborate on the discussion, I want to post the following questions:

- Does your application use (or would use) the replaceUsageRecords operation and how frequent do you thing will this operation be?

- If yes is should this go into the RUS Core or RUS Advanced specification?

- Should this be a separate operation or should the modifyUsageRecords operation be extended with a query dialect that allows presenting a list of 
usage records with replacements for existing records (the match would be done via the unique record identity attribute that may not be changed)?
  Action: Update
Gilbert Netzer: 09/21/2007 4:24 AM EDT
  Comment:
I am a little bit confused about the presented use-case. If a client does not know what query, how should it be able to query the recordIds, both need
 the same query?

The user needs in no case to be exposed to any XPath, the client which is software can have any interface towards the user and is the only part that 
actually has to handle the XPath language (or any other query dialect for that matter). 

So we should instead consider if XPath is good as the only option for use by the client, though I would advocate for keeping the number of mandatory 
query dialects very small, preferably 1. 

The extractSpecificUsageRecords could in the new specification be best modelled using a query dialect for the extractUsageRecords operation since this
 was exactly the use case I had in mind for having query dialects. However if this is only to shield the user from XPath I would strongly suggest that
 it is the clients job to wrap the user query into a suitable XPath statement which can be easily constructed by the client.

However I can see the following use-case for a more limited query operation:
First a client wants to get a limited amount of information for a large number of usage records to present a overview list to the user. Later on it 
can request detailed information on specific records selected by the user.

In this case it could be interesting to not transfer all information up-front but only return the parts that the client is interested in.

For continuing the discussion on this thread, I want to suggest comments on the following questions:

- Do you think the use-cases presented for the more limited extractUsageRecordIds (or similar generalized operation) are relevant, e.g. is this 
something your actually use in an application or plan to use?

- If yes, should this be part of the RUS Core specification or should this be offered in the RUS Advanced specification, e.g. is this a "showstopper" 
for using the RUS interface or is it merely a nice to have feature that you can live without (that does not mean that it is not valuable and should be
 considered)?

- Do you only need a very limited set of results from this operation (e.g. only the record ID value) or do you need a more general operation that can 
return arbitrary parts of usage records selectable by the client (e.g. give me the recordId, the JobId and the startTime)?

- Should this be implemented as a separate opertion or is it better to generalize the extractUsageRecords operation to be able to return partial usage
 records?


Thanks in advance for you comments!
  Action: Update
Xiaoyu Chen: 09/20/2007 7:02 PM EDT
  Comment:
   Here are my comments on RUS IDL spec 

        1). The service interface description should be clarified in a consistent way as defined in IDL spec especially in following particular points
:
 
         RUS:extractUsageRecords need to re-defined as IDL spec. How about RUS:extractUsageRecordIds? This is an important operation as I can see. An 
example usage scenario would be query specific usage record using urf:UsageRecord/urf:RecordIdentity/@recordId as a context node within xpath 
statement. The client won't know the recordId value before querying. An auxiliary operation, RUS:extractUsageRecordIds would be helpful. For users 
unfamilar with xpath statement, would it be better to have RUS:extractSpecificUsageRecords with a set of recordId values as parameters?
        2). Most of modification operations (updates and deletions) defined within RUS v1.7 specs are reduntant. I totally agree to remove most of 
them, except RUS:replaceUsageRecords. It is difficult to replace existing usage records using a single RUS:modifyUsageRecords operation.

  Action: Update
Xiaoyu Chen: 09/18/2007 7:53 AM EDT
  Comment:
I like the idea that allows other query and update dialect extensions, which can be used align with WS-Enumeration spec.
  Action: Update
Gilbert Netzer: 09/18/2007 7:23 AM EDT
  Attachment: rus-core-idl.htm (93.23 KB)
  Action: Create
Added an attachment.


 
 
 
< Previous
 


The Open Grid Forum Contact Webmaster | Report a problem | GridForge Help
This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/sfmain/do/go/artf6015?nav=1&selectedTab=comments at Sun, 06 Nov 2022 14:34:35 GMT