Zoho 用 Google Gears 为 Ajax 应用提供离线支持

  • Moxie Zhang
  • 郭晓刚

2007 年 12 月 12 日

话题:JavaWeb框架语言 & 开发架构

Zoho是一家在线办公及生产力软件公司,他们最近给基于 AJAX 的 RIA 旗舰产品 Zoho Writer 加上了离线能力。InfoQ 采访了 Zoho 的 Raju Vegesna,以了解增加离线功能的动机,技术平台的选择理由,得到的经验,以及未来无论在线还是离线的 Zoho 产品线。

Raju 认为,对 Zoho 来说,向离线发展的原因很简单:

我们估计有一成的在线用户希望在离线的时候也能继续工作。我们希望支持这一成 Web 用户。

接着,Raju 介绍了对 Zoho Writer 进行离线扩展的一些背景信息:

在决定将 Zoho Writer 向离线发展之后,我们仔细研究了可行的技术选择和平台,包括 Adobe AIR、Microsoft Silverlight,甚至包括还没发布的 Firefox 3,它也带有离线能力。不过,作为基于 AJAX 的 RIA Web 应用提供商,我们认为一个真正的 Web 应用应该从本质上就支持 HTML、CSS 这些 Web 标准。我们当初选择 JavaScript 的最大原因就是它是天生属于 Web 的——我的意思是 JavaScript 的核心对象模型就是 HTML/CSS 文档对象模型。Flash 虽然有优势,但它是属于浏览器之外的一个空间。从这个意义上说,Flash 和客户端的 Java 没有太大不同。实际上,可以说要是客户端 Java 做对了,就是 Flash 这个样子。而且开源库对我们来说很重要。JavaScript 库的深度和多样性也越来越好。

因此我们决定开发自己的一套东西,利用像 SQLLite 这样的技术。刚好这个时候 Google Gears 发布了。它是开源的,而且也是基于 JavaScript 的。我们也特别喜欢它的 BSD 许可。于是我们想与其开发新的一套东西,不如就用 Google Gears,同时也可以给它做贡献。Google Gears 就这样成了我们的离线平台,我们对这个决定很满意。

认识到 RIA 技术正在打破 Web 应用在线 / 离线的屏障,InfoQ 向 Vegesna 询问什么是增加离线支持的最佳途径:

阶段性的、增量的方式对我们的成功很关键。我们没有一下就跳到离线。在第一阶段,当离线的时候 Zoho Writer 就变成只读的。然后我们进行第二阶段,允许编辑离线文档,也就是我们最近发布的。Zoho 产品是基于服务器的 Web 应用。很多功能都依靠服务器端的处理。为了不走上歪路,小心地设计,逐步增加离线特性是很重要的。我们不会用别的方式来做。

Zoho 也是 SaaS 的一员,除了 Zoho Writer 这样的终端产品,它也是通过 Zoho APIs 提供了应用开发平台。对于向离线发展会给使用 Zoho APIs 开发应用程序带来什么影响,Vegesna 回答说:

目前,离线特性在 API 中是屏蔽掉的。也就是说所有第三方应用都只是在线的。即便在 Zoho Writer 中,也有一些特性是不能离线使用的,比如导出成 PDF 文件。作为一个 Web 应用,我们很重视用户体验。我们不希望为了让所有特性都能离线使用,而把产品搞得太复杂。

谈到将来:

我们会一直用 Google Gears。我们有两个主要的产品类别,一个是以文件为中心的应用,另一个是以数据库为中心的应用。当完成 Zoho Writer 之后,我们的下一步是给这一类的其他产品也增加离线扩展。以数据库为中心的产品,比如 CRM 产品,也会经历同样的过程。

最后,Vegesna 谈了对他们的服务端环境的看法:

在服务端我们都是用开源软件。我们用 MySQL 管理数据。服务端处理程序都是用 Java 编写的。应用服务器是 Apache Tomcat 的一个高度定制过的版本。我们在大约 400 台服务器上自己运营我们的应用程序,它们是 64 位的 Linux。

Zoho,作为一家办公和生产力系列工具的提供商,他们将用户体验和平台开发都向前推进了一步。InfoQ 将会继续关注他们的平台的新发展。

查看英文原文:Zoho Leverages Google Gears to Provide Offline Support for Ajax Applications
JavaWeb框架语言 & 开发架构