Ruboss——面向 Rails 的 Flex 框架

  • Moxie Zhang
  • 张龙

2008 年 12 月 7 日

话题:JavaRubyRuby on Rails语言 & 开发

Ruby on Rails(ROR)是一个基于 Ruby 的用于快速 Web 应用开发的开源框架。Rails 和 RIA 社区目前都在积极地寻求两者的集成方案,而 Flex 框架Ruboss就是这样一个成果。InfoQ 采访了 Ruboss 的联合创始人及 CEO Peter Armstrong 以更深入地了解该框架。

根据 Armstrong 所述,Ruboss 框架是一种尝试以简化 Flex 应用和 RESTful 服务器端框架的集成。现在这些框架包括 RoR 和 Merb。Ruboss 还提供了一个 RESTful 接口以使其可以与 Adobe AIR 的嵌入式 SQLite 数据库进行通信。 Ruboss 框架之于 Rails 和 Merb 的关系就好象 Adobe LiveCycle Data Services ES 之于 J2EE 应用的关系。

当被问到为何不利用现有的一些框架,如 Cairngorm 或 PureMVC 时,Armstrong 解释到:

他们太简单了,无法满足我们的需要。Ruboss 框架的架构与 Cairngorm、Mate 及 PureMVC 都不同。它是一个数据集成框架,专注于 Flex 与 RESTful 框架的集成。把 Ruboss 看作是“Flex + Rails”是很不错,但更加贴切的描述应该是“Flex + 简单的 RESTful CRUD”,其中 Rails 只是最流行且目前集成的最好的一个框架而已。

我们所需要的东西应能无缝地集成 Flex 和 RoR 并且会将 Rails 开发上的一些设计原则和生产力带到 Flex 中。我们觉得 Rails 是最具有生产力的服务器端框架之一,而 Flex 是最好的客户端 RIA 技术之一。因此,自然而然地我们想将这二者结合起来。

因此,我们真的没有与 Cairngorm、PureMVC 或 Mate 进行竞争。例如,虽然你所编写的 Flex 代码会以类似于 Cairngorm 的方式(它通过命令模式对使用进行了简化)去使用 Ruboss,但你还可以用比 Cairngorm 更简洁的方式去使用 Ruboss。

Armstrong 继续谈到 Ruboss 一些独特的特性:

首先,我们是唯一一个将 RESTful CRUD 作为通用接口的 Flex 框架,这一点与 Rails、Merb 及 AIR 中的 SQLite 是不同的。这种简化、优雅的设计使得大家可以对 Ruboss 框架进行扩展以支持目前我们尚未提供的一些服务。例如,Ruboss 的使用者可以将其连接到 CouchDB 上。因此,Ruboss 就可以对服务进行扩展以达到与 Flex 的完美集成。

其次,你使用 Ruboss 编写的代码不仅对传输方式来说是抽象的,而且还非常简单和优雅。第三,你可以快速上手并运行起来。通过使用 Ruboss,你可以在 5 分钟内创建一个完全的 Flex+Rails 应用。没有任何 Flex 框架能做到这一点,也没有任何 Flex 框架可以让你在这么短的时间内就完成从数据模型的编写到应用运行的整个过程。想知道怎么做吗,看看Ruboss“pomodo”指南吧。

最后,我们认识到没有任何一个框架能满足所有的数据集成需求或是解决所有应用的架构问题。因此,我们所做的就是尽力解决那 80% 的常见问题。

Armstrong 又谈到了 Ruboss 框架的路线图:

对于该框架来说,我们打算在本地和远程服务提供商之间增加数据同步支持,因为目前这是应用开发者必须要自己解决的问题。我们还打算将对 Merb+DataMapper 的支持提升到 Merb+Active Record 上来。这之后,我们会考虑扩展 Ruboss 以支持更多的服务,如 SimpleDB 及 Google AppEngine。

Peter Armstrong 还是Flexible Rails一书的作者及Hello! Flex 4的主要编写者。

查看英文原文:Ruboss – A Flex Framework on Rails

JavaRubyRuby on Rails语言 & 开发