有幸的,近日訪問到目前正主持自己Ajax框架研發的一位架構師,leebai。
leebai,系統架構師,高級程序員。93年大學畢業后開始從事軟件工作,參與或主持過二十多個軟件產品、軟件項目的研發。2000年轉到Java Web應用開發,作為IBM獨立軟件開發商,長期跟蹤IBM、SUN的Java技術發展,熟悉J2EE系列規范及技術,對Web軟件開發有很多自己的見解。目前在整理“中客戶”Ajax開發框架的代碼和文檔。
你們是什么時候開始研發這個項目的?怎么想到用Ajax?是因為目前的Ajax熱潮嗎?
Ajax熱潮給我們帶來了新的機會,但不是因為熱潮才開始研發的。
事實上,早在2001年初,我們便開始了關于這項技術的開發與應用。只是最初沒有命名,它的名字不是“Ajax”。
最早,從大量的實踐開發經驗中,我們提出了相對于“胖客戶”和“瘦客戶”應用程序的一個 “中客戶”應用程序概念。
“中客戶”應用程序中,客戶機(瀏覽器)向應用服務器發送業務請求(同一般的Web程序),應用服務器返回結果數據(不是可顯示的頁面),客戶機負責解析并顯示結果數據。相對于傳統的“瘦客戶”Web程序,“中客戶”程序的應用服務器不負責用戶界面的構造,這一工作由瀏覽器來做,所以客戶端“胖”了一些。
從上面對于“中客戶”應用程序的定義和分析來看,它的核心與Ajax異曲同工。在有了明確目標后,這個項目就進入的研發階段。但由于種種原因,這個技術并未在業內推廣,慶幸的是已經在該公司的眾多軟件項目中得到普遍應用。
終于,2005下半年掀起的Ajax熱潮讓這個項目重新被肯定。目前,整個團隊致力于這個Ajax的框架,已經到了平臺移植測試階段。
談到在研發中期,沒有得到應有的認可,李先生神色頗為惋惜。是的,由于缺乏某種環境,這似乎成為習慣,什么技術國外有了熱了,我們這邊的才開始認可。
無可否認,在大環境下,要自主創新中國軟件和開發者們還有很長的路要走。
關于這個Ajax框架,請您給詳細介紹一下,它的功能究竟在哪里?
這是我們自主開發的一個完整的Ajax框架,包括前端界面組件和后端應用框架,以及一組工具程序。
前后端框架是基礎,它封裝了B/S開發過程中的大量技術細節,使開發人員能夠更專注于動作業務邏輯的開發(對后臺)和用戶界面流程的開發(對前臺)?;谠摽蚣荛_發時,開發人員可以不考慮數據庫連接資源、事務、異常處理、訪問權限、數據驗證、訪問日志等等常規問題,因此可以寫出很簡潔的代碼。
工具程序的作用是輔助系統開發和維護,包括系統控制臺、數據庫管理器、文件管理器。工具程序本身也是基于框架開發的,因此同時也是Demo程序,在框架自身的接口發生變化時,工具程序也要重構,同時起到驗證框架的作用。其中的數據庫管理器和文件管理器是具備通用功能的程序,即使不采用該框架開發自己的應用,也可以用來管理遠程服務器上的文件和數據庫。
使用這樣的框架,由于只是返回一個數據包,服務器承載量自然下降,那么服務器就真正成為了“服務”。更準確來說,瀏覽器和應用服務器的職責因此分割更為明確、合理,瀏覽器完全負責界面操作,而應用服務器只處理具體業務邏輯,這樣不但系統性能會有很大的提高,同時用戶的體驗度也就更高了。這就是Ajax帶給我們最大的優勢??!
另外,從安全方面講,在該框架下,對服務器的所有請求都是含義明確的“Service”請求,因此服務器對HTTP請求的管理變得簡單,可以更嚴格地、沒有遺漏地對所有請求進行控制,因此服務器的安全性可以很好解決。另外,使用系統工具管理服務器上的數據庫和文件時,只需打開一個基本的Web端口,其他FTP端口、數據庫遠程管理端口都可以關閉,即提高安全性又方便系統遠程維護。
由于已經是應用開發者,那么您對當前Ajax技術的熱潮怎么看?它會是泡沫嗎?
我們大家都已經意識到,Web服務的方向已明確。從現階段來看,Ajax可謂Web2.0的核心之一,是最重要的部分!
Ajax使Web應用的交互有了質的飛躍,用戶體驗度的提高,在Google已經有了最明確的顯示。而目前與Ajax類似的技術在開發上還存在著那種這種問題,所以,只要Ajax的核心不變,那么Ajax技術的應用前景良好。
從我們的經驗來看,目前的Ajax開發必須有一套標準界面組件,比如用于導航的TreeView,用于列表數據的ListView,以及各種Menu,各種復合表單組件等等。在沒有標準界面組件的時候,大家各自為戰,不但開發代價太高,應用也受到局限。Ajax界面組件好比汽車的部件,而DOM、DHTML則是汽車的零件。而現階段的情況就是零件太多,功能太強,而且已經接近標準化;但部件開發都是各顯神通,數量太少,功能有限!號稱Ajax的框架很多,其中已經實現各種通用界面組件的極少,目前大多數Ajax應用開發相當于用螺絲、齒輪、鋼板組裝汽車,所以會得出Ajax開發難度大、成本高的說法。
只有好的Ajax界面組件才能帶來真正的體驗效果,而不是基本的DOM或DHTML。所以一旦W3C制訂出適合的標準,那么組件就可以形成,之后的應用也更簡單,不但能減少代碼的冗雜,還能讓管理更清楚明確。
當初微軟在IE4上實現功能強大的DHTML的時候,已經為今天的Ajax熱潮埋下了伏筆,只是由于國際大公司的市場競爭導致的標準指定的遲緩,以及其他瀏覽器廠商與微軟的實力差距太大,導致DHTML技術未被普遍支持,才使客戶端技術長時間不受重視,現在主流瀏覽器的DOM功能已經足夠標準和強大,是到了回歸技術常軌的時候了。目前Ajax需要的一套標準界面組件,如果標準不能被很快的制定出來, 又某家市場領先的公司實現了功能強大的標準界面組件,那么Ajax實現技術的混亂還需要持續很長的時間,就像當初的DHTML和DOM一樣,那將又是市場的悲哀。
此外,Ajax模式下,服務器端的開發應該是什么樣子,應該用什么樣的框架支持這種“只向瀏覽器返回數據”的服務請求,也很少被開發者重視。其實Ajax很需要一個全新概念的服務器端架構,個人認為這種架構應該基于WebService的基本概念,但要比WebService簡單靈活。有些開發者現在用Struts這類以Controler為中心的架構作為Ajax的后端,其實是一種無奈的選擇。
后記:在這次訪問中,李先生還展示了這個Ajax框架和工具的具體應用,遺憾的是在這里我們不能一一講述。
原文轉自:http://www.anti-gravitydesign.com