I'd like to implement something similar to Etherpad - an online开发者_如何学运维 collaboration program.
Do you know of a library for the server that takes care of incoming connections, manages a user list and distributes structured data between them?
DRb is near to what I want, but as I understand it, but as I understand it, it repeatedly sends the whole object over the network, making it quite slow. It should only send updates.
Ruby would be perfect, but I don't really care.
Operational transformation is the technology you are looking for. However it won't manage your incoming connections and user-list. It takes care of the data and how to perform updates on them. You have a couple of options here:
Implement your own version. Depending on how sophisticated the collaboration will need to be, i.e. will it involve formatting or text-only-editing, it you can follow some of the standard algorithms out there. http://cooffice.ntu.edu.sg/otfaq/.
Etherpad is open source so you can always consult their code base. It would help if you understood a little the "theory" underneath the implementation. Again, refer to the prev link.
You might want to try to contact to the guys at codoxware. They have a pretty sophisticated operational transformation library in a number of programming languages. I haven't been able to get my hands on a copy yet (they seemed to have closed the trial) so I cannot say how good it is. But they've used it to build pretty sophisticated collaboration in Word.
精彩评论