UML软件工程组织

 

 

如何在企业应用中分布部署 IBM Rational ClearQuest Web
/Requisite Pro Web 与 IBM HTTP Server
 
2007-12-29 作者:刘强 来源:IBM
 
本文内容包括:
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 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 的软件安装向导
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 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

选择对应的产品组件进行安装。安装完毕后,我们需要修改配置文件,以连通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

保存修改好的设置后,重启操作系统使应用生效。

4. IBM Http Server

在这个服务器上,我们将安装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。安装期间,有以下几项需要注意:

  1. 我们选择了IHS作为我们的WEB SERVER。
  2. 因为我们将IHS和WEB APPLICATOIN SERVER部署在不同的服务器上,因此在选择模式的时候,我们选择“Remote”方式
  3. 选择IHS安装目录下,httpd.conf文件所保存的路径,默认情况下,可以在C:\Program Files\ IBM\ HTTPServer\ conf\下找到。
  4. 选择默认的web server的名字,比如webserver1
  5. 在填写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 的“负载平衡”
如何引入第二台 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 的使用文章
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号