關於是否AJAX會取代桌面應用的討論漸漸熱烈起來,針鋒相對的兩大陣營也開始形成。開門見山,在這篇文章裡要展現的我的信念和論點是:AJAX不大可能會取代桌面應用,但是它會催生一個新型的軟件應用模式;這種新型的軟件應用模式極有可能是開發工具、協作工具和商業應用。一些應用可能根本不會在桌面系統上看到——雖然很多的應用不大可能很快就退出歷史的舞台、它們需要隨時滿足桌面系統的要求。我認為軟件的下一場革命不會像出埃及記那樣的完全拋棄桌面,而是一場中等的各種模式的重新定位和組合,通過適應外界的意圖來達到軟件工業的繁榮。
像其他的桌面應用一樣,基於AJAX的WEB應用會跟隨你左右。我們中的大多數人最起碼有一個朋友,他周游世界,給你留下HOTMAIL或者YAHOO MAIL的賬號以供你聯系。實際上,這些基於浏覽器的EMAIL界面有助於我們迅速的采用EMAIL作為個人應用。這些天來,使用傳統的HMTL界面的商業級EMAIL應用不再出現了。Outlook Web Access (OWA)(雖然有一個精彩的AJAX界面)由於一些原因沒有真正流行起來,但是GMAIL和Zimbra正在浮出水面,而且Zimbra准備取代Outlook和Exchange兩者,它發布完全基於浏覽器的UI.而對於微軟來說,他們主動地發布了一個全新的基於AAJAX的EAMIL客戶端,如果這個客戶端加入了OWA的一些功能,那麼它將比HOTMAIL更好用。如果你看看CRM的世界,你會發現看起來WEB應用已經取代了桌面應用,Salesforce.com是一個明顯的例子,而基於WEB浏覽器的MS CRM已經發布了好幾年。
那些地方基於AJAX的WEB應用會取代桌面應用?
在那些實時和共享信息是首要條件的應用中,基於AJAX的WEB應用是一個合理的選擇,這些應用包括:後勤、會計和CRM系統。在一個共享文件系統中以路由EXCEL表單作為一個分布式定價和客戶管理的方法將成為歷史。在現代商業中,及時的商務數據是一個關鍵的組成部分,而WEB應用是天然的以數據為中心的系統。AJAX恰恰能做到這樣一個應用系統的UI,這個UI不會導致用戶在點擊鼠標以後因為漫長的等待頁面刷新而引起厭倦情緒。
依賴WEB服務和全新的數據源如整合多種巨型數據源的服務映射的應用仍然是有用的。同樣,許多基於面向服務的架構(SOA)的企業系統將極大的從分布式和可用性上受益於AJAX.基於浏覽器的分布式的富客戶端能降低每個終端的許可費用,例如企業報告系統。不久前,一個來自一個主要的SOA的替工商的CTO向我咨詢一個基於AJAX的UI該怎樣定價的問題,簡單的回答是它不可能和以前的C/S模式的厚客戶端一樣定價。一些軟件開發商找到了新的軟件許可的方法,這種方法沒有降低客戶對富客戶端的、WEB路由的和他們滿意的軟件的要求,這種現實將導致更多的軟件向AJAX轉移。
很明顯,由於應用系統仍然通過WEB和WEB浏覽器發布,那些所有的按需軟件、軟件服務和服務提供商的優點依然存在。拋棄那些如上所述的基於浏覽器的應用的優點是愚蠢的浪費時間的行為;然而,認識到AJAX使基於浏覽器的WEB應用有高得多的可用性是很重要的。這種可用性方面的優點可以根據在操作更快的用戶接口時的省時而感覺得到。Alexei White在他的文章Measuring the Benefits of Ajax中探討了這方面的主題。由於這些原因,AJAX在那些需要用戶重復性的操作大量數據的任務的在線系統中會成為一個贏家,想想那些呼叫中心和金融機構吧。以下場景:你有大量的重復任務、應用和大量的信息處理工人,是一個應用基於AJAX的WEB應用的一個成熟時機。
那些隨著時間的改變需要修改和改變的應用也可以從AJAX技術中獲益。用戶往往沒有往新的應用上遷移的意願。AJAX的發展會增加那些基於HTML接口或者擁有SOA架構的應用。對於開發團隊來說,隨著時間的增加而增加可用性是非常有誘惑力的。
另一個AJAX會贏的地方是這樣的一些商業系統,在那裡,人們需要大量的、遠遠超過WEB浏覽器的地理的發布和支持,並且網絡連接是非常昂費的。
哪些地方桌面系統依然是王者?
看看哪些地方桌面系統不會被富WEB應用取代是很重要的,即使是最狂熱的AJAX布道者也會告訴你,應用這種技術只能在一定的范圍。讓我們看看AJAX不能做得非常好的一些事情:。浏覽器因素:增加按鈕、工具欄、書簽、圖標,改變浏覽器行為。。本地文件訪問:在用戶的硬件驅動上讀寫文件。。語音播放:音樂和聲音。。富圖形:提供附圖形和它們的動態變化。(這個問題由於一些浏覽器引入了SVG而逐漸改變,但仍然無法與桌面系統抗衡)。鍵盤快捷鍵:提供一個大范圍的鍵盤快捷鍵並且避免他們與浏覽器的快捷鍵相抵觸。。硬件的訪問:從諸如麥克風、掃描儀和游戲手柄之類的儀器的硬件輸入;輸出到諸如打印機和其他便攜式設備等硬件。。可擴展的通訊:從一個客戶機到遠處僅僅一個服務器之間的通訊,使用的協議不僅僅是簡單的、古老的HTTP.。與操作系統的交互:捕捉如關閉、開始這樣的事件;改變參數;彈出警告;讀取硬件信息。
當然,AJAX不支持視頻或者音頻,所以視頻會議、VOIP和富媒體應用被排除在外。但是,增加FLASH到UI技術的話,富媒體就能夠被集成到AJAX接口上去。同樣,所有的需要和處理器和存儲器交互的應用對於AJAX來說都是不適合使用的。對我們來說需要一段長時間才能看到在WEB浏覽器上有這樣的應用:視頻編輯、圖像處理和視頻游戲。我不認為我們將看到人們玩使用JAVASCRIPT設計的Quake類型的第一人射擊游戲,這毫無意思。
哪裡我們將看到桌面系統從WEB系統有優勢?
桌面應用世界將從WEB服務和SOA架構中獲益匪淺(事實上已經獲益了)我們將看到更多的這兩個世界的集成。我們已經看到桌面應用被網絡如iTunes強烈的向富內容推進。桌面應用將要集成在線的、基於AJAX的服務,如Live.com和MS Office.根據新應用(基於WEB)的采用比率,AJAX成為優勝者。沒有其他技術遇到的障礙會比你采用浏覽器和網絡連接遇到的小。而且許多AJAX應用會獲得網絡的益處遠遠比經過優化的客戶端系統多。
哪裡AJAX會產生一個新的服務機會?
看看GOOGLE地圖吧,沒有用戶能在他們的本地桌面系統裡保存所有的映射、圖像和商業/地址清單數據。更進一步的概念是mashups,這個網站或者網絡應用無縫的將多個來源的內容組合成一個集成的體驗。如果每一次用戶想合並不同的數據包的時候,他們都不得不安裝一個插件或別的什麼,那麼這個網站將無法工作。即使一個客戶端應用能得到數據,它也不能保持數據的更新象一個以網絡為中心應用那麼容易。