用于可重放彗星风格应用的高效存储/检索方法(Google Wave,Etherpad)

时间:2009-12-04 21:02:05

标签: comet data-storage etherpad

我正在考虑一个Web应用程序,它具有与Google Wave和Etherpad中看到的相同类型的多用户,自动保存,无限撤消/重放功能(尽管规模和用户群规模都大幅缩小)。

在我离开并重新发明轮子之前,这件事已经被解决为技术或图书馆,甚至只是一种设计模式。

我知道这不一定是最好的Stack Overflow问题,因为可能没有“正确”的答案,但我的Google-fu失败了,我只是喜欢阅读清单!

通常我会在python / django下进行开发,但这不是一个确定的要求只是一个偏好:)

1 个答案:

答案 0 :(得分:1)

听起来像一个真正的技术俱乐部三明治:

  • 服务器中的网页服务以及用户和会话管理服务器代码

  • 服务器中的OLTP和Comet Instant Messaging服务器代码

  • 服务器中的版本控制冲突解决代码

  • Client internals中的RAM内版本控制数据库

  • 客户端中的版本控制冲突解决代码 (对传入的字节进行批量操作以提高响应速度 - 客户端 平台是单线程的!)

  • 客户端内部的Comet Instant Messaging客户端代码 (对传入的字节进行批量操作以提高响应速度 - 客户端 平台是单线程的!)

  • 客户端GUI中的文本测量

  • (可选)用于字体指标知之甚少的浏览器的自定义位图字体

  • 客户端GUI中的2D动画代码 (分批操作到油漆清单以提高响应能力 - 客户 平台是单线程的!)

  • 客户端页面中的Web用户会话管理服务器代码

主要的设计问题是网络使用模式的灵活性,以支持在无用的代理服务器和连接或带宽限制需求面前继续运行。您可能需要能够在各种各样的Comet信号策略和超时范围之间轻松切换,进行实验,并允许应用程序轻松增长,因为Comet在现场的任何限制和问题都会减少。

我希望主要的实现问题是在GUI接受和确认插入位置更改或接收来自(the)Comet(图层)和文本输入更改的编辑之间实现尽可能短的事件序列。