Exadel的Flamingo項目是一個快速啟動後台使用Java構建的RIA應用的工具在中間層該工具對Seam和Spring都提供了支持在 展現層Flamingo既支持Flex也支持JavaFX該工具啟動應用程序開發的方式與AppFuse項目類似後者可用於更傳統的Java Web層框架InfoQ與Exadel的Igor Polevoy和Fima Katz進行了交談以了解更多關於Flamingo的信息
Igor和Fima以分享Flamingo的特性細節作為開場白現在的特性可以被劃分為三個邏輯分組
工具
Flamingo提供了快速啟動簡單功能項目的能力把一個項目組裝在一起是一個費時費力的過程這不是什麼秘密了此外在Java界有許多不同的方法 來開發項目我們意識到了這個問題並創造出了Flamingo工具作為解決方案使用Flamingo工具你不但可以快速地創建一個新項目還能在開發 周期過程中隨時產生應用的各個部分
集成類庫
它就像是客戶端和服務器代碼間的粘合劑我們只使用二進制協議因為它們更加有效所有配置(不管有多小)在項目創建時就已經配好了因此開發者只需將注意力集中在手頭的業務問題上
客戶端組件
Fiamingo有一些非可視化組件它們通過提供校驗將多個請求捆綁到一個請求中等等來簡化開發過程Flamingo中比較有意思的特性之一是動態 持久化方法這些方法可以使開發者以直觀的類英語的方式來查詢數據庫而不是使用SQL(實際上SQL是由Flamingo在運行時創建出來的)這一 特性本身就可以極大地推進開發效率
Igor和Fima繼續論述了它是如何工作的
我們用Maven來組織和創建項目我們的Maven啟動向導會詢問關於項目不同方面的幾個問題比 如服務器端技術(Seam/Spring)客戶端技術(Flex/JavaFX)數據庫類型位置證書以及基於前面選項的一些其他問題接著 一個Maven項目就被創建了這一項目包含了一個小項目必須的所有組件如單元測試持久化單元以及工作屏(working screen)這裡使用的是標准Maven命令這樣在幾分鐘之內一個新的全配置項目誕生了
InfoQ詢問了在結合RIA技術時Spring和Seam的對比
Spring/Hibernate和Seam/JPA組合都是使用Flamingo和 Flex/JavaFX實現RIA應用的可行解決方案選擇哪一種後台技術通常取決於給定組織的文化及基礎架構以及開發團隊的偏好而不取決於某些特定特 性通常Seam和Spring是難於比較的即使它們在某些方面是相互重疊的它們被設計用於不同的目標Flamingo試圖保持中立無論選擇了 哪種後台技術Flamingo都盡力給於同等的支持我要說的是如果一個組織在選擇Java企業平台的時候考慮的是豐富的支持他們有選擇Seam的自 由否則Spring/Hibernate組合應當被考慮在內
Igor和Fima評述了誰應該考慮使用Flamingo
目標客戶是企業及企業級應用開發者我們看到了RIA技術在企業級得到了廣泛采用——比如不同風格的 AJAX通常AJAX技術與基於Java的後台系統能夠很好的集成我們開發了一個這樣的企業解決方案——RichFaces它結合了JSF (JavaServer Faces)和AJAX可是雖然沒有探究AJAX的利弊我們還是明確地看到了企業開發組織中對另一套解決方案如Flex的巨大需求 Flamingo使得企業中從事Java工作的人們可以很容易地使用Flex和Java創建一個新的應用
而且在開源方面
我們已經從事開源事業很長時間了已經看到了這一社區及這一方法的巨大力量
InfoQ詢問了關於Flamingo如何支持敏捷開發的更多細節
集成
這是今天我們所擁有的它提供了使用Flex或JavaFX與Seam或Spring相結合的無縫開發過程消除了不使用Flamingo時所需的所有手工編碼其結果是開發過程更加容易快捷及廉價
敏捷RIA平台包括一套高級工具
為了迎接敏捷或快速開發的挑戰像Ruby on Rails和Grails這樣的技術解決方案出現了盡管這些都是非常好的框架但是它們對於RIA應用開發並不擅長而這正是能產生項目及簡單工作屏 (screen)的Flamingo代碼向導的長項Flamingo的下一版將公布更加強大的工具同樣所有由Flamingo產生的服務器和客戶端 組件立馬就可使用減少了項目啟動時間Flamingo第三個敏捷方面的內容是其客戶端組件這些組件有可以用客戶端上極其簡單的編碼模式來創建訪問數 據庫的運行時請求這一能力本身節約了大量時間如果你將Flamingo的所有這些方面結合在一起它絕對會為組織提供一個稱心如意的敏捷開發平台
隨取隨用RIA開發平台
這包括提供一套預構建的組件(可視的和非可視的)以及一套預構建的應用程序組件(比方說用於數據訪問/導航的dVersion)
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26283.html