将 CouchDB 作为个人数据库

  • Michael Hunger
  • 丁雪丰

2010 年 6 月 11 日

话题:REST数据库移动架构AndroidDevOps语言 & 开发AI

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

REST数据库移动架构AndroidDevOps语言 & 开发AI