将CouchDB作为个人数据库

在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

你可能感兴趣的:(将CouchDB作为个人数据库)