技术开发 频道

让WebSphere Adapters变得更智慧

【IT168 专稿】    “Adapter需要配置的属性太多了,尤其每次在进行Node Level部署的时候,还要手工逐一在管理控制台上填写,这太麻烦了!!”

    “以前在WAS和WPS上为Adapter配置的信息都到哪去了?不能保存?难道要抄下来下次再对照着一一重新配置?!”

    “要将目前包含Adapter的应用迁移到所有分公司数十台服务器上,并在日后能以最快速度定制Adapter的配置以随时响应新的业务需求,我们的人手和时间远远不够啊……”

    你在使用WebSphere Adapter的过程中,是否遇到过上述的种种烦恼?如果是,那么本文提供的解决方案将帮助你摆脱烦恼,使WebSphere Adapter的配置管理工作变得更高效、更智慧。

第一部分 WebSphere Adapters及配置问题的引入

    WebSphere Adapters是IBM提供的一种基于JCA(J2EE Connector Architecture)规范,实现应用程序与企业信息系统(EIS)之间业务集成的资源适配器。它支持部署于多种Brokers,如WebSphere Process Server(WPS)、WebSphere Application Server(WAS)、WebSphere Message Broker(WMB)等等。目前最新版本为6.2。

    在实际使用中,WebSphere Adapters所包含的常用配置对象包括ResourceAdapter(RA)、ManagedConnectionFactory(MCF)和ActivationSpec(AS)。ResourceAdapter用于配置适配器自身的基本属性,例如标识、Trace设置等等;ManagedConnectionFactory和ActivationSpec则分别用于配置适配器进行出站(Outbound)和入站(Inbound)连接所需的属性,如用户名、密码、EIS系统信息、语言编码等等。

    WAS是IBM基于Java EE、XML和Web Service等规范实现的软件应用服务器;而WPS则是构建于WAS基础上、扩展了企业业务总线(ESB)并支持面向服务架构(SOA)的业务流程服务器。WAS和WPS都提供了管理控制台(Administrative Console)进行各种部署应用的配置管理。我们可以在图形化界面下对WebSphere Adapters的各种配置对象进行创建、删除、修改属性等操作。

    但是,在实际使用中,这种配置管理方式存在着以下几点不足:

    1. 对于数量众多的属性,如SAP Adapter中的激活规范属性就有10~20个,仍需要手工地逐一填写,较为费时费力。

    2. 管理控制台不提供属性值的保存、载入功能,这就无法对已有信息进行备份和重用。

    3. 如需将当前配置复制迁移到其他服务器环境,或要对大量服务器进行配置,这种配置管理方式的效率会极为低下。

    因此,我们应用WAS和WPS提供的wsadmin管理工具与Jacl语言,结合WebSphere Adapters的配置特点,给出了一套实现WebSphere Adapters在WPS和WAS上将配置信息导入导出为.properties文件的Jacl程序包。

第二部分 解决方案

    首先我们列出了针对每一种部署类型、每一个配置对象实现导入、导出功能的Jacl程序文件。有经验的读者可跳过后面章节,直接从本文所附的程序包中选择使用。

部署类型
配置对象
导入
导出
节点级
ResourceAdapter属性
ImportStandaloneRAProperties.jacl
ExportStandaloneRAProperties.jacl
ManagedConnectionFactory属性
ImportStandaloneConnectionFactory.jacl
ExportStandaloneConnectionFactory.jacl
ActivationSpec属性
ImportStandaloneActivationSpec.jacl
ExportStandaloneActivationSpec.jacl
应用级
ResourceAdapter属性
ImportEmbeddedRAProperties.jacl
ExportEmbeddedRAProperties.jacl
ManagedConnectionFactory属性
ImportEmbeddedConnectionFactory.jacl
ExportEmbeddedConnectionFactory.jacl
ActivationSpec属性
ImportEmbeddedActivationSpec.jacl
ExportEmbeddedActivationSpec.jacl
表1 Jacl程序文件列表

    解决方案的整体思路:

    Jacl程序从WAS或WPS中部署的WebSphere Adapter中定位RA、MCF、AS等资源对象并读取它们的属性值,并将这些属性值保存为.properties文件类型;或者从properties文件中读取属性值并写入资源对象中。这一过程可有如下几种调用方式:

    · 利用wsadmin管理工具运行Jacl程序;

    · 在Java中调用Jacl程序;

    · 在其他支持命令行工具或Jacl、Jython的自动化架构中调用(Jacl程序可方便转换为Jython程序)。

图1 解决方案的整体思路

    下面我们将对该解决方案的使用方法进行具体介绍。

    1. 用wsadmin运行Jacl脚本文件

    wsadmin工具是WAS和WPS提供的一个接受脚本语言输入的非图形化管理工具。它支持Jython和Jacl两种脚本语言,本文选取Jacl作为实现语言。

    用户可在WAS/WPS的bin目录下(${app_server_root}/bin),或概要文件的bin目录下(${profile_root}/bin)找到wsadmin.bat或wsadmin.sh。

    wsadmin命令指定-f选项用于运行脚本程序,例如:

    wsadmin.bat -f 'script.jacl'

    2. Jacl程序文件使用方法

    根据WebSphere Adapters在WAS/WPS上的部署方式不同,分为节点级(Node Level)和应用级(Application Level)。这一分类方法与根据Adapter RAR的打包方式分为独立(Standalone)RAR和嵌入式(Embedded)RAR是类似的。

    下面给出了在不同部署模式下实现WebSphere Adapter属性导入导出的程序流程图(读者可以此对照程序文件,掌握利用Jacl进行配置操作的一般方法),以及各个程序文件的使用方法说明。

    2.1 针对节点级的解决方案:

图2 节点级解决方案程序流程图–导入和导出

    命令模式:

    wsadmin -f ******StandaloneRAProperties.jacl -user <user_name> -password <password> <node_name> <adapter_name> <prop_file_name>

    wsadmin -f ******StandaloneConnectionFactory.jacl –user <user_name> -password <password> <node_name> <adapter_name> <MCF_name> <prop_file_name>

    wsadmin -f ******StandaloneActivationSpec.jacl -user <user_name> -password <password> <node _name> <adapter_name> <AS_name> <prop_file_name>

    参数解释:

    ·  ******:Import或Export

    · <user_name>和<password>:用于连接WAS/WPS管理控制台的用户名和密码。若无则不必添加-user <user_name> -password <password>

    · <node_name>:WebSphere Adapter所在的WAS/WPS节点名称,可通过管理控制台Resources ->Resource Adapters->Resource adapters获取。

    · <adapter_name>: WebSphere Adapter部署到WAS/WPS上显示的名,可通过管理控制台Resources->Resource Adapters ->Resource adapters获取。

    · <MCF_name>: ManagedConnectionFactory的名称,若无则需要先手工创建新的J2C连接工厂。可通过管理控制台Resources ->Resource Adapters ->Resource adapters -><adapter_name> ->J2C connection factories进行操作。

    · <AS_name>:ActivationSpec的名称。若无则需要手工先创建新的J2C激活规范,可通过管理控制台Resources ->Resource Adapters ->Resource adapters -><adapter_name> ->J2C activation specifications进行操作。

    · <prop_file_name>:需要导入或导出的.properties文件名。

    2.2 针对应用级的解决方案:

图3 应用级解决方案程序流程图—导入和导出

    命令模式:

    wsadmin -f ******EmbeddedRAProperties.jacl -user <user_name> -password <password> <app_name> <adapter_name> <prop_file_name>

    wsadmin -f ******EmbeddedConnectionFactory.jacl –user <user_name> -password <password> <app_name> <MCF_name> <prop_file_name>

    wsadmin -f ******EmbeddedActivationSpec.jacl -user <user_name> -password <password> <app_name> <AS_name> <prop_file_name>

    参数解释:

    · ******:Import或Export

    · <user_name>和<password>:用于连接WAS/WPS管理控制台的用户名和密码。若无则不必添加-user <user_name> -password <password>

    · <app_name>:WebSphere Adapter所在的应用模块的EAR文件名称,可通过管理控制台Applications ->Enterprise Applications获取。

    · <adapter_name>: WebSphere Adapter部署到WAS/WPS上显示的名,可通过管理控制台Applications ->Enterprise Applications -><app_name> ->Manage Modules -><adapter_module> ->Resource Adapter ->Name获取。

    · <MCF_name>: ManagedConnectionFactory的名称,若无则需要先手工创建新的J2C连接工厂。可通过管理控制台Applications ->Enterprise Applications -><app_name> ->Manage Modules -><adapter_module> ->Resource Adapter ->J2C connection factories进行操作。

    · <AS_name>:ActivationSpec的名称。若无则需要手工先创建新的J2C激活规范,可通过管理控制台Applications ->Enterprise Applications -><app_name> ->Manage Modules -><adapter_module> ->Resource Adapter ->J2C connection factories ->J2C activation specifications进行操作。

    · <prop_file_name>:需要导入或导出的.properties文件名。

    3. 操作实例

图4 SAP Adapter的ALE入站激活规范属性

    现在我们通过一个实际例子演示该程序的具体使用过程。假设我们已使用了一节点级(Node Level)WebSphere Adapter for SAP Adapter(以下简称SAP Adapter)的ALE接口在WPS上进行入站(inbound)操作。为了要将ALE入站操作所需的激活规范属性设置(如图4所示)保存下来,我们只需选用ExportStandaloneActivationSpec.jacl程序(可放在任意位置例如C:),然后通过命令窗口在WPS的概要文件的bin目录下运行下面一行命令:

    wsadmin -f C:/ExportStandaloneActivationSpec.jacl -user admin -password admin saptestwinNode03 "IBM WebSphere Adapter for SAP Software" SAP_ALE_AS C:/as.properties

图5 ExportStandaloneActivationSpec程序在命令窗口中的运行

    这样便可将所有非空的激活规范属性值轻松保存为as.properties文件。

    相反地,如果需要将已有属性导入到新的激活规范中,则在新创建激活规范后,只需一行命令,便可完成属性值从properties文件的快速导入。

第三部分 结束语

    本文提出了一套用于实现WebSphere Adapter在WAS和WPS上配置的自动导入导出功能的解决方案。该方案同样适用于WebSphere Adapter在WAS或WPS的网络部署(Network Deployment)以及集群(Cluster)环境的配置管理。

    基于本文提供的Jacl工具,以及wsadmin的丰富强大管理功能(如AdminConfig、AdminApp、AdminTask等),读者可以进一步实现WebSphere Adapter的全自动化管理解决方案(安装/卸载、启动/停止、配置/迁移等)。

    此外,本文实现该解决方案的一般思路及部分Jacl语句同样可应用于部署在WAS和WPS上的其他应用模块和资源对象的配置管理上。读者可由此举一反三,将低效、繁琐的工作变得更为高效、智慧!

   >>>>程序下载<<<<

0
相关文章