在客户端和服务器端的简易实现
最新版本的 IBM WebSphere Application Server Feature Pack for Web 2.0,为您创建 Ajax 样式架构提供一个端到端的解决方案。在客户端,功能部件包提供开源 Dojo JavaScript 工具箱。在最新版的功能部件包中 JAX-RS (基于 Apache Wink 项目)提供服务器端库,可用来实现连接 Dojo 的 RESTful 服务。
除了广泛的用户界面小部件外,Dojo 还提供了丰富的数据服务 API,可轻松地连接服务器端 Web 服务。Dojo 数据 API 从显示用户界面的小部件中抽象出惟一数据格式概念。Dojo 数据提供基本数据存储用来读取 JSON 数据,还有一些其他的格式,例如 XMLStore、CsvStore 等等。如果您使用 Dojo 的树型小部件,那么您就可以选择您想要使用的数据存储,并且数据存储负责树型小部件数据处理服务。
Dojo 的数据存储很容易连接到 RESTful 服务,RESTful 服务中引入 JAX-RS。JAX-RS 的 Apache Wink 实现使创建您自己定制的 Web 服务变得很容易。因此如果您想,也就是说使用 Dojo 的树型小部件来描述文件系统的表示形式,那您需要实现协议 Dojo 用法来描述文件系统的表示形式。Dojo 为您提供客户端服务时,您也需要写入服务器端实现中。JAX-RS 有助于服务器实现变得简单易懂。
一个示例
让我们用一个示例来说明。图 1 展示了客户端和服务器端的交互。在这个例子中,您可以以目录格式显示初始 FIFA World Cup Soccer 球队。您可以在服务器端采用目录结构,在客户端创建一个树型表示。在左边,diji.Tree 是用来显示包含在服务器中的目录信息的 Dojo UI 小部件。Dijit.Tree 依赖 dijt.tree.ForestStoreModel 和 dojox.data.FileStore。dijit.tree.ForestStoreModel 是从 dojox.data.FileStore 返回的数据之间的一个映射层。ForestStoreModel 负责创建一个含有目录清单虚拟根节点的 “Files”,并负责将所有内容放入根节点下。dojox.data.FileStore 负责打开服务器端的采用 JAX-RS 实现的 RESTful 服务连接。
服务器端运行一个 RESTful 服务,实现 rest/filestore/filelist 请求。JAX-RS 服务从 dojox.data.FilesStore 读取 HTTP GET 请求并将数据以 JSON 格式返回 dojo.data.FileStore。数据返回的格式是 JSON,dojox.data.FileStore 支持此格式。
图 1. 服务器端和客户端的 RESTful 交互