在J2EE技術體系中,往往被灌輸了太多容器的概念,什麼EJB容器、Servlet容器等等,而開發過程也在開發、配置、部署之間迭代與反復;如此一來常會出現令人尴尬的狀況:往往花幾分鐘時間去改一個Bug、卻要再花雙倍或者更多時間去部署和測試,開發工程師們不得不中斷思路,看著服務器如蝸牛般啟動,並在開發工具和部署工具之間來回切換。
事實上,配置也好、部署也罷,都是開發過程中一個必不可少的階段。如何通過集成式的開發環境將這些開發階段有機集成在一起,是擺在我們面前的迫切需要。在本文中,我將闡述一種“輕量級”開發的理念,以及如何實現該理念的Apusic Platform平台,它包括應用服務器和Studio開發平台。
技術模型簡單化
J2EE發展到今天,一種普遍的看法是:開源社區的蓬勃發展給J2EE官方標准帶來很大的沖擊,甚至於部分開發者對Java EE 5.0的權威性都產生了質疑,並對Java EE 5.0 是否能夠占據主流開發平台地位產生了顧慮。
事實上,我認為,開源社區與J2EE之間更多的是一種相輔相承的關系。開源代表的經常是理想主義,而商業公司代表的經常是現實主義,兩者之間有相互競爭的地方,但從長遠來看,更多的是一種是相互補充、相互促進的過程。
在Apusic Platform的實現上,一方面對各種開源技術予以非常大的支持,包括Struts、Hibernate、Spring等;不僅提供一系列的示例樣板,以演示如何在Apusic應用服務器上使用這些開源組件,甚至還提供這些開源框架的商業支持,以更好地推動這些開源技術在國內的推廣與使用。
Java EE中最引人注目的恐怕是EJB 3和JSF了,EJB 3克服了EJB 2.x版本的很多不足與缺陷,使EJB技術真正成為企業應用的主要計算模型,為EJB的全面普及奠定了理論上的基礎。而JSF則是Java EE試圖解決Web應用開發的主要解決方案。我們即將推出的Apusic JSF則融合了JSF與AJax技術,克服了常規JSF實現的弊端,使JSF成為一種輕量級的Web開發模型。目前,我們正試圖將Apusic JSF以開源的形式反饋給國內的廣大web開發人員,並期望圍繞Apusic JSF形成一個豐富的Web UI組件市場,從而徹底解決目前Web應用開發的主要不足。
開發過程一體化
以一個簡單的Web應用開發為例,在Apusic Studio中,可以通過JSP編輯器提供的語法加亮、代碼輔助、斷點調試等功能,非常方便的輔助開發人員快速完成web頁面的開發;還可以通過可視化的配置界面,完成繁瑣的web/ejb/ear等配置信息。
當要運行某一個頁面時,只需點擊一下右鍵“quot;在Apusic應用服務器上調試”,Apusic Studio就會自動幫助我們做這樣一系列動作:首先判斷應用服務器是否已經運行(倘若沒有運行就會自動新建一個啟動配置項,設置好類路徑啟動應用服務器),然後判斷應用是否已經部署(倘若沒有部署就會自動部署應用),最後自動打開浏覽器,運行指定的JSP頁面,甚至於Apusic Studio還能夠感應到應用發生的變化,在應用需要重新部署時自動部署。
業務組件實用化
回顧J2EE技術體系,甚至於諸多流行的開源框架,我們不難看出,它們所解決的問題無一例外的都集中在軟件模型本身:譬如OR Mapping、AOP、MVC等。而現實中的應用系統的開發者,希望能通過某種業務開始平台或者某些通用的業務組件,屏蔽這些底層的實現技術,從而使他們聚焦於業務本身。
但是,由於業務組件缺乏相應的規范與標准,導致它們的實用性與可用性不高。這一方面來源自業務系統本身的需求復雜度與可變性,另外一方面則缺少一個類似於JCP的組織,去制定並發展這些業務組件的規范與標准。
Apusic Platform試圖提供另外一種選擇:通過一種可插拔可替換的機制,打造實用程度較高的業務組件,譬如組織架構、權限模型、報表打印等。這些業務組件,融合了金蝶公司及其合作伙伴多年的應用開發智慧結晶,能夠給業務系統開發人員帶來實實在在的方便。
輕量級的兩層含義
何謂輕量級?在我看來,輕量級包含兩層含義。一是運行期的輕量級:在完成相同的運算任務下消耗最少的系統資源;二是開發期的輕量級,指開發過程的敏捷以及快速響應能力。
運行期的輕量級可以說在以微內核體系為核心、代碼量僅為同類軟件20%的Apusic應用服務器上得到了極佳驗證:無論是啟動速度,還是運行期所消耗的系統資源,Apusic都大幅度領先,也許業界唯一能夠與之比較的只有Tomcat了。但Tomcat僅僅是一個Web容器,而Apusic應用服務器則是全面實現J2EE 1.4規范的企業級產品(今年5月份已經全面實現Java EE 5.0規范),至於而運行期的健壯性與穩定性,Apusic在各項指標上與國外同類軟件不相上下。
開發期的輕量級,我們可以通過與Apusic應用服務器緊密集成的開發工具Apusic Studio獲得開發過程的敏捷性。無論是編碼、配置、部署與測試,還是後期的監控與性能調優,我們都可以通過Apusic Studio獲得一體化的支持。
讓J2EE開發更輕松
開發過程一體化,使開發人員無需再考慮部署、配置等瑣碎過程,也不需中斷思路忍受服務器反復啟動的煎熬;技術模型簡單化,通過優秀簡單的技術解決現實中復雜的問題;業務組件實用化,能夠擺脫某些具體實現細節,聚焦於業務邏輯本身。
以上的理念,我稱之為類似武俠小說中高手練功到一定層次的“三化蓋頂”,它很大程度上解放了J2EE,讓我們擁有開發過程中的敏捷與愉悅。
敏捷快速,讓J2EE開發更輕松,為什麼不呢?