一、 引言
在AJAX是否能夠取代桌面應用程序的問題上,存在很多爭論。如今,這兩種陣營正在逐步形成。在本文中,我的看法是:AJAX不可能取代桌面應用程序;但是它將導致一種新型軟件應用程序的出現。大多數AJAX程序應該會是生產工具、協作和商業應用程序。許多桌面應用程序將不再會出現;當然,大多數應用程序也不可能很快就會離開強有力的和舒適的桌面環境。我想,軟件發展的下一個階段應該是,桌面應用不大可能全部消失;相比之下,而更有可能是適度的重新組合,其結果是各種應用程序分別在最適合它們的領域繁榮壯大。
面向AJAX的web應用程序緊緊跟隨在你的身邊,就象所有的web應用軟件一樣。我們中的大多數至少有一位在世界其它地方的朋友並且經由電子郵件,如hotmail或yahoo電子郵件,帳戶與之保持聯系。事實上,這些基於浏覽器的電子郵件接口大大幫助驅動了電子郵件為個人所采納使用。如今,針對商業類型電子郵件使用的更傳統型的html接口已經逐漸地不再具有實用價值。因某些原因,Outlook Web Access(OWA)(盡管它有一個偉大的AJAX接口)不再象以前那麼流行,但是Gmail和Zimbra卻正在異軍突起,而且Zimbra力圖全面取代Outlook和Exchange-全面地通過浏覽器來實現UI表達。微軟值得被贊揚的是,是Live.com的出現正在產生一種新型的AJAX化的電子郵件客戶端-如果它的樣子類似於OWA的話,它將比Hotmail更為易用和好用。如果你觀察一下CRM世界,你就會注意到,似乎Web應用軟件已經接管其主要功能。例如,Salesforce.com就是一個明顯的例子,而MS CRM就是幾年來通過一個Web浏覽器表達實現的。
二、 基於AJAX的Web應用程序會在哪些方面取代桌面程序?
基於AJAX的Web應用程序是某些應用程序的合乎邏輯的自然選擇-在這樣的程序中,最新的和共享的信息至關重要,例如後勤、財務和CRM系統等方面的程序。常規的Excel工作簿,作為一種分布價格和顧客列表的方法,將會自然地走到歷史的角落裡。及時的商業數據是現代商業軟件中的一個關鍵組成部分,而Web應用程序本來就是以數據為中心的。AJAX僅是把一個UI放到了應用程序之上,而這一點在用戶等待鼠標點擊之間的頁面刷新時不會給他們帶來過多的麻煩。
許多應用程序依賴於Web服務和例如映射服務這樣的迥異數據源來結合多重的龐大的數據源以保持相關連和有用性。另外,許多基於面向服務的架構(SOA)的企業系統成為具有分布性和可用性優點的AJAX應用軟件的完美候選。通過浏覽器發行的豐富的客戶端將幫助降低單套軟件的許可花費,例如在企業報告應用軟件方面。最近一個大型SOA軟件供應商的CTO問我,怎樣在基於AJAX的UI客戶端強制實現單套軟件許可證協議。而這一問題的簡短答案是,它不可能是與以前大部分客戶端程序走相同的路子。這一事實將導致開發軟件許可新途徑的軟件供應商更快地向AJAX遷移,但是不會減少消費者對於其喜愛的豐富的客戶端軟件的需要。
顯然,軟件主要的好處主要還是看市場需求而定。很多軟件,作為一種服務,應用程序服務供應商仍舊在應用之,因為該應用程序仍在通過Web和Web浏覽器傳送中。浪費時間去細究基於浏覽器的應用軟件的好處是愚蠢的;然而,特別要注意的是,AJAX使得基於浏覽器的應用軟件相當易於使用。這些可用性好處可以從在與更快的用戶接口進行交互時節約大量時間這一角度加以衡量。Alexei White已經在他的《Measuring the Benefits of Ajax》一文中詳細地探討了這個問題。由於這些原因,AJAX在在線應用軟件方面將是一個大的獲勝者-這種場所下,用戶總是在做大量的重復的任務-例如呼叫中心和金融機構。在你有大量的相同任務的場所,應用軟件和信息工人往往能夠熟練地使用AJAX Web應用軟件。
一直以來不斷發展和變化的應用程序也會從中受益。用戶遷移到新型應用軟件將毫無副作用影響。另外,AJAX技術有助於提升已經基於HTML接口或有一個SOA架構的應用程序的質量。這對於一直在尋求提升可用性的開發團隊將是極具吸引力的。
另一個AJAX將會占上風的領域是在商業-這裡用戶分布在不同的地理區域並且支持多個Web浏覽器並且其互聯網連接是很昂貴的。
三、 桌面程序會在什麼地方繼續保持霸主地位?
特別值得開發者們注意的是,桌面應用在哪些方面不會被豐富的Web應用軟件所取代,因為即使是最大的AJAX福音傳道者也會告訴你,我們利用這種技術目前所僅能夠達到的程度。讓我們分析一下AJAX無法良好實現的幾個方面:
☆ 浏覽器定制:添加按鈕、工具欄、書簽、圖標;改變浏覽器行為。
☆ 本地文件存取:讀寫用戶硬盤上的文件。
☆ 聲音播放:音樂和聲音效果。
☆ 豐富的圖形:提供豐富的動態變化的圖形。(隨著SVG慢慢地引入到一些浏覽器,這種應用正在逐漸發展中,但是它目前還不匹配桌面圖形。)
☆ 鍵盤快捷鍵:提供全范圍的鍵盤快捷鍵從而避免與浏覽器自己的鍵盤快捷鍵發生沖突。
☆ 硬件存取:從如麥克風,webcams,和gamepads等進行輸入設備;輸出到設備象打印機和便攜式小器具。
☆ 擴大的通訊:從客戶端機器到位置超出基本服務器以外位置的通訊,以及用除了普通的舊式HTTP協議以外的其它協議。
☆ 操作系統交互:緩沖事件;改變配置;彈出警告;讀取硬件信息。
當然,AJAX還不支持視頻或音頻;因此,視頻會議、VOIP和豐富的媒體應用軟件還無法加入到其中。但是隨著Flash加入到UI開發技術中,豐富的媒體將會被集成進一個AJAX接口。另外,在其它應用程序擔心處理器及需要消耗大量內存的程序中,AJAX技術還不適合。我們還會看到,象視頻編輯、相片操作和視頻游戲等一類應用程序相當恰當地出現在Web浏覽器上還需要一段時間。目前,我還從未看到有人在玩一種通過JavaScript技術實現的Quake風格的第一人稱射擊游戲。其實,其意義也並不大。
四、 桌面軟件會在什麼方面利用web技術的優點?
桌面應用世界將極大地受益(並且已經受益)於Web服務和SOA的使用,並且我們將繼續看到這兩個世界的更多的集成。如今,我們已經看到桌面應用軟件在使用著互聯網所提供的豐富的內容,例如iTunes和與基於AJAX的服務在線集成的桌面應用