Andre Poenitz wrote:
Jean-Marc wrote:
But simultaneous editing by several users is an old dream of ours :)

I can imagine a possible solution along the lines of separate processes
communicating over the network using something like the lyxserver protocol.

An ad-hoc outline of the communication: When someone hits a key or
does a mouse move that would change the contents of the document, the
local program would broadcast its intention to change something. The
others would confirm that they pass control and prevent local changes.
If all confirmations arrived, the actual change can happen, and be
broadcast to all listeners. That would be two full roundtrips per
keystroke, which is not nice but should work. If that is set up one
might go down and optimize stuff a bit...

the "confirm from each agent" limits each transaction
to the slowest confirmer (+ any link contention).

Quicker would be single-point control for delegation
of write-permit, and default that each agent cedes
write-permit (when opening a real-time shared doc,
or when a doc becomes attributed real-time shared).

The first agent to request write-permission receives
ACK (1st round trip, but not delayed by ACKs from
slowest confirmer).

In simplest case, delegation of write-permit becomes
increasingly unfair for increasing differences of
link latency.  Could poll round-trip-times, and
handicap fast responders, to level all at
    (worst RTT)/2.
This still saves
    ((worst RTT)/2
+ (link contention of (N - 1) agent permit-REQs)
+ (link contention of (N - 1) agent permit-ACKs)),

if compared to broadcast requests, with distributed
independent decision-makers.

I don't think it is very complicated if one is allowed to use suitable
tools.

Andre'
half the topics on this list seem to be how to
overcome problems of using Qt...

regards,
Douglas

Reply via email to