June 22, 2002
Groove Tour design, part three.
Groove Tour design, part three. Latency and stuff (or at least, a lead-in to those things). First off, it helps to understand how Groove's shared-space synchronisation works (at least to some "comfort level"... I'm usually happy just to say that Groove keeps shared spaces in synch, and you don't need to go any deeper than that). When you're building Groove tools, and especially when integrating with other systems, the synch model is quite important. I don't claim to understand the dynamics in detail - I only work with it from the outside, so things may be way off base. But here we go. In your shared space, transactions happen on the database (database = the space and its contents) when things happen in the space. Users initiate transactions, usually by waving a mouse around or typing. The transactions change the state of the (XML) database underneath. These transactions are also put into message queues directed at the other endpoints of the shared space (the other participants' devices). Eventually, they're quite likely to arrive. Actually, the Groove "dynamics" service pretty much guarantees that the transactions will arrive and be processed, in the same order, on every endpoint of a shared space (and if that fails, your endpoint is "out of synch", and you and every other endpoint in the space is made aware of that synchronization failure, and you can get reinvited to the space if you want). To sum that up (it's late... keep this short...) you have an interesting choice when looking at a Groove shared-space. Are you interested in the "current state"? Great; it's always being synchronised with any other participants in the space. Sharing state is incredibly easy: for example you use a propertylist But the Tour is concerned instead with tracking changes in state - sequenced events. That's actually just as easy - the events in the Tour are set on a propertylist using the code below. Each event is a "delta", and is disseminated to the other endpoints, and processed when it arrives. But when you receive these events, time can flow both forward and backward. Now that starts to get fun. And more serious discussion will have to wait....! var pEl = CreateNewElement("urn:training.groove.net:TourEvent"); |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vcard
archives: January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 June 2002 May 2002 April 2002 March 2002 February 2002 January 2002 December 2001 November 2001 October 2001 September 2001 August 2001 July 2001 June 2001 see also: {groove: [ ray, matt, paresh, mike, jeff, john ], other: [ /* more blogroll to follow */ ] } The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer. RSS 2.0 RSS 1.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||