结合使用 WebSphere Application Server V7 和 IPv6
2009-09-29 00:00:00 来源:WEB开发网引言
IBM WebSphere Application Server V7 是符合 J2EE™ 1.5规范的 Java™ Platform, Enterprise Edition (Java EE) 5 平台的 IBM 实现。它为企业级应用程序提供了运行时环境,包括 J2EE 应用程序、Portlet 应用程序和会话发起协议(Session Initiation Protocol,SIP)应用程序。WebSphere Application Server 能够承载高级拓扑中的企业应用程序,并突出体现了工作负载管理、可伸缩性、高可用性和集中管理。
IPv6 是基于数据包和路由标准的“下一个”版本的 Internet 协议。Internet Protocol Version 6 (IPv6) 提供了相对于当前版本 IPv4 的若干改进。最重要的是,由于使用 128 位 Internet 地址而不是 IPv4 的 32 位地址,IPv6 将可用地址的数量从 40 亿个增加到了大约 340 兆兆兆个地址。面对 Internet 的持续快速增长,确保存在足够的地址是至关重要的。有线和无线设备的快速普及意味着每个使用 Internet 的人将需要多个地址。IPv6 还是美国联邦政府、许多州和地方政府以及全世界正在转换到新协议的商业组织的战略方向和重要要求。
WebSphere Application Server 是运行于本机操作系统平台之上的中间件承载环境。WebSphere Application Server 自身没有在传输层实现 TCP/IP 通信协议;相反,WebSphere Application Server 在传输层使用由主机操作系统平台提供的本机 TCP/IP 通信协议。WebSphere Application Server 已通过认证,可以在 IPv6 环境中工作。
本文演示如何在纯 IPv6 以及 IPv6/IPv4 混合模式基础结构拓扑中配置、部署和验证 WebSphere Application Server 拓扑。明确地说,本文包括以下用例:
涉及纯 IPv6 基础结构和 Microsoft® Windows® 同类承载平台环境的 WebSphere Application Server 部署拓扑。
涉及纯 IPv6 基础结构和 RedHat Enterprise Linux® Release 4 同类承载平台环境的 WebSphere Application Server 部署拓扑。
涉及纯 IPv6 基础结构以及 Windows 和 RedHat Enterprise Linux Release 4 异类承载环境的 WebSphere Application Server 部署拓扑。
涉及混合模式 IPv6/IPv4 基础结构以及 Windows 和 RedHat Enterprise Linux Release 4 异类承载环境的 WebSphere Application Server 部署拓扑。
体系结构
为了验证 WebSphere Application Server 拓扑,您可以设置类似于图 1 中所示的示例体系结构的隔离网络。
图 1. 基础结构拓扑的示例体系结构
之所以选择本文中列出的用例,是为了将其用作验证两种不同操作系统(表 1 和 2 中列出的主机)之中以及之间的通信的基础。该基础结构为您提供了两种流行平台(Windows Server 2003 和 Red Hat Enterprise Linux 4.6)上的两个主机,以及测试同类和异类环境所需要的灵活性。
表 1. 基础结构拓扑中的主机Windows Server 2003
主机名称 | V4 IP 地址 | V6 IP 地址 |
MSW2K31.mcl.us.ibm.com | 10.69.16.163 | fe80::202:55ff:feac:dbf |
MSW2K32.mcl.us.ibm.com | 10.69.16.102 | fe80::202:55ff:feac:4121 |
表 2. 基础结构拓扑中的主机:Red Hat Enterprise Linux 4.6
主机名称 | V4 IP 地址 | V6 IP 地址 |
rhel1.mcl.us.ibm.com | 10.69.16.121 | fe80::202:b3ff:fed2:1e31 |
rhel2.mcl.us.ibm.com | 10.69.16.173 | fe80::202:b3ff:fed3:27cc |
方法
具体的方法包括使用 WebSphere Application Server 现成提供的 PlantsByWebSphere 示例 Java EE 参考应用程序,对运行于 IPv6 上和混合模式基础结构中的 WebSphere Application Server 进行测试。可以使用来自另一篇 developerWorks 文章的示例应用程序执行进一步的测试,该应用程序演示了如何使用消息驱动 Bean 创建简单的点对点 JMS 应用程序。该示例应用程序利用了系统集成总线(System Integration Bus,SIBus)和 WebSphere Application Server 提供的 JMS 功能。
对于客户端测试,将使用 Web 浏览器客户端调用 PlantsByWebSphere 应用程序。对于 JMS 应用程序,将使用 WebSphere Application Server launchClient 工具从命令行启动非托管客户端。这两个应用程序都为您提供了基础结构的 IP 堆栈之上的客户端/服务器通信。由于 WebSphere Application Server v7 经过了 IPv6 认证,无论基础堆栈版本是什么,通信都将是无缝的。
配置操作系统
您首先需要确定自己想要主机如何通信。可以使用 DNS 操作 IP 地址,也可以使用主机文件手动操作 IP 地址。
在本文描述的用例中,将使用主机文件操作 IP 地址,从而操作相关版本的协议。在主机文件中以 IPv6 格式输入某个地址将迫使该主机的所有解析为 Version 6;对于 IPv4 也是如此。当利用主机文件操作通信方法时,对于 IPv6 通信,您必须手动创建主机之间的 IP 路由。为此,您必须使用以下语法。
清单 1
netsh interface IPv6 add address [interface=]InterfaceNameOrIndex
[address=]IPv6Address [[type=]unicast|anycast] [[validlifetime=]Minutes|infinite]
[[preferredlifetime=]Minutes|infinite] [[store=]active|persistent]
例如,我们在 MSW2K31.mcl.us.ibm.com 主机上使用了以下命令来手动添加网路成员的 IPv6 地址,然后又在主机 MSW2K32.mcl.us.ibm.com 上重复此过程。
清单 2
netsh interface ipv6 add address address=fe80::202:55ff:feac:dbf/64 "Local Area
Connection"
netsh interface ipv6 add address address=fe80::202:55ff:feac:4121/64 "Local Area
Connection"
netsh interface ipv6 add address address=fe80::202:b3ff:fed2:1e31/64 "Local Area
Connection"
netsh interface ipv6 add address address= fe80::202:b3ff:fed3:27cc/64 "Local Area
Connection"
不需要为 Linux 手动配置路由。
要验证通信,您可以对同类场景利用表 3 中总结的用例。
表 3. 所测试的用例的详细信息:同类场景
用例 | 客户端主机 | 客户端 IP 堆栈 | 服务器主机名称 | 服务器 IP 堆栈 | 客户端地址 | 服务器地址 | 备注 |
1 | MSW2K32 | IPv6 | MSW2K31 | IPv6 | fe80::202:55ff:feac:4121 | fe80::202:55ff:feac:dbf | 图 2 和 3 |
2 | MSW2K32 | IPv4 | MSW2K31 | IPv4 | 10.69.16.102 | 10.69.16.163 | -- |
3 | MSW2K32 | IPv4 | MSW2K31 | IPv6 | 10.69.16.102 | fe80::202:55ff:feac:dbf | -- |
4 | MSW2K32 | IPv6 | MSW2K31 | IPv4 | fe80::202:55ff:feac:4121 | 10.69.16.163 | -- |
5 | rhel2 | IPv6 | rhel1 | IPv6 | fe80::202:b3ff:fed3:27cc | fe80::202:b3ff:fed2:1e31 | -- |
6 | rhel2 | IPv4 | rhel1 | IPv4 | 10.69.16.173 | 10.69.16.121 | -- |
7 | rhel2 | IPv4 | rhel1 | IPv6 | 10.69.16.173 | fe80::202:b3ff:fed2:1e31 | -- |
8 | rhel2 | IPv6 | rhel1 | IPv4 | fe80::202:b3ff:fed3:27cc | 10.69.16.121 | -- |
对于用例 1,您将验证 v6 到 v6 的通信。为此,请按图 2 和 3 所示设置主机文件内容。主机文件在 Winodws 中位于 c:\WINDOWS\system32\drivers\etc\ 目录中,在 Linux 中位于 /etc/hosts。
图 2. 客户端 MSW2K32 的主机文件内容
图片看不清楚?请点击这里查看原图(大图)。
图 3. 服务器 MSW2K31 的主机文件内容
图片看不清楚?请点击这里查看原图(大图)。
表 3 显示了针对用例 2 至 8 的主机文件内容。对于客户端和服务器主机,您都需要取消注释所需的 IPv4 或 IPv6 格式的地址行,并注释掉其余不需要的 IP 地址行。改动主机文件后不需要重新启动,但是您必须保存并关闭该文件。要在更改主机文件以后验证通信,您可以使用主机名称对该主机运行 ping 命令:
在 Windows 上,可以在命令提示符下使用 ping 命令:
ping hostname
如果主机文件中利用的 IP 版本是 v4,则应答将为 xx.xx.xx.xxx 格式。如果 IP 版本为 v6,则应答将为 xxxx::xxx:xxxx:xxxx:xxxx 格式。
要在 Linux 上通过 IPv6 运行 ping,可以运行以下命令:
> ping6 –hostname
其中“hostname”是主机文件中指定的主机名称。
要针对异类场景验证通信,您可以利用表 4 中总结的用例。
表 4. 用例详细信息:异类场景
用例 | 客户端主机 | 客户端 IP 堆栈 | 服务器主机名称 | 服务器 IP 堆栈 | 客户端地址 | 服务器地址 | 备注 |
9 | rhel2 | IPv4 | MSW2K31 | IPv6 | 10.69.16.173 | fe80::202:55ff:feac:dbf | 图 4 和 5 |
10 | MSW2K32 | IPv6 | rhel1 | IPv4 | fe80::202:55ff:feac:4121 | 10.69.16.121 | -- |
对于用例 9,请按图 4 和 5 所示设置主机文件内容。对于用例 10,请按表 4 所示设置主机文件内容,并且同时对客户端和服务器主机取消注释所需的 IPv4 或 IPv6 格式的地址行,然后注释掉其余不需要的 IP 地址行。
图 4. 客户端 rhel2 的主机文件内容
图片看不清楚?请点击这里查看原图(大图)。
图 5. 服务器 MSW2K31 的主机文件内容
图片看不清楚?请点击这里查看原图(大图)。
为 WebSphere Application Server 进行 IPv6 配置
在利用或将要利用 IPv6 的基础结构上实现 WebSphere Application Server 时,需要考虑一些重要事项。其中一些注意事项与操作系统配置相关,而其他注意事项则直接与 WebSphere Application Server 版本的实现方式相关:
当在 Windows 上使用 IBM HTTP Server 时,httpd.conf 文件应该包括用于 IPv6 地址的 Listen 指令。要使用缺省 IPv6 地址,可以指定 Listen [::]:80。用于 IPv4 环境的对应 Listen 指令为 Listen 0.0.0.0:80。
要使应用程序在双堆栈环境中正常工作,您必须实现双模式单元。双模式单元中支持混合的 IPv4 和 IPv6 通信。缺省情况下,将在创建单元时将其设置为双模式,但是只有运行 WebSphere Application Server V6 及更高版本的节点在双模式单元中才有效。
在创建 WebSphere Application Server 概要时,系统将提示您指定用于创建该概要的计算机的主机名称或 IP地址。您指定的主机名称或 IP 地址就是其他节点将用于与正在创建的节点通信的主机名称或 IP地址。如果指定主机名称,则不需要担心系统是为 IPv4 还是为 IPv6 配置的。只要正确配置了 DNS 服务,节点就应该能够毫无问题地通信。
在许多情况下,您应该将显式的 IPv6 IP 地址包括在方括号中。有关不应该在 IPv6 地址规范中利用方括号的特定情况,请参考 WebSphere Application Server V7 信息中心。
无需对本文列出的 WebSphere 环境做出任何配置更改,下面描述的示例应用程序即可正常运行。在配置或安装 WebSphere Application Server 时,以及在提示指定主机名称或地址时,只需输入主机名称即可。
运行示例应用程序
如果您正在作为本练习一部分安装 WebSphere Application Server,您将看到一个 Optional Features Installation 面板。请选择 Install the Sample Applications 选项以部属 PlantsByWebSphere 示例应用程序,下面将使用该应用程序测试您的 IPv6 环境。如果您已经安装了 WebSphere Application Server,并且希望安装 PlantsByWebSphere 示例应用程序,请按照 WebSphere Application Server 信息中心的说明操作。
此时,您已经配置了操作系统和 WebSphere Application Server,因此您现在已经为部署和测试两个示例应用程序做好了准备。PlantsByWebSphere 将演示 WebSphere Application Server 的 SIBus 的使用。来自一篇 developerWorks 文章的另一个示例应用程序将使用 JMS。针对每种情况执行以下步骤,可以证明通过 IPv6 和 IPv4/IPv6 混合模式的成功消息传输。此外,既然您了解了用于操作可使用的通信版本的方法,您还可以测试异类和同类 IPv6 环境。
根据您希望测试的用例,按照上面的说明配置主机文件。
运行 PlantsByWebSphere 应用程序
在 Windows 上
在主机 MSW2K32.mcl.us.ibm.com 打开浏览器并导航到 http:// MSW2K31.mcl.us.ibm.com:9080/PlantsByWebSphere,如图 6 所示。
图 6. Windows 上的 PlantsByWebSphere 浏览器客户端
图片看不清楚?请点击这里查看原图(大图)。
图 7 从客户端的角度确认 PlantsByWebSphere 应用程序的成功执行。
图 7. 显示 PlantsByWebSphere 成功的面板
图片看不清楚?请点击这里查看原图(大图)。
如果通信成功,则服务器的 SystemOut.log 中的输出应该与清单 3 所示类似。请查看每个承载服务器产生的名称分别如下的特定详细跟踪输出:
MSW2K31_SystemOut.log
MSW2K32_SystemOut.log
rhel1_SystemOut.log
rhel2_SystemOut.log.
跟踪文件通过信息性输出行和 SystemOut 跟踪输出行表明了用例的成功运行,下面重现了这些输出行::
清单 3. PlantsByWebSphere 的显式 SystemOut.log 输出
[10/01/08 12:22:17:593 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/product.jsp]: Initialization successful.
[10/01/08 12:22:17:656 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [ImageServlet]: Initialization successful.
[10/01/08 12:22:21:281 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/cart.jsp]: Initialization successful.
[10/01/08 12:22:23:046 EDT] 00000022 servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/login.jsp]: Initialization successful.
[10/01/08 12:22:39:937 EDT] 00000022 servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/register.jsp]: Initialization successful.
[10/01/08 12:23:05:578 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [AccountServlet]: Initialization successful.
[10/01/08 12:23:06:062 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/orderinfo.jsp]: Initialization successful.
[10/01/08 12:23:33:015 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/checkout_final.jsp]: Initialization successful.
[10/01/08 12:23:38:796 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/orderdone.jsp]: Initialization successful.
[10/01/08 12:23:44:156 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/shopping.jsp]: Initialization successful.
在 Linux 上
在客户端系统上将浏览器指向运行该应用程序的 Linux 主机。对于此示例,将使用 IPv6 地址而不是主机名称作为 URL 的一部分。因此输入的 URL 将为 http://[fe80::202:b3ff:fed3:27c]:9080/PlantsByWebSphere,如图 8 和 9 所示。URL 中的 IPv6 地址应该包括在方括号内。(较旧版本的某些 Internet 浏览器不支持包含 IPv6 地址的 URL,因此要确保在测试之前验证您的浏览器版本支持 IPv6。)
图 8. Linux 上的 PlantsByWebSphere 浏览器客户端
图片看不清楚?请点击这里查看原图(大图)。
图 9. 显示 PlantsByWebSphere 成功的面板
图片看不清楚?请点击这里查看原图(大图)。
在 IPv6 环境中运行 JMS 客户端应用程序
为了进一步验证 WebSphere Application Server 在 IPv6 环境中的消息功能,您可以使用简单的 JMS 消息应用程序。Rachel Reinitz 和 Andre Tost 撰写的有关使用 WebSphere Application Server V6 构建企业服务总线的 developerWorks 文章中描述的示例应用程序非常适合用于此测试。该应用程序包括在 J2EE 客户端应用程序中运行的发送方部分,以及由一个消息驱动 Bean 表示的接收方部分。通过利用此应用程序,您可以成功验证所有用例的 JMS 通信。(此示例应用程序最初是为 WebSphere Application Server V6 创建的。在我们的实验室中,此应用程序可以在 WebSphere Application Server V6 和 V7 上正常运行,就像同时在这两种平台上设计的一样。)
根据您希望测试的用例,按照上面的说明配置主机文件。对于上述所有用例,成功的输出如图 10 和 11 以及清单 4 中的代码行所示。
当为 JMS 构件指定非缺省提供者端点时,例如某个激活规范,如果为端点指定主机地址而不是主机名称,请将 IPv6 地址放在方括号中:
Ex [fe80::202:55ff:feac:dbf] :7276
正如提供此应用程序的 developerWorks 文章所述,可以使用 WebSphere Application Server launchClient 工具调用该 JMS 应用程序。
图 10. launchClient.bat
图片看不清楚?请点击这里查看原图(大图)。
图 11. 控制台输出
图片看不清楚?请点击这里查看原图(大图)。
清单 4 显示了该示例 JMS 应用程序的 SystemOut.log 输出。
清单 4
[10/01/08 13:28:12:562 EDT] 0000002c SystemOut O Received message : Package
Received - 24595023
总结
祝贺您,针对由同类和异类操作系统平台环境组成的纯 IPv6 和 IPv6/IPv4 混合模式跨单元部署拓扑,您成功地完成了对 WebSphere Application Server v7.0(SIBus 和 JMS)的配置和验证。通过本练习,您了解了作为中间件平台的 WebSphere Application Server 如何无缝地利用基础的传输架构。
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››WebSphere 反向投资者: 解决 WebSphere Applicati...
- ››WebSphere sMash 的创新应用,第 2 部分: 借助包装...
- ››结合 Dojo 和 JAX-RS 创建 RESTful 服务
更多精彩
赞助商链接