隨著RIA技術的不斷成熟,對RIAs與伺服器端技術整合的需求越來越迫切了。來自於We Are Mammoth公司的X2O架構就是針對Flex的這樣一種整合方案。InfoQ有幸採訪了We Are Mammoth的合作者Ka Wai Cheung以瞭解X2O架構如何適應基於Flex的RIA開發。
InfoQ: X2O架構是什麼。
Cheung:X2O是一個針對Adobe Flex應用的基於Web的資料建模平台。它使你可以快速構建資料庫驅動的Flex應用而無需任何伺服器端代碼或設定。
通過使用X2O,你無需建立自己的資料庫、構建預存程序、編寫伺服器端代碼、甚至都不用將你的AS3代碼整合到資料服務中。所有這些事情都由X2O幫你做好了。
相反,你只需建立一個資料模型(如果需要的話還可以對其或多或少進行配置)並產生架構。然後你就可以立刻使用產生好的代碼及工具去構建你的Flex應用了。特別地,你會得到一個安全的CMS以管理資料,一個根據你的資料模型而定製的AS3 SWC檔案及全部文檔。X2O會建立好包含基本的CRUD方法的值對象、關係,同時還會根據你的配置產生定製的載入方法。
由於這一切都是通過Web實現的,因此無需進行安裝。你只需將產生的SWC庫放到你的Flex項目中就行了。你可以修改資料模型並重建這一切,這樣看來X2O就是一個敏捷平台。
InfoQ:為什麼要建立X2O架構,它要解決什麼問題。
Cheung:Flex RIA開發的一個主要問題是它要求開發人員有非常廣的知識面。開發人員需要精通資料庫、某種伺服器端語言(如PHP、Ruby、C#等等)、用戶端與伺服器端的整合(remoting、web services或者是SOAP),當然還要會編寫AS3/MXML並構建於MVC/Cairngorm這樣的架構之上。
X2O通過處理所有繁瑣的伺服器端編程與整合簡化了整個Flex的開發過程,而這些工作過去需要幾個開發人員用幾天甚至幾周的時間才能完成。這使得Flex開發人員可以將全部精力集中在Flex上,同時還能夠完全控制資料的構造方式。
本質上,X2O使得Flex開發人員能夠專註於其領域,就像伺服器端開發人員一樣,不用瞭解其他語言。
此外,X2O是完全基於web的。除了你的Flex開發環境以外,不需要其他的安裝和設定。如果說還有需要解決的問題的話,那可能就是X2O將快速的Flex開發與雲編程結合起來了。
對於簡化使用Flex進行用戶端與伺服器端整合的需求越來越多了。針對Rails的WebORB外掛程式很有趣——但使X2O與眾不同的卻是你無需編寫任何伺服器端代碼,也不用做任何整合。X2O開發人員只需在Flex環境下編寫代碼以推/拉資料,同時還能夠完全控制資料模型。
InfoQ:X2O在伺服器端的架構如何。
Cheung:一個X2O項目的伺服器端部分是絕不會暴露給開發人員的,因為它總是運行在遠程幕後的。簡單地說,X2O會產生一個資料庫、預存程序、一個資料訪問層和web服務層。SWC檔案(開發人員需要下載該檔案並將其放到Flex項目中)直接與web服務層整合。開發人員只需調用SWC檔案中的值對象上的方法就行了,其他的代碼都被產生好了。我們還對用戶端與伺服器端之間的請求和響應進行了加密。
正如我之前所說,還會產生一個安全的CMS及文檔——他們在伺服器上作為單獨的網站運行。
InfoQ:開發X2O都使用了哪些技術,如何使用的。
Cheung:X2O底層構建在.NET上。因此我們現在使用了SQL Server 2005和.NET 2.0。我們還通過開源的Flex架構產生了ASDocs。
InfoQ:X2O典型的使用情境是什麼。
Cheung:X2O可以應用於任何資料庫驅動的Flex項目。過去兩年中我們公司(We Are Mammoth)已經使用X2O開發了很多東西,從只有靜態內容的簡單網站到包含很多商務邏輯的擁有大量資料的互動式應用。
我們還發現X2O對於原型開發來說非常有用。通常,Flex中的原型利用率都很低,因為當你開始開發一個“真正”的版本時,大多數原型都會被丟棄。藉助X2O,你可以在幾分鐘內開發出一個資料模型並立刻將其與真正的、受管理的資料進行整合。這使得我們可以無縫地將原型轉換為真實應用。
InfoQ:它是免費的麼,它的發布計劃如何。
Cheung:X2O目前還處於公測階段,在beta版期間它是免費的。在這段時間內,我們允許開發人員註冊並建立兩個免費的項目以熟悉X2O的工作方式。
我們打算在2009年發布X2O的完全版本,它會有一個免費版(就像beta版一樣)和一個付費版。後者在專案限制式和功能性上會有所不同(比如部署該架構的開發版本和正規版本)。
作者 Moxie Zhang譯者 張龍
轉自:http://www.infoq.com/cn/news/2008/11/x2o-framework-for-flex
查看英文原文: X2O Framework for Flex Server Integration