動態HTML技術已經出現了多年。最近,Google的最新Web應用程序GMail、Google Suggests和Google Maps,在前端頁面中重新引入了基於標准的DHTML開發模型。Google證明了,DHTML開發模型能夠讓開發人員創建具有可視化吸引力和高度交互式的Rich Internet Application(豐富網絡應用程序,RIA)。
Adaptive Path公司的Jesse James Garrett為這個基於標准的RIA開發模型創造了術語Ajax (Asynchronous JavaScript + XML)。與傳統的基於頁面的Web應用程序模型相比,Ajax有3點不同之處:
有一個客戶端引擎擔任用戶界面(UI)和服務器之間的中介。
用戶行為由客戶端引擎處理,而不是生成發往服務器的頁面請求。
XML數據在客戶端引擎和服務器之間傳輸。
換言之,Ajax解決方案包括一個客戶端引擎,它用於呈現用戶界面,並使用XML格式與服務器通信。這個引擎由很多JavaScript函數組成,位於Web浏覽器中,它不需要插件,也不需要用戶安裝。
基於Ajax的RIA正在迅速成為Web應用程序前端的基准,因為它可以同時提供二者的優點:豐富性和可達性。Ajax應用程序和桌面應用程序一樣豐富,響應高度靈敏,並且可以在一個頁面上提供所有數據,無需刷新頁面。它們還擁有基於標准的浏覽器應用程序的可達性特點,這類應用程序可以在不具備浏覽器插件或客戶端applet的情況下進行部署。
Backbase所提供的Ajax軟件具有以下特點:基於標准、功能全面且易於使用。Backbase Presentation Client (BPC)基於Ajax技術,它使用稱為Backbase XML (BXML)的附加標簽擴展了DHTML。Backbase XML Server Edition for J2EE (BXS)包含了一些服務器端的組件,利用這些組件,J2EE開發人員可以快速開發J2EE應用程序的Ajax前端。
在本文中,我使用Backbase為Java Pet Store開發了一個基於Ajax的前端。該案例分析說明了如何使用Backbase技術作為J2EE應用程序的Ajax表示層。您可以查看文中所描述的應用程序的在線演示,網址是http://www.backbase.com/xmlserver。
Backbase Ajax表示層 Web開發人員應該能夠輕松創建具有以下特點的Rich Internet Application (RIA):完全基於HTML標准(W3C),不需要最終用戶安裝插件,速度超快,能夠在所有浏覽器上進行操作,並與J2EE運行時和開發環境完全集成。RIA利用客戶端(Web浏覽器)資源創建和管理用戶界面,從而為最終用戶提供一個響應靈敏而且具有應用程序風格的用戶界面。
這種方法最近被稱為Ajax。Ajax這個術語的靈感來源於Gmail、Google Maps和Google Suggests這類應用程序,它把現有的浏覽器技術提高到了一個新的水平上。RIA從根本上改進了在線應用程序的可用性和有效性。Ajax RIA只使用標准的浏覽器技術(如JavaScript、XHTML和XMLHttpRequest對象)就做到了這一點。通過使用XMLHttpRequest,在將數據異步加載到界面中時就無需刷新頁面。
Backbase在J2EE架構中提供一個Ajax表示層,它結合了目前的J2EE服務器和先進的富客戶端技術的優點。Backbase表示層控制了富用戶界面的每個方面:與最終用戶的交互模型,與後端系統的集成,以及整個客戶端-服務器通信。Backbase直接提供了用於聚合來自任意位置的XML的下一個范型,將數據綁定到先進的富用戶界面控件,並在一個統一的富用戶界面中交付組合應用程序。
Backbase表示層由一個客戶機和一個服務器組成。Backbase Presentation Client (BPC)是一個基於Ajax的GUI引擎,它允許開發人員以聲明性的方式快速構建RIA。Backbase XML(BXML)是對XHTML的擴展。它為開發人員提供了交付富前端功能的附加標簽(B tag)。Backbase XML Server (BXS)提供一種XML流水線架構,利用它可以從Web服務、數據庫或Java對象獲取數據,可以聚合和轉換這些數據,並將其綁定到BPC中的UI元素。BPC和BXS相結合,可以在Web浏覽器和應用服務器之間搭建一座功能強大的橋梁,並提供一個分布在客戶端和服務器上的完整的富Internet表示層。
圖1說明了在邏輯和物理應用程序架構中,Backbase所處的位置。應用程序由一個J2EE後端和一個基於Ajax的RIA前端組成。從邏輯上說,Backbase提供了表示層,而J2EE提供了業務邏輯和數據層。從物理上說,表示層分布在客戶端和服務器上。在客戶端上,Backbase使用BPC擴展了浏覽器。在服務器上,Backbase使用BXS擴展了應用服務器。
圖1. Backbase富Internet表示層 Pet Store案例分析 我們將使用Java Pet Store作為案例來分析如何為J2EE應用程序添加Backbase RIA前端。Java Pet Store Demo是Sun Microsystems提供的一個示例應用程序,其目的是為了演示如何使用Java 2 Platform, Enterprise Edition(J2EE)構建Web應用程序(詳情請參見http://java.sun.com/developer/releases/petstore)。
Java Pet Store是業內一個著名的參考應用程序(pet store還有.NET和Flash版本)。由於以下兩個原因,它成為為J2EE應用程序添加基於Ajax的RIA前端的完美案例:
Java Pet Store是一個完整的Web應用程序。
Sun設計Pet Store的目的是演示所有常見的Web應用程序功能。通過使用Pet Store作為案例,我可以說明為J2EE應用程序添加RIA層的所有方面。
作為一個典型的在線商店,它包含以下功能:
浏覽產品類別。
在購物車中添加和刪除物品。