Ruby on Rails(ROR)是一個基于Ruby的用于快速Web應(yīng)用開發(fā)的開源框架。Rails和RIA社區(qū)目前都在積極地尋求兩者的集成方案,而Flex框架Ruboss就是這樣一個成果。InfoQ采訪了Ruboss的聯(lián)合創(chuàng)始人及CEO Peter Armstrong以更深入地了解該框架。
根據(jù)Armstrong所述,Ruboss框架是一種嘗試以簡化Flex應(yīng)用和RESTful服務(wù)器端框架的集成?,F(xiàn)在這些框架包括RoR和 Merb。Ruboss還提供了一個RESTful 接口以使其可以與Adobe AIR的嵌入式SQLite數(shù)據(jù)庫進行通信。 Ruboss框架之于Rails和Merb的關(guān)系就好象Adobe LiveCycle Data Services ES之于J2EE應(yīng)用的關(guān)系。
當(dāng)被問到為何不利用現(xiàn)有的一些框架,如Cairngorm或PureMVC時,Armstrong解釋到:
他們太簡單了,無法滿足我們的需要。Ruboss框架的架構(gòu)與Cairngorm、Mate及PureMVC都不同。它是一個數(shù)據(jù)集成框架,專注于Flex與RESTful框架的集成。把Ruboss看作是“Flex + Rails”是很不錯,但更加貼切的描述應(yīng)該是“Flex + 簡單的RESTful CRUD”,其中Rails只是最流行且目前集成的最好的一個框架而已。
我們所需要的東西應(yīng)能無縫地集成Flex和RoR并且會將Rails開發(fā)上的一些設(shè)計原則和生產(chǎn)力帶到Flex中。我們覺得Rails是最具有生產(chǎn)力的服務(wù)器端框架之一,而Flex是最好的客戶端RIA技術(shù)之一。因此,自然而然地我們想將這二者結(jié)合起來。
因此,我們真的沒有與Cairngorm、PureMVC或Mate進行競爭。例如,雖然你所編寫的Flex代碼會以類似于Cairngorm的方式(它通過命令模式對使用進行了簡化)去使用Ruboss,但你還可以用比Cairngorm更簡潔的方式去使用Ruboss。
Armstrong繼續(xù)談到Ruboss一些獨特的特性:
首先,我們是唯一一個將RESTful CRUD作為通用接口的Flex框架,這一點與Rails、Merb及AIR中的SQLite是不同的。這種簡化、優(yōu)雅的設(shè)計使得大家可以對Ruboss 框架進行擴展以支持目前我們尚未提供的一些服務(wù)。例如,Ruboss的使用者可以將其連接到CouchDB上。因此,Ruboss就可以對服務(wù)進行擴展以達到與Flex的完美集成。
其次,你使用Ruboss編寫的代碼不僅對傳輸方式來說是抽象的,而且還非常簡單和優(yōu)雅。第三,你可以快速上手并運行起來。通過使用Ruboss,你可以在5分鐘內(nèi)創(chuàng)建一個完全的Flex+Rails應(yīng)用。沒有任何Flex框架能做到這一點,也沒有任何Flex框架可以讓你在這么短的時間內(nèi)就完成從數(shù)據(jù)模型的編寫到應(yīng)用運行的整個過程。想知道怎么做嗎,看看Ruboss“pomodo”指南吧。
最后,我們認識到?jīng)]有任何一個框架能滿足所有的數(shù)據(jù)集成需求或是解決所有應(yīng)用的架構(gòu)問題。因此,我們所做的就是盡力解決那80%的常見問題。
Armstrong又談到了Ruboss框架的路線圖:
對于該框架來說,我們打算在本地和遠程服務(wù)提供商之間增加數(shù)據(jù)同步支持,因為目前這是應(yīng)用開發(fā)者必須要自己解決的問題。我們還打算將對Merb+DataMapper的支持提升到Merb+Active Record上來。這之后,我們會考慮擴展Ruboss以支持更多的服務(wù),如SimpleDB及Google AppEngine。
Peter Armstrong還是Flexible Rails一書的作者及Hello! Flex 4的主要編寫者。