技术开发 频道

WebSphere AS Web2.0功能部件包入门

【IT168 技术文章】

    引言

    WebSphere Application Server 的 Web 2.0 功能部件包(WebSphere Application Server Web 2.0 Feature Pack,下面简称 WAS-WEB2FEP)是 WebSphere 应用服务器专门对 Web 2.0 功能提供的可选择安装的增强包,使在 WebSphere Application Server 上运行的 Web 应用程序更易于使用。

    此功能包通过将外部的 Web Service、内部的 SOA 服务以及 J2EE 应用对象连接至具有更高交互性的 Web 应用接口,扩展了面向服务的体系结构(SOA)。为了减少 IT 成本和加快对市场的响应速度, Web 2.0 功能部件包为 Websphere Application Server 提供了支持 Ajax 的开发工具包。

    WebSphere Application Server Web 2.0 功能部件包中的新增内容简介

    IBM WebSphere Application Server Web 2.0 功能部件包是 IBM 为了创建 Ajax 应用的而提供的解决方案,除了提供 Web 2.0 应用的服务器运行环境,还提供了 Ajax 的开发工具。那么可以看出在 Web 2.0 功能部件包中一个最显著的亮点就是 Ajax(Asynchronous JavaScript and XML),简单说 Ajax 是一个开源技术,通过它能提升 Web 应用的用户体验而不需要额外的浏览器的插件,并且使 Web 应用的交互模式变得更加可靠。并且通过 Ajax 技术能构建更加动态的 Web 应用程序。下面我们具体来看看该功能部件的新增内容。

    图 1:Web 2.0 功能部件包

    Web 2.0 功能部件包中新增内容如下:

    .Web 2.0 to SOA connectivity(Ajax connectivity)主要连接 Ajax 客户端到 SOA 服务及 J2EE 应用,并且通过 Web Feeds 将企业数据扩展到用户端和合作伙伴。

    .Ajax client run time 是基于开源 Javascript 运行环境的 Dojo 工具箱,能快速的构建 Ajax 应用。同时 IBM 还扩展了其功能,提供另外的功能小部件以及客户端的包,包括 IBM Atom 库、IBM Gauge 窗口小部件、IBM SOAP 库、IBM OpenSearch 库。

    .Java 库

    .JSON4J 库

    .Web 消息传递服务 (Ajax messaging)主要用于连接 Ajax 客户端到实时数据更新的业务如股票价格和及时消息。

    此外 Web 2.0 功能部件包中还包含 Ajax 开发者指南和样本应用程序。

    Web 2.0 to SOA Connectivity(Ajax connectivity)

    Web 2.0 应用通过丰富的用户体验扩展了 SOA 的业务价值,并且整合了外部和内部的内容。由于技术和浏览器安全的限制,Ajax 客户端和 SOA 服务之间的连接非常复杂,并且开发也很昂贵。Web 2.0 to SOA Connectivity 能帮助客户很容易实现这两者之间的基本连接,从而减少成本和加快开发速度。

    图 2:Web 2.0 to SOA Connectivity

    从图中可以看出 Web 2.0 to SOA Connectivity 包含了以下三部分内容:

    .Ajax proxy

    .Remote Procedure Call (RPC) adapter

    .Abdera-based Feed libraries support

    并且从图中也可以明确看出 Ajax proxy 主要是在组合内部和外部服务时消除浏览器的安全问题。JSON (JavaScript Object Notation) 库和 远程调用 (RPC) adapter 结合并通过使用 RSS(Representational State Transfer)来简化 Ajax 到 J2EE 服务的连接。而 Atom 包是为了将 SOA 的数据扩展到企业的合作伙伴以及客户。

    1.Ajax proxy

    在网络环境中,代理主要是接受来自客户机的请求并将它们传递给服务器,然后将服务器的响应发送回客户机。

    IBM WebSphere Application Server Web 2.0 功能部件包中提供的 Ajax 代理是一个逆向代理。可以在一台或多台服务器附近安装逆向代理。来自于逆向代理的连接被导向所请求的服务器。尽管逆向代理可能会将请求转发至多个 Web 服务器,但是对于客户机的来说,这些都是透明的,也就是说请求似乎来源于同一个服务器。

    2. Remote Procedure Call (RPC) adapter —远程调用适配器

    Web-remoting 是一种模式,它支持 JavaScript 或客户端代码直接调用服务器端的逻辑。此模式能够调用 JavaScript 中的 Java 方法。它是通过执行 JSON-RPC 调用来调用的。最常见的用法是通过 XmlHttpRequest 来异步调用。数据以 JSON 格式在服务器与客户机之间传输。因此,此模式实质上是一项 JSON Web service。

    3.Abdera-based Feed 库支持

    Apache Abdera 是一个在 WebSphere Application Server 中提供订阅源支持的开放式源代码项目。Abdera 同时解决了 ATOM 联合格式和 ATOM 发布协议问题。另外,Abdera 当前还支持读取 RSS 内容。

    Web 消息传递服务(Ajax Messaging)

    Web 消息传递服务实现了发布和预订功能,将浏览器与 WebSphere Application Server 服务集成总线(SIB)联系起来,从而能够推送服务器端的事件。客户机 / 服务器通信是通过使用 Bayeux 协议实现的。Bayeux 协议是一种基于 HTTP 的消息传递路由协议。

    在客户机中,由 Dojo Toolkit 提供了对 Bayeux 协议的支持。Web 消息服务实现方案将入局 Bayeux 请求与服务集成总线联系起来,允许 Web service、JMS 客户机或与服务集成总线相连的任何项将事件发布至基于 Web 的客户机。通过将运行时 Java 归档(JAR)文件放入 WebSphere Application Server,将实用程序文件库 JAR 文件放入应用程序 Web 模块中、设置简单配置文件和配置 servlet 映射,就可以在新的应用程序或现有应用程序中使用 Web 消息传递服务。

    Ajax 客户机运行时

    Ajax 客户机运行时是基于 Dojo Toolkit 的功能强大的 Ajax 开发工具箱。同时 IBM 还扩展了其功能,提供另外的功能小部件以及客户端的包。如 OpenSearch 数据存储器,标尺窗口小部件等。

    Java 库

    Java 库主要包含两大部分内容,一是 Web 消息传递服务,上面已经介绍过,二是 JSON4J 库,该库是一组 JavaScript 对象注释(JSON)处理类的实现,这些类可在 Java 环境中使用。

    WebSphere Application Server Web 2.0 功能部件包实践

    如何安装 Web 2.0 功能部件包

    上个章节主要介绍了 Web 2.0 中的功能部件包的内容,现在具体动手来实践一下,包含两部分内容,一是如何安装 Web 2.0 功能部件包到 WAS 上,二是如何部署样本程序。首先看如何安装。

    一.下载 Web 2.0 的功能部件包的地址如下

    http://www.ibm.com/software/webservers/appserv/was/featurepacks/

    下载的时候请注意,选择 6.x-WS-WAS-WEB2FEP-MultiOS.zip 或者 6.x-WS-WAS-WEB2FEP-MultiOS.tar.gz

    二.在安装之前我们需要先安装 WAS,对于 WAS6.1 版本需要在至少是 6.1.0.13,而 WAS6.0 需要至少 6.0.2.23,IBM WAS 补丁下载的地址是 http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg27004980

    此外还需注意在安装之前停止 WAS 服务器。

    三.具体安装步骤如下:

    1.在 Web 2.0 的功能部件包的安装介质文件中运行 install,并且要指定应用服务器的 JVM 目录,如在 windows 平台上的命令 install –is:javahome E:\IBM\WebSphere\AppServer\java

    2.按照向导的输入安装目录,开始安装。

    3.安装完成后安装向导将 Web 2.0 功能部件包安装到 WAS 主目录下,如 <app_server_root>web2fep。

    4.安装的日志在 <install_root>/logs/install/web2fep, 如果安装中碰到问题可以查看该日志。

    5.对于卸载该功能部件包,在 Web 2.0 的安装目录下运行 uninstall_web2fep/uninstall.exe,如果卸载中出现问题,可以参考日志 <install_root>/logs/uninstall/web2fep。

    如何安装样本程序

    Web 2.0 功能部件包中包含的样本程序是为了让用户更好更快的熟悉 Ajax 应用的开发和部署,主要有四个

    .RPC 适配器样本 :CourierApp 样本 Web 应用程序是用于演示 RPC 适配器具备的功能(例如,处理 XML 和 JSON 响应、采用白名单和黑名单方式列示方法以及指定验证器)的样本。

    .Feedsphere 样本 :演示 Abdera 中的 ATOM 和 RSS 支持。此外,它还演示了“ATOM 发布协议”支持。

    .Plants by WebSphere 样本(Ajax 版) :该应用程序是一个虚构的 Web 站点,它在网上销售苗圃商品,通过 JavaScript Dojo Toolkit 添加了 Ajax 风格的体系结构。具体地说就是使用了各种 Dojo 窗口小部件以及为购物车增加了拖放功能。

    .QuoteStreamer 样本:该样本使用 Web 消息传递服务来模拟股票行情并传递至支持 Dojo 的客户机应用程序。本文下面将详细介绍该样本的功能以及在 WAS6.1 上的部署。

    QuoteStreamer 样本程序

    QuoteStreamer 样本应用程序使用 Web 消息传递服务来模拟股票行情并传递至支持 Dojo 的客户机应用程序。模拟行情由 CommonJ 计时器生成,它会将消息发布至服务集成总线主题空间。Web 消息传递服务将支持 Dojo 的客户机、WebSphere Application Server 内部消息代理和平台消息传递联系起来,以进行基于 Web 的发布或预订。下面是样本程序的体系结构图:

    图 3:样本体系结构图

    通信是通过 Bayeux 协议实现的。Dojo Toolkit 的 cometd 客户机将入局 JavaScript 对象表示法(JSON)消息链接至 Dojo 事件和主题系统以进行处理。在 QuoteStreamer 样本应用程序中,市场报告总结文章中以 HTML 格式指定了多个 Dojo 窗口小部件。这些 Dojo 窗口小部件将处理入局股票行情消息并以可视方式指示股票行情的变化。这些可视变化包括:更新股票的当前价格,每日股票价格变化,每日股票价格涨跌百分比。当股票价格变化时,每日股票价格变化和每日股票价格涨跌百分比就会变绿(增大)或变红(减小),直到恢复为原来的背景色。具体应用的界面如下:

    图 4:应用实例图

    QuoteStreamer 样本程序部署步骤

    本节描述将 QuoteStreamer 样本应用程序安装到 WebSphere Application Server V6.1.X 中的过程。

    1. 查找 QuoteStreamer 样本企业应用程序归档(EAR)文件。如果已经安装了 Feature Pack for Web 2.0,那么可以在安装树中找到该 EAR。

    Linux 和 UNIX:

    /WAS_ web2fep_install_root /samples/QuoteStreamer/IBM_QuoteStreamer.ear

    Windows:

    c:\WAS_ web2fep_install_root \web2fep\samples\QuoteStreamer\IBM_QuoteStreamer.ear

    其中 WAS_ web2fep_install_root 指 Web 2.0 功能部件包安装的主目录。

    2. 验证是否安装了 Web 2.0 功能部件包:

    Web 2.0 功能部件包中包括 Web 消息传递服务运行时库,必须安装此功能部件包才能运行 QuoteStreamer 样本应用程序。

    3. 启用 Web 消息传递服务:

    1.在 WebSphere Application Server 的管理控制台中点击 服务器 -> 应用程序服务器

    2.选择当前使用的应用程序服务器,并展开“Web 容器设置”并选择 Web 容器传输链。

    3.选择 WCInboudDefault 传输链,或者选择与您在安装应用程序期间将选择的虚拟主机相对应的传输链。

    4.选择“Web 容器入站通道”,选择“定制属性”, 单击 新建 ,加入 webmsgenabled,值为 ture

    5.单击 应用 ,并 保存 更改。

    4. 配置服务集成总线:

    以下安装指示信息是针对您进行单机服务器安装来提供的。

    1.在 WebSphere Application Server 的管理控制台,浏览到 服务集成 -> 总线 。

    2.单击 新建 ,输入名称“thebus”。如果有可能,请取消选中“总线安全性”复选框选项。点击 下一步 。

    3.单击“确认创建总线”面板上的 完成 。

    4.单击“thebus”详细信息页面上的 总线成员拓扑 链接,点击 添加 。

    5.选择您想将该应用程序安装到的服务器并单击 下一步 。

    6.保留“选择消息存储库类型”面板上的缺省值并单击 下一步 。

    7.保留“提供消息存储库属性”面板上的缺省值并单击 下一步 。

    8.单击 完成 ,并保存更改。

    9.重新启动应用程序服务器。

    5. 创建主题连接工厂:

    1.在 WebSphere Application Server 的管理控制台中浏览至左边菜单中的 资源 -> JMS -> 主题连接工厂 。

    2.选择作用域。选择服务器级别作用域就足够了。

    3.单击 新建 。

    4.选择缺省消息传递提供者并单击 确定 。

    5.对于“名称”输入 QuoteStreamer,对于“JNDI 名称”输入 jms/QuotePublish,对于“总线名称”输入 thebus。

    6.对于其余字段则保留缺省值。

    7.单击 应用 ,并 保存更改 。

    6. 部署应用:

    1.在 WebSphere Application Server 的管理控制台中,浏览至 应用程序 -> 安装新的应用程序 。

    2.浏览文件系统,并选择您先前找到的 QuoteStreamer.ear 文件,然后单击“下一步”。

    3.保留缺省值并单击 下一步 (选择安装选项)。

    4.单击 下一步 (将模块映射至服务器)。

    5.单击 完成 ,保存。

    6.浏览至 应用程序 -> 企业应用程序 。

    7.选择 QuoteStreamer_Sample 并单击“启动”。

    8.访问已安装的应用程序:

    通过 Web 浏览器浏览至安装的 Websphere 应用程序: http://<application server hostname>:<port>/quotestreamer

    注意:应用程序服务器主机名和端口将特定于您安装的 WebSphere Application Server。WebSphere Application Server 缺省安装 Web 容器端口为 9080。因此,如果您正在安装了 Websphere 的同一台机器上运行浏览器,并且全部都是采用缺省值,那么应使用以下 URL:

    http://localhost:9080/quotestreamer

    9.装入页面时就会立即将模拟的行情交付给浏览器。单击 停止股票行情 按钮就会停止提供行情。单击 恢复股票行情 按钮就将继续提供股票行情。

    总结

    借助 Ajax,Web 应用程序的交互模型变得更可靠,像桌面应用程序一样,具有恒定的交互和改善的可用性。WebSphere Application Server Web 2.0 功能部件包就是 IBM 针对 Ajax 技术的解决方案,它能帮助客户快速创建基于 Ajax 技术的 Web 应用,能快速响应市场的变化以及提高最终用户生产力。

    参考资料

    通过 Kevin Haverlock 的介绍性文章“A look at the WebSphere Application Server Feature Pack for Web 2.0”(developerWorks,2008 年 2 月)获得有关 Feature Pack 的概览。

    了解有关基于开源技术的 Dojo Toolkit 的更多信息。

    获得有关 Dojo Toolkit 的文档。

    探索 Apache Abdera,一种用来创建和聚合 Web 提要的开源库。

    developerWorks 文章“ 使用 Dojo 工具包和 JSON-RPC 构建企业 SOA Ajax 客户端 ”是使用 JSON-RPC 调用服务器端 Java 对象的一个示例(2006 年 6 月)。

    了解更多有关 Comet 的信息,Comet 便利了服务器到客户机的异步通信。

    IBM Information Center 包含有关 IBM WebSphere Application Server Feature Pack for Web 2.0 的详细信息。

    获得 IBM WebSphere Application Server Feature Pack for Web 2.0 的演示 。

0
相关文章