|K. Ari Krupnikov||Feb 8, 2004 4:59 pm|
|David Megginson||Feb 8, 2004 5:42 pm|
|K. Ari Krupnikov||Feb 8, 2004 8:58 pm|
|Seairth Jacobs||Feb 9, 2004 5:45 am|
|Seairth Jacobs||Feb 9, 2004 5:51 am|
|David Megginson||Feb 9, 2004 6:21 am|
|Bullard, Claude L (Len)||Feb 9, 2004 7:07 am|
|Bullard, Claude L (Len)||Feb 9, 2004 7:43 am|
|David Megginson||Feb 9, 2004 8:19 am|
|Bullard, Claude L (Len)||Feb 9, 2004 8:26 am|
|K. Ari Krupnikov||Feb 9, 2004 11:35 am|
|K. Ari Krupnikov||Feb 9, 2004 1:00 pm|
|Bullard, Claude L (Len)||Feb 9, 2004 1:45 pm|
|K. Ari Krupnikov||Feb 9, 2004 2:43 pm|
|Bullard, Claude L (Len)||Feb 9, 2004 2:51 pm|
|Jim Ancona||Feb 9, 2004 3:04 pm|
|David Megginson||Feb 9, 2004 4:46 pm|
|Seairth Jacobs||Feb 9, 2004 6:24 pm|
|K. Ari Krupnikov||Feb 10, 2004 9:54 pm|
|K. Ari Krupnikov||Feb 10, 2004 10:13 pm|
|Pete Kirkham||Feb 11, 2004 2:26 am|
|Julian Reschke||Feb 11, 2004 2:54 am|
|Klotz, Leigh||Feb 11, 2004 10:18 am|
|Robin Berjon||Feb 11, 2004 10:21 am|
|Chiusano Joseph||Feb 26, 2004 6:18 am|
|Michael Champion||Feb 26, 2004 7:29 am|
|Bullard, Claude L (Len)||Feb 26, 2004 7:51 am|
|Subject:||Re: [xml-dev] A question about REST and transaction isolation|
|From:||K. Ari Krupnikov (ar...@cogsci.ed.ac.uk)|
|Date:||Feb 8, 2004 8:58:29 pm|
David Megginson <dmeg...@attglobal.net> writes:
K. Ari Krupnikov wrote:
Suppose I want to build a RESTful interface to an ACID system. I want to allow the user to incrementally change the state of the system, but only "commit" the changes when he is satisfied with their sum. I imagine a user GETting a resource, POSTing some changes to it which may have side effects on other resources, GETting other resources to observe the side effects, and eventually committing to the changes or rejecting them.
If the scope of the potential side effects is small and well-defined, you might be able to reduce everything to a single exchange: get all of the potentially-affected state to the client in a single XML document (or collection of XML documents), allow the client to make changes locally until satisfied, then post the modified state back to the server. Since modifications live on the client side until committed, there is no need to come up with any separate URL scheme.
Client does presentation, server does business logic. Is that not in line with REST?
This approach would work for, say, a movie database, where the user might check out a full movie description to change the director's name, then check the entire description in again. It might not work so well for, say, a geographical database, where a modification to a shoreline may also require corrections to landuse data, roads and railroads, and so on, in no easily-predictable way.
It is entirely possibly that your project is one in the second category, but I wouldn't give up on the simpler approach until it were proven inadequate. Stupid-and-easy usually wins: moving 50K of XML each way once can be much more efficient than many 100 byte transactions.
It's not about reducing redundant traffic, it's about reducing redundant logic. One node should know how to do a process, be the final authority and bear the ultimate responsibility for that process.
-- Elections only count as free and trials as fair if you can lose money betting on the outcome.