[cosmo-dev] a new year, same problem
Travis Vachon
travis at osafoundation.org
Fri Jan 4 12:22:21 PST 2008
I've hesitated to respond until I could get my brain wrapped around
this thing. I'm still a little fuzzy, so forgive me if some of this is
less than totally thought out..
At the moment I'm pessimistic about the proposal to do conflict
management in the web ui. From http://chandlerproject.org/Journal/CosmoC18NNotes
:
* Brian updates "weekly meeting" in "work" by changing the
duration
* Randy updates "weekly meeting" in "my stuff" by changing the
body to "losers"
The copies of "weekly meeting" are now out of sync.
When Bobby uses the web ui to look at his collections, he'll first
look at "work" and see Brian's changes. At this point there is no way
for the web ui to know that a different change has been made in "my
stuff," since the data in that collection hasn't even been requested
from the server. A few possible solutions:
1) Include links to all "copies" of an item in its representation. The
web UI would then be responsible for making an http request to each
and making sure there are no changes. We might even be able to
optimize this using etags or something similar.
2) Include links to "conflicts" in the representation of an item that
has been updated in one collection but not another. This would require
the server to do some amount of automatic updating of items during
modifications and grok conflicts. I'm not actually sure this would
look much different than (1), except for being more complicated.
3) Provide a link to resource that would help sort this out, which
would be requested when an item is selected in the web ui. This
resource might be a list of copies of an item, a representation of
copies of an item that are different than the current item, or
something else entirely (??)
Similarly, updating an item in multiple collections at once is
infeasible because, with the exception of some overlay related ui
state scenarios, the client has no way of knowing which collections an
item belongs to. Solution (1) above would help solve this.
All that said, I don't like the idea of leaving the desktop client as
the only party responsible for syncing copies of items, as it
basically takes away server support for relationships between copies
of an item (except for the fact that we'd keep uuids that would be
shared by all copies of an item, if we do that). It seems to me that
entirely stand-alone users in this world would essentially never see
the relationship between copies of an item.
> the following URLs might all
> address the same item:
>
> o /atom/item/{uuid}
Not sure I follow.. assuming the desktop client hasn't synced things
up, which of the various copies of an item would this return?
I'll let this keep rolling around in my head and update here if I
think of anything (hopefully slightly more constructive ;-)
-Travis
On Jan 4, 2008, at 11:09 AM, Brian Moseley wrote:
> On Jan 2, 2008 9:44 AM, Randy Letness <randy at osafoundation.org> wrote:
>> I thought maybe a the new year would result in the "items in multiple
>> collections" problem disappearing, and well I guess it didn't happen.
>> So back to reality. I've started another wiki page on the idea of
>> "compartmentalization", that is, representing items in multiple
>> collections as copies of the item in each collection:
>>
>> http://chandlerproject.org/Journal/CosmoC18NNotes
>
> I'm generally in favor of this, as long as we can agree on an approach
> for the web UI conflict problem. I'd like to hear what the UI guys
> think about the idea.
>
> assorted thoughts:
>
> * how about calling it "collection-scoped uid" or "cuid" rather than
> "client uid"? it won't always be assigned by or known to the client
> (for example, CalDAV clients and GreaseDoggy)
>
> * this lets us go back to more descriptive/meaningful/"cool" URLs,
> which I know lots of people would like. the following URLs might all
> address the same item:
>
> o /atom/item/{uuid}
> o /atom/{user}/collection/{collection uuid}/cuid/{cuid}
> o /atom/{user}/collection/{collection uuid}/name/{sanitized
> display name}
> _______________________________________________
> cosmo-dev mailing list
> cosmo-dev at lists.osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev
More information about the cosmo-dev
mailing list