动态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表示层