在 Berlin Buzzwords NoSql 会议上,会议组织者之一、《CouchDB: The Definitive Guide》(O’Reilly 的一本免费图书)的共同作者Jan Lehnardt ( @janl ) 做了一场名为“ Making Software for Humans - CouchDB and The Usable Peer-to-Peer Web ”的演讲。
Jan 热情洋溢地谈论了他对 CouchDB 的重要核心特性的看法:
- 易于安装
- 基于文档
- JSON 是所有编程语言共享的数据类型的公共子集
- 良好的 HTTP/REST 接口和 API
- 干净简洁的两层应用程序(浏览器端的 HTML+JavaScript,CouchDB+JavaScript 作为服务端)
- Couch Apps
- 向上、向下扩展的能力
- 适用于多种平台 / 设备,包括移动设备(Android、Nokia Maemo/MeeGo 以及 iPhone)
- 内建同步、冲突处理及复制机制
- 性能优异
- 通过 JavaScript 中的 Map/Reduce 生成视图
- 通过 HTTP-Socket 提供数据库变更通知
Jan 还强调了数据的隐私和归属问题,他谈及了 Facebook 和 Diaspora 项目。一个推荐的解决方案是在本地 CouchDB 实例中保存更多个人数据(至少一份安全拷贝)。“无论如何每台机器都应该运行一个 Web 服务器——这是 Web 最早的想法之一。”如果你的任意一台机器上有这些实例,那么像如下信息:
- 联系人
- 约会信息
- 书签及浏览历史
- 甚至是电子邮件和 IM 消息
都能以文档的形式存储在数据库中,自动同步(数据库级别)到所有其他你使用的设备的 CouchDB 实例上。实践这一想法意义深远。针对所有此类个人数据都只有一个快速存储引擎和存储格式,这将带来更简洁的、跨越所有应用程序的文档格式。为这些内容编写客户端也会变得更加容易,因为无须考虑存储、搜索和备份数据,接口也十分简洁。创建机器本地(能够扩展到云端的)mash-up 也将更加方便。
在会场休息期间,一些与会者讨论了采用该两层方法的架构解决方案。如果你在浏览器中使用 HTML5 和 JavaScript 作为客户端,它能够运行于所有平台之上。服务器端是 CouchDB+JavaScript(还包括所有在此之前的 HTTP 基础设施),以 REST 的方式提供服务。对于复杂的工作,可以使 用 node.js +JavaScript。因此有可能把所有的业务逻辑放入 JavaScript 库中,在你的架构的任意部分复用它们。
几天后将会免费提供大会的视频。
查看英文原文: CouchDB as the Personal Database
评论