通过WebSphere Message Broker Toolkit开发及部署WebSphere Adapter应用

宋晗 ([email protected]), 软件工程师, IBM

 

2009 3 24

 

本文将主要介绍如何在 WebSphere Message BrokerWMB)中使用 WebSphere Business Monitor去监听WebSphere Adapters。首先介绍 WMBWebSphere Message Broker ToolkitWMBT)的产品架构和基本概念,以及 如何在开发工具WMBT中开发WebSphere Adapter的应用,最后如何开发WebSphere Business MonitorWBM)模块将WebSphere Adapter中的企业数据以图形(Dashboard)展现。

 

一、WMBWMBT简介

WebSphere Message Broker WMB)是基于MQ为信息存储平台的企业应用服务器,所有部署在WMB的应用程序都必须以MQ信息格式进行交互,WebSphere Message Broker Toolkit WMBT)专门用于开发部署在WMB的应用程序,这里以JCA SAP Adapter为例:

二、JCA SAP Adapter简介

SAP Adapter可以方便的将数据从SAP应用程序与不同的程序接口进行相互交互,类似于J2EE应用程序和SCA服务类组建架构,SAP Adapter可以连接运行在SAP Web服务器上面的SAP应用程序。

SAP Adapter支持许多SAP继承接口,包括BAPIRFCALEQISS等。具体请看下图:

三、构建JCA SAP Adapter应用程序(以BAPI Outbound为例)

1.  首先预先准备环境,WMBWMBTDB2MQ的安装以及第三方SAP JCO API,这里不对以上软件的安装进行说明,参考其它相关文档,本文章不再赘述。

2.  环境建立好后,用户可以自己创建BrokerConfiguration Manager

3.  打开WMBT,默认的是Broker Application Development透视图,将sap适配器导入到工作区。

4.  导入之后,添加所必需的依赖文件,右键点击导入的sap适配器,在列表中选择属性,选择Java Build Path,将aspectjrt.jarffdc.jarffdcSupport.jar以及最重要的SAP JCO API sapjco.jar),前三个文件你可以从WebSphere Process Serverlib目录得到,SAP JCO API可以从相应的SAP公司网站中获得。点击OK

5.  然后选择 新建 -> 适配器连接,从这一部开始将会生成所有的SAP适配器应用程序所需要的BOs以及运行文件,选择“IBM WebSphere Adapter for SAP SoftwareIBM:6.1)”,点击下一步。

6.  继续点击下一步,进入下一图:

7.  选择Outbound,点击下一步。在下图中填写SAP服务器的连接信息(用户名、密码、服务器地址、Client、语言以及编码信息),并且在“Select the SAP interface”中选择Outbound,点击下一步。

8.  在这一步,将会从SAP服务器中取出我们所需要的数据,选择“RFC”并点击过滤器按钮 ,在弹出窗口中输入你所要查询的数据的格式如下图,这里可以使用通配符(? – 代表任意一个字符,* – 代表任意多个字符),然后点击OK

9.  展开RFC节点,将会列出你所要查询的数据如下图,选择BAPI_CUSTOMER_GETLIST,并点击 ,将选择的数据加入到右侧的列表中,点击下一步。

10.              在下一图中填写必要的信息,并将你在运行时所需要的执行的操作加入到操作列表中,如下图,点击下一步。

11.              在下一图中,只需要填写一下密码信息,点击下一步,创建一个信息集项目(SAPOutbound),点击完成之后,所有生成的文件将会保存到SAPOutbound工程中。

12.              现在我们需要创建信息流工程,在这个工程中你可以通过MSQL语言去实现数据逻辑处理的流程,首先创建一个信息流工程,命名为TestSAPOutbound,并在下一个界面中选择所需要以来的项目,点击完成。

13.              创建完信息流工程之后,需要创建信息流,这里你可以自己任意命名,创建好之后,信息流编辑器会自动打开,你需要将SAP适配器节点以及数据逻辑处理节点和MQ输入输出节点拖进此编辑器中,通过OUT类型连接它们,完成一个整体的逻辑处理流程,如下图:

14.              MQInput节点所指定的队列信息,你需要手工在MQ中创建,这里不再赘述。

15.              Compute节点中可以写入MSQL语句来处理复杂的数据流成:

DECLARE ns NAMESPACE 'http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/sapcustomerresultset';

 

CREATE COMPUTE MODULE BapiRS1MF_Compute

       CREATE FUNCTION Main() RETURNS BOOLEAN

       BEGIN

              CALL CopyMessageHeaders();

              -- CALL CopyEntireMessage();

             

              SET OutputRoot.XMLNSC.ns: SapcustomerWrapper.SapBapiCustomerGetlist.MaximumNumberOfCustomers=3;

              SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.CustomerNumber1='0000000010';

              SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.CustomerNumber12217378='0000000030';

              SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.InclusionExclusionCriterionSignForRangeTables='E';

              SET OutputRoot.XMLNSC.ns: SapcustomerWrapper. SapBapiCustomerGetlist.SapIdrange.SelectionOperatorOptionForRangeTables='EQ';

             

              RETURN TRUE;

       END;

 

       CREATE PROCEDURE CopyMessageHeaders() BEGIN

              DECLARE I INTEGER 1;

              DECLARE J INTEGER;

              SET J = CARDINALITY(InputRoot.*[]);

              WHILE I < J DO

                     SET OutputRoot.*[I] = InputRoot.*[I];

                     SET I = I + 1;

              END WHILE;

       END;

 

       CREATE PROCEDURE CopyEntireMessage() BEGIN

              SET utputRoot = InputRoot;

       END;

END MODULE;

这样整个工程就已经全部生成,现在需要将它部署到 WMB Broker 中,并在输入队列中输入测试数据,触发 Compute 节点中 MSQL 的流程,最终将输出的结果保存到 Trace 文件中。

1.GIF

2.GIF

3.GIF

4.GIF

5.GIF

6.GIF

7.GIF

8.GIF

9.GIF

10.GIF

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21341930/viewspace-606029/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21341930/viewspace-606029/

你可能感兴趣的:(通过WebSphere Message Broker Toolkit开发及部署WebSphere Adapter应用)