Subject: [Simple] Managing XCAP Etags

From: Jari Urpalainen <[email-masked]>
Date: Tue, 04 Nov 2003 10:11:05 +0200

Hi all,

As entity tags should be updated according to current XCAP-draft by 
element/node/attribute basis, synchronization between the client and 
server is fairly complicated. While I understand that the aim is to 
allow fine-grained partial updates to the xml-documents, but after many 
partial updates one document may have a lot of "tree-like" ETag 
metadata.  The problem is how to get this metadata to the client ? If 
you havn't followed the history of the document, i.e you are fetching 
some new document with http get and you'll receive e.g. only the root 
Etag then. What about the other Etags within xml-tree ? Certainly, you 
could get them by XPATH-queries according to the document, but that is 
way too ugly. Instead, I'll propose that only document based Etag is 
used, as it allows a simple integrity test for partial updates and is 
also much simpler to implement.

BR,
Jari Urpalainen

_______________________________________________
Simple mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/simple

---

From: Jonathan Rosenberg <[email-masked]>
Date: Thu, 13 Nov 2003 03:24:39 -0500

This is a good question.

I think that, when there is a modification to a component of the 
document, the server would assign the same Etag to all of the ancestor 
and descendant components. This way, if the client is the only one 
ever manipulating the document, it knows what the various etags are 
without having to query them.

That said, I think its worth considering whether this is just too 
complicated or not. If we take your proposed route, and just maintain 
an etag for the document, its definitely simpler. The drawback is that 
it will become very hard for two users to separately modify different 
subtrees in the same document. Each time one makes a change, the other 
will need to fetch the whole document to apply there change.

Is that a problem? Not clear. For the current application usages on 
the table in SIMPLE, I would say no. Indeed, if the scope of xcap is 
to worry about the provisioned data for a user, then its unlikely in 
general that there will be multiple clients in play at once, since the 
scope by definition is provisioned data for a user. Some of the other 
conceived usages, such as CPCP, consider cases where the data is about 
a conference, and potentially many users might be modifying it at the 
same time.

That said, I am inclined to favor simplicity here, and accept your 
suggestion to maintain an Etag on the entire document, rather than 
full set of components.

I'll also be discussing this during the SIMPLE meeting tomorrow afternoon.

Thanks,
Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                600 Lanidex Plaza
Chief Technology Officer                    Parsippany, NJ 07054-2711
dynamicsoft
[email-masked]                     FAX:   (973) 952-5050
http://www.jdrosen.net                      PHONE: (973) 952-5000
http://www.dynamicsoft.com

---

From: Jonathan Rosenberg <[email-masked]>
Date: Thu, 13 Nov 2003 03:24:39 -0500

This is a good question.

Thanks,
Jonathan R.

---

From: Scott Lawrence <[email-masked]>
Date: Thu, 13 Nov 2003 11:04:26 -0500

Jonathan Rosenberg <[email-masked]> writes:

> I think that, when there is a modification to a component of the document,
> the server would assign the same Etag to all of the ancestor and descendant
> components. This way, if the client is the only one ever manipulating the
> document, it knows what the various etags are without having to query them.

HTTP says that the Etag is associated with the Request URL - all of
the URL.  However, it also says that the Etag value is created by the
server using any algorithm it chooses; clients don't get to interpret
Etags, just accept them and pass them back as qualifiers in
conditional requests.

I don't think that xcap needs to specify anything about the server
policy for etag generation - the server returns an etag, the client
echos it to qualify its update request.  Whether the server associated
the Etag with the entire document (as it should if it can't manage
non-overlaping changes within the same document), or whether it
assigned the value in such a way that allows it to do a partial update
is not important to the client, and need not be in the spec.

-- 
Scott Lawrence        
  Pingtel Corp.

---

From: Scott Lawrence <[email-masked]>
Date: Thu, 13 Nov 2003 11:04:26 -0500

-- 
Scott Lawrence        
  Pingtel Corp.