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的主要編寫者。