[dais-wg] Updates Based on DAIS Factory Results

Malcolm Atkinson mpa at nesc.ac.uk
Wed Jun 1 01:58:16 CDT 2005


Norman,

Many thanks, I hadn't read the proposal and had misinterpreted the
purpose of the update. 

But, if the data is to be used in subsequent operations, e.g. as a
component of input to a subsequent operation, it is only necessary to
introduce a proper model for naming results and using names in
subsequent / other parts of requests - as I have advocated from the
beginning in OGSA-DAI - this is general and does allow multiple uses of
intermediate expressions / values that have been defined by early parts
of / requests.

I should clearly try to read the proposalbefore I comment further.

Malcolm


 >-----Original Message-----
 >From: Norman Paton [mailto:norm at cs.man.ac.uk] 
 >Sent: 31 May 2005 21:30
 >To: Malcolm Atkinson
 >Cc: dais-wg at ggf.org
 >Subject: Re: [dais-wg] Updates Based on DAIS Factory Results
 >
 >
 >I hope that the proposal as made doesn't open any cans of 
 >worms on the 
 >update semantics front, although there are, of course, lots 
 >of such cans 
 >to be avoided!
 > 
 >The proposal doesn't update the result sets themselves, but rather 
 >allows the result sets to be used as input parameters to updates over 
 >existing databases.  As such, the insert and delete 
 >operations described 
 >in the proposal only read from the result sets, while making 
 >changes to 
 >an existing database that need not be the one from which the 
 >result set 
 >was derived.
 >
 >I note that the model of database update is not one that seeks to 
 >propagate changes to a result set back to their original 
 >source, as that 
 >also might be considered to be a can of worms!
 >
 >I hope I have interpreted your question correctly ... it's 
 >just that the 
 >proposal seems to have avoided the specific issue raised.
 >
 >Norman
 >
 >
 >Malcolm Atkinson wrote:
 >
 >>It would seem to me to be a very odd semantics that allowed 
 >update of a
 >>result set.  The result set may be incrementally 
 >instantiated much later
 >>as it is read - what would an update mean?
 >>
 >>Malcolm
 >> 
 >>
 >> >-----Original Message-----
 >> >From: owner-dais-wg at ggf.org [mailto:owner-dais-wg at ggf.org] On 
 >> >Behalf Of Norman Paton
 >> >Sent: 23 May 2005 14:31
 >> >To: dais-wg at ggf.org
 >> >Subject: [dais-wg] Updates Based on DAIS Factory Results
 >> >
 >> >
 >> >The DAIS specifications support Factory operations, which return 
 >> >identifiers for
 >> >the results of queries.  However, there is a lack of 
 >symmetry in the 
 >> >handling of
 >> >such results in the specs, in that their identifiers cannot 
 >> >currently be 
 >> >provided
 >> >as inputs to update operations.  This note comments on options for 
 >> >extending this
 >> >capability. 
 >> >
 >> >1. Relational
 >> >
 >> >In the relational model, data access and manipulation 
 >> >requests are directed
 >> >at data services using the SQLAccess operation.  Additional 
 >> >operations could
 >> >be defined on the relational data access service or on the 
 >> >SQLRowSet that
 >> >in some way push the contents of the row set to the 
 >> >relational data access
 >> >service.
 >> >
 >> >1.1 Insert
 >> >
 >> >The following operation could be defined:
 >> >
 >> >SQLAccess::Insert(TableName, FieldMapping, RowsetIdentifier) -> 
 >> >SQLExecuteResponse
 >> >
 >> >Given the name of a table, insert the tuples from the 
 >rowset into the 
 >> >given table.
 >> >
 >> >Faults:
 >> >- Unable to access Rowset.
 >> >
 >> >The semantics might most easily be assumed to be those of the 
 >> >existing 
 >> >SQL clause:
 >> >
 >> >insert into TableName [(FieldName1 [, FieldName2, ...])] 
 >SelectClause
 >> >
 >> >where the SelectClause is assumed to range over the tuples in the 
 >> >RowSet.  The
 >> >SQLExecuteResponse provides access to the 
 >SQLCommunicationsArea, and 
 >> >thus is able
 >> >to provide access to a wide range of error conditions.
 >> >
 >> >The FieldMapping would represent a list of pairs, associating 
 >> >each named 
 >> >field in
 >> >TableName with each of the fields in the SQLRowSetSchema; 
 >it could be 
 >> >optional if
 >> >the names in the two settings had a 1:1 mapping.
 >> >
 >> >
 >> >1.2 Delete
 >> >
 >> >The following operation could be defined:
 >> >
 >> >SQLAccess::Delete(TableName, FieldMapping, RowsetIdentifier) -> 
 >> >SQLExecuteResponse
 >> >
 >> >Given the name of a table, delete the tuples from the 
 >rowset from the 
 >> >given table.
 >> >
 >> >Faults:
 >> >- Unable to access Rowset.
 >> >
 >> >The semantics might most easily be assumed to be those of the 
 >> >existing 
 >> >SQL clause:
 >> >
 >> >delete from TableName WHERE <condition>
 >> >
 >> >where the condition is assumed to test for tuples that 
 >match those in 
 >> >the RowSet,
 >> >given the name mapping in FieldMapping.  The match should probably 
 >> >involve equality
 >> >on all attributes, but matching only on key is also an option. 
 >> >SQLExecuteResponse
 >> >provides access to the SQLCommunicationsArea, and thus is able to 
 >> >provide access
 >> >to a wide range of error conditions.
 >> >
 >> >The FieldMapping would represent a list of pairs, associating 
 >> >each named 
 >> >field in
 >> >TableName with each of the fields in the SQLRowSetSchema; 
 >it could be 
 >> >optional if
 >> >the names in the two settings had a 1:1 mapping.
 >> >
 >> >
 >> >2. XML
 >> >
 >> >Unlike the WS-DAIR specification, the WS-DAIX spec 
 >contains top-level 
 >> >update operations,
 >> >namely:
 >> >
 >> >XMLCollectionAccess::AddDocuments([Name, Collection, Data]) -> 
 >> >ResponseDocument
 >> >XMLCollectionAccess::RemoveDocuments([Name], Collection) -> 
 >> >ResponseDocument
 >> >XMLCollectionAccess::BulkLoad([Collections],[Name, 
 >> >Collection, Data]) -> 
 >> >ResponseDocument
 >> >
 >> >Where the above operations take Data as a parameter (for 
 >> >insertion only 
 >> >- deletes are
 >> >by document name, which seems more natural than by document 
 >> >matching), 
 >> >one could
 >> >envisage variants in which an XMLSequenceIdentifier is passed as a 
 >> >parameter.
 >> >
 >> >
 >> >Anyway, these are some initial thoughts on how the named 
 >> >results of DAIS 
 >> >factory operations
 >> >might be able to be used as inputs to other DAIS 
 >operations; comments 
 >> >invited. 
 >> >
 >> >Norman
 >> >
 >> >
 >> >
 >>  
 >>
 >
 >
 >
 >





More information about the dais-wg mailing list