本文内容包括: |
IBM Rational ClearQuestWeb/Requisite Pro Web是IBM Rational ClearQuest/Requisite Pro所提供的基于Web方式的一种客户端。默认情况下,IBM Rational ClearQuest Web Application Server/Requisite Pro Web Application Server与IBM HTTP Server是安装在同一台服务器上的,然后在企业级应用下,我们可以将这些Application Server与HTTP Server分布部署在不同的服务器上,以得到更好的性能与系统安全性。本文将向您介绍如何安装配置这样一套分布是的系统,并给出具体参数配置。
简介
在IBM Rational ClearQuest/Requisite Pro 7.0产品中,引入了IBM HTTP Server(以下简称为IHS)作为IBM Rational ClearQuest Web(以下简称为CQWeb)/Requsite Pro Web(以下简称为ReqWeb)产品的Web Server。在产品默认的安装情况下,IHS将与CQWeb Application Server/ReqWeb Application Server一同安装在同一台服务器上。这样在大量用户访问的时候,服务器上有效的资源需要同时供IHS和CQWeb/ReqWeb使用,因此可能会导致Web访问的性能下降,相应时间变长。并且使用中,如果一旦某个产品出现了问题或者服务器宕机,将会对整个系统产生严重影响。
图 1:产品默认的安装情况为了解决企业中大用户访问的Web性能问题同时降低风险,我们将IHS Web Server与CQWeb/ReqWeb Server分布部署,以期获得满意的性能。
图 2:将 IHS Web Server 与 CQWeb/ReqWeb Server 分布部署在以上集中和分布部署两种拓扑结构图中,我们可以清楚地看到,我们将原本集中安装在一台服务器上的IHS,CQWEB与REQWEB分布安装在了4台服务器上。这样就有效的将集中的负载分散到多个服务器中,有效地提高了多用户下的服务器性能表现。
如何安装配置分布式架构中的各个服务器
那么我们应当如何安装配置这个分布式架构中的各个服务器呢?下文将具体安装配置进行一一介绍。
1. IBM Rational Requisite ProWeb Application Server
在这个服务器上,我们将安装IBM Rational Requisite Pro 7.0 with Web Component。在IBM Rational Requisite Pro 7.0的软件安装向导中,如下图所示:
图 3:IBM Rational Requisite Pro 7.0 的软件安装向导选择对应的产品组件。待产品安装结束后,确认产品安装无误。
2. IBM Rational ClearQuest Server
在这个服务器上,我们将安装IBM Rational ClearQuest 7.0 Server和IBM Rational ClearQuest Administration Tool。在IBM Rational ClearQuest 7.0的软件安装向导中,如下图所示:
图 4:IBM Rational ClearQuest 7.0 的软件安装向导选择对应的产品组件。对于其他的功能组件,例如组建IBM Rational ClearQuest Multisite所需的功能模块,则可以按需安装在本机,或者另外一台独立的服务器上。在安装结束后,按提示重新启动机器。系统重新启动完毕后,我们可以使用IBM Rational ClearQuest Maintenance Tool来建立所需的模式库与用户样本数据库。
3. IBM Rational ClearQuest Web Application Server
在这个服务器上,我们将安装IBM Rational ClearQuest 7.0 Web Application。在IBM Rational ClearQuest 7.0的软件安装向导中,如下图所示:
图5:安装 IBM Rational ClearQuest 7.0 Web Application选择对应的产品组件进行安装。安装完毕后,我们需要修改配置文件,以连通IBM Rational ClearQuest 7.0 Web Application Server和 IBM Rational ClearQuest Server之间的通讯。
假设IBM Rational ClearQuest被默认安装在 C:\Program Files
目录下,打开以下文件,
c:\Program Files\ Rational\ Common\ rwp\ EmbeddedExpress\
profiles\ profile1\ installedApps\ DefaultNode\
RationalClearQuestWeb.ear\ CQWebModule.war\ WEB-INF\
classes\ jtl.properties
修改 JTLRMIREGISTRYSERVERS=localhost:1130
为 JTLRMIREGISTRYSERVERS=[ IBM Rational ClearQuest
Server IP地址或者主机名]:1130
保存修改好的设置后,重启操作系统使应用生效。
在这个服务器上,我们将安装IBM HTTP Server 6.1和 IBM WebSphere Application Server plug-ins 6.1这两个产品。
首先,安装IBM HTTP Server 6.1。选择默认的安装方式,并将IHS的服务器启动方式选择为自动。待安装结束后,打开C:\PROGRAM FILE\ IBM\ HTTPServer\ logs\ install下的安装日志确认安装过程中没有出现错误。
接下来,需要在这个服务器上安装IBM WebSphere Application Server plug-ins 6.1。安装期间,有以下几项需要注意:
- 我们选择了IHS作为我们的WEB SERVER。
- 因为我们将IHS和WEB APPLICATOIN SERVER部署在不同的服务器上,因此在选择模式的时候,我们选择“Remote”方式
- 选择IHS安装目录下,httpd.conf文件所保存的路径,默认情况下,可以在C:\Program Files\ IBM\ HTTPServer\ conf\下找到。
- 选择默认的web server的名字,比如webserver1
- 在填写WEB APPLICATION SERVER地址的时候,填写CQ WEB APPLICATION SERVER的地址或者主机名。
在IBM WebSphere Application Server plug-ins安装结束后,我们来到了最关键的一步,修改plugin-cfg.xml 配置文件。在刚在安装IBM WebSphere Application Server plug-ins的过程中,我们配置生成了一个plugin-cfg.xml文件。我们当然可以修改这个已有的文件。但是这里有更好的办法,我们可以借用CQWEB中已经配置好的plugin-cfg.xml文件。
在IBM Rational ClearQuest Web Application Server 上,从以下目录中 C:\ program files\ Rational\ Common\ rwp\ EmbeddedExpress\ Profiles\ plugin-cfg.xml 复制一个plugin.xml到 IHS SERVER上的以下目录中,c:\ program files\ IBM\ HTTPServer\ Plugins\ config\ webserver1\,并覆盖已存在的plugin-cfg.xml文件。
用文本编辑器打开这个plugin-cfg.xml文件,作如下的编辑:
<Config> <Log LogLevel="Error" Name="_SERVER_ROOT_/logs/http_plugin.log"/> <Property Name="ESIEnable" Value="false"/> <Property Name="ESIMaxCacheSize" Value="1024"/> <Property Name="ESIInvalidationMonitor" Value="false"/> <VirtualHostGroup Name="default_host"> <VirtualHost Name="*:80"/> ~~~~~此值原先为一变量“_APACHE_PORT_”,现在将其改成HTTP端口默认 80 <VirtualHost Name="*:10080"/> <VirtualHost Name="*:11080"/> <VirtualHost Name="*:443"/> ~~~~~此值原先为一变量“_SSL_PORT_”,现在将其改成SSL默认端口 443 </VirtualHostGroup> <ServerCluster Name="profile1_Cluster"> <Server Name="server1"> <Transport Hostname="192.168.205.217" Port="10080" Protocol="http"/> ~~~~~~~~~~~~~~此值原先为localhost, 现在需要你将其改成IBM Rational ClearQuest Web Application Server的地址 </Server> </ServerCluster> <ServerCluster Name="profile2_Cluster"> <Server Name="server1"> <Transport Hostname="192.168.205.217" Port="11080" Protocol="http"/> ~~~~~~~~~~~~~~~此值原先为localhost, 现在需要你将其改成IBM Rational Requisite ProWeb WEB SERVER的地址 </Server> </ServerCluster> <UriGroup Name="profile1_Cluster_URIs"> <Uri Name="/wre/*"/> <Uri Name="/wreservlet/*"/> <Uri Name="/cqweb/*"/> <Uri Name="/cqwebservlet/*"/> <Uri Name="/projectconsole/*" /> <Uri Name="/projectconsoleservlet/*" /> </UriGroup> <Route ServerCluster="profile1_Cluster" UriGroup="profile1_Cluster_URIs" VirtualHostGroup="default_host"/> <UriGroup Name="profile2_Cluster_URIs"> <Uri Name="/ReqWeb/*"/> ~~~~~~~~~~~~~~~此值原先为/ReqWeb/*.jsp, 这个过滤器的默认设置并不正确,会导致浏览器端无法看到页面上的图像原素。 因此修改这个过滤器为*. <Uri Name="/ReqWebservlet/*"/> </UriGroup> <Route ServerCluster="profile2_Cluster" UriGroup="profile2_Cluster_URIs" VirtualHostGroup="default_host"/> </Config> |
致此,配置文件的修改结束。重新启IHS 服务器是变更生效。
这样我们可以从任何一个浏览器,输入以下的地址来访问CQWEB和REQWEB:
Http://<IBM Http Server IP Address>/cqweb/login Http:// <IBM Http Server IP Address>/ReqWeb/Login_Page.jsp |
因此在这样一个架构下,我们实现了由IBM HTTP SERVER进行转发,将CQWEB和REQWEB分布部署的目标。在这样一个架构下,分布式的服务器提高了整体的性能,并且降低了单一服务器宕机对整个系统带来的影响。
同时,这个架构还有很高的灵活性。比如,下面将介绍如何引入第二台Rational ClearQuest Web Application Server实现CQWeb的“负载平衡”。这里实现负载平衡的原理在于,当Http Request传输到IBM Http Server时,由IBM Http Server根据一定的配置与算法,实现数据包的自动转发。当数据请求处理完毕后,数据包将从ClearQuest Web Application Server统一返回到IBM Http Server,从而提供给客户端。在如下的一个拓扑结构图中:
图6:如何引入第二台 Rational ClearQuest Web Application Server 实现 CQWeb 的“负载平衡”引入的两套ClearQuest Web Application Server和ClearQuest Server分别连接到同一个ClearQuest DBSet上,ClearQuest Web Application server与 ClearQuest Server之间的配置如前文所述,这里重点讲一下如何配置这两台ClearQuest Web Application Server(下面简称为AppServer1与AppServer2,对AppServer1的配置同样适用于AppServer2)。
① 打开AppServer1中位于如下目录中的server.xml文件
C:\Program Files\ Rational\ Common\ rwp\ EmbeddedExpress\ profiles\ profile1\ config \cells \ DefaultNode \nodes \DefaultNode \server \server\
在文件中,我们找出这样一段描述:
<components xmi:type="applicationserver.webcontainer:WebContainer" xmi:id="xxxxxxxxxxxxx |
在这段描述之后,紧接着我们添加以下一段属性的描述:
<properties xmi:id="WebContainer_1162360598047" name="HttpSessionCloneId" value="12345" required="false"/> |
在 properties 段中,xmi:id 值必须和 components 段中的 xmi:id 值相同,而 value 所赋予数值则必须保证在这些 ClearQuest Web Application server 中保持唯一。
② 对于 AppsServer2 上的 server.xml 文件,做同样的修改
③ 对 IBM Http Server 上的 plugin-cfg.xml 文件继续进行修改,打开 c:\program files\ Rational\ Common\ rwp\ EmbeddedExpress\ Profiles\ plugin-cfg.xml
<Config> <Log LogLevel="Error" Name="_SERVER_ROOT_/logs/http_plugin.log"/> <Property Name="ESIEnable" Value="false"/> <Property Name="ESIMaxCacheSize" Value="1024"/> <Property Name="ESIInvalidationMonitor" Value="false"/> <VirtualHostGroup Name="default_host"> <VirtualHost Name="*:80"/> <VirtualHost Name="*:10080"/> <VirtualHost Name="*:11080"/> <VirtualHost Name="*:443"/> </VirtualHostGroup> <ServerCluster Name="profile1_Cluster" CloneSeparatorChange="false" LoadBalance="Round Robin" RemoveSpecialHeaders="true" RetryInterval="60"> <Server CloneID="12345" ConnectTimeout="60" LoadBalanceWeight="1" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Name="server1"> 这里的CloneID就是对应我们之前在server.xml中设定的Value值。 ConnectTimeout时间是取决于IBM Http Server和ClearQuest Web Application Server之间的网络质量。 如果网络速度比较慢,这个值需要设置的大一些。而LoadBalanceWeight是用来标识在Round Robin算法中, 当前的ClearQuest Web Application Server的权重。如果这个值设置的比较大,那么在一定的时间内, 它将相比其他的ClearQuest Web Application Server接收更多的Http Request。 <Transport Hostname="APPSERVER1" Port="10080" Protocol="http"/> ~~~~~~~~~~这里的APPSERVER1就是 ClearQuest Web Application Server所在服务器的机器名。 </Server> <Server CloneID="12346" ConnectTimeout="60" LoadBalanceWeight="1" Name="server2"> <Transport Hostname="APPSERVER2" Port="10080" Protocol="http"/> </Server> <PrimaryServers> <Server name="server1"/> <Server name="server2"/> </PrimaryServers> ~~~~~~~~~~~~~~~~这里列出的server将被IBM Http Server识别, 并将数据包转发到这些Server上。 </ServerCluster> <ServerCluster Name="profile2_Cluster"> <Server Name="server1"> <Transport Hostname="192.168.205.221" Port="11080" Protocol="http"/> </Server> </ServerCluster> <UriGroup Name="profile1_Cluster_URIs"> <Uri Name="/wre/*"/> <Uri Name="/wreservlet/*"/> <Uri Name="/cqweb/*"/> <Uri Name="/cqwebservlet/*"/> <Uri Name="/projectconsole/*" /> <Uri Name="/projectconsoleservlet/*" /> </UriGroup> <Route ServerCluster="profile1_Cluster" UriGroup="profile1_Cluster_URIs" VirtualHostGroup="default_host"/> <UriGroup Name="profile2_Cluster_URIs"> <Uri Name="/ReqWeb/*"/> <Uri Name="/ReqWebservlet/*"/> </UriGroup> <Route ServerCluster="profile2_Cluster" UriGroup="profile2_Cluster_URIs" VirtualHostGroup="default_host"/> </Config> |
④ 保存修改好的plugin-cfd.xml文件,并且重新启动IBM Http Server。
这样你就可以在客户端通过浏览器正常访问CQWeb,在访问的过程中,你无需关注是哪一台ClearQuest Web Application Server处理了你的Http Request,因为这一切都在IHS的后台自动处理好了。
除了以上提到的一些配置外,当需要引入IBM Rational ClearCase Web产品(以下简称为CCWeb)时,我们可以同样将CCWeb部署在IHS服务器之后,通过修改IHS服务器上的httpd.conf文件,打开IHS服务器的反向代理功能,这样在访问CCWeb的时候,只需要在浏览器的地址栏中输入 Http://<IBM Http Server IP Address>/ccweb 即可。这些设置和之前的部署即不冲突,又是对IHS服务器功能的充分挖掘。由于IHS服务器地址是面向外界的唯一入口,而后面的CQWeb,ReqWeb以及CCWeb服务器都得到了很好的隐藏,因此整个系统的安全性也得到了进一步的提高。
总结
本文讲向您了介绍如何将IBM Rational ClearQuest Web/RequsitePro Web 与IBM HTTP SERVER分布部署于一个企业应用场景中,并给出了详细的服务器安装配置过程与具体操作。希望能对读者有所帮助。
参考资料
- 请访问 IBM developerWorks 中国网站 Rational 专区 能得到更多关于IBM IBM Rational ClearQuest Web/RequsitePro Web 的使用文章