ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 智慧的集成-使用IBM WebShpere Adapters简化企业级IT系统的集成开发-零code集成

智慧的集成-使用IBM WebShpere Adapters简化企业级IT系统的集成开发-零code集成

原创 Linux操作系统 作者:wangbog 时间:2009-06-15 11:37:54 0 删除 编辑
本文以IBM WebShpere Adapter for SAP Software为例,简要介绍如何通过Adapter产品实现对SAP EIS系统的快速连接,实现对SAP系统的零code集成。

Part 1. 简要介绍以及原理

1.Adapters是什么,能干什么?两大功能。

WebSphere Adapter是IBM对Java EE Connector Architecture(JCA)标准的实现。它提供了一种将已有企业信息系统基础设施与IBM WebSphere企业中间件集成的机制。

WebSphere Adapter同时也实现了Enterprise MetaData Discovery(EMD)规范。通过提供一套基于向导图形界面工具,使用户能够快速、方便、准确的发现并导入目标系统的数据定义和交互协议,而不必编写代码。

WebSphere Adapter提供的服务能够快速轻松的支持企业遗留应用程序、ERP、HR、CRM与供应链系统,帮助企业便利、高效地整合现有资源,使企业的信息系统整合架构具有更好的可扩展性。


2.Adapter的架构

下图为IBM WebShpere Adapter for SAP Software的工作示意图,由此我们可以看出,Adapter的作用实际就是简化用户对EIS的操作,使其透明。用户可以把与EIS交互的工作委托给Adapter,而用户只关心自己的也无逻辑以及如何使用不同的Adapter实现对现有系统的整合。


3.为什么说是零code开发

WebSphere Adapter符合JCA规范,其返回给上层程序的结果是便于管理的,因此无需在做特殊的处理即可直接使用其结果数据。而与EIS的交互有课以通过EMD和Runtime功能得以实现,因此对于一般的应用场景,无需再编写多余的code即可实现功能。

对于不同EIS的集成整合,也可以通过IBM WebSphere Integration Developer(WID)以Business Process Execution Language(BPEL)的方式,通过配置BPEL节点以及很少code来进行整合。关于这部分内容的介绍,请关注后续文章。

 

4.     IBM WebShpere Adapters的两大功能

A.EMD(Enterprise MetaData Discovery),开发阶段,通过EMD功能连接EIS,浏览、选择并且生成服务描述(service descriptions),以供runtime功能使用。

B.Runtime,使用阶段,将EMD生成的服务描述项目(service descriptions)部署在runtime server,以供上层逻辑程序调用。


Part 2. 功能展示

下面我们就以IBM WebShpere Adapter for SAP Software的BAPI outbound功能为例,介绍如何使用Adapters。

 

环境:

IBM WebSphere Integration Developer(WID)6.2 —— 基于Eclipse的开发工具,良好地支持IBM WebShpere Adapters。

IBM WebSphere Process Server(WPS)6.2 —— 基于IBM WebSphere Application Server,再此基础上提供了一些良好的业务逻辑支持。

IBM WebShpere Adapters —— 包含多种Adapters产品,如SAP,Oracle E-Business Suite,PeopleSoft,Siebel Business Applications,JD Edwards EnterpriseOne等,用以连接不同的企业级ERP、HR、CRM系统。另外还包括一些通用技术的Adapters,如Email,FTC,JDBC,FlatFile等。

 

1.     EMD

打开WebSphere Integration Developer(WID),默认试图为Business Integration。

 

在左侧Business Integration Panel中右键单击鼠标->New->Other…,出现如下Panel。选择External Service,Next

 

在选择External Service的Panel中,选择Adapters->SAP,Next

 

6.2版本的WID中已经集成了对应版本的IBM WebSphere Adapter for SAP Software,请在这个Panel中选择一个Adapter。注:IBM WebSphere Adapter for SAP Software 包含支持local transaction的和不支持local transaction的两个版本,我们可以根据实际的业务需要选择一个版本。关于local transaction的更多介绍,可以参考JCA规范的相应文档。我们在此选用不带local transaction支持的adapter(如图)。

 

接下来,EMD会为我们生成一个Adapter的Connector project,此处我们可以为其指定一个名称或直接使用默认的project名称。另外EMD要求我们选择一个Target runtime,此处我们选择WebSphere Process Server v6.2。

 

Next之后,EMD会要求我们选择dependency files。此处所谓的dependency files是指连接SAP EIS所需要的driver文件。我们知道,Java是通过JCo(SAP Java Connector)来连接SAP系统的,JCo的作用类似于JDBC driver,都是Java连接外部应用的driver。JCo是由SAP公司提供的,6.2版本的SAP Adapter支持2.x版本的Jco,当前推荐的稳定版本为JCo 2.1.8。除了一个jar包外(sapjco.Jar),还有另外两个binary文件(对于windows,它们是librfc32.dll和sapjcorfc.dll)需要提供。

 

Next之后的Panel,EMD要求我们选择交互方式,只有入站(Inbound)和出站(Outbound)两种。入站和出站都是从Adapter的位置而言的,入站指的是进行入站操作时,EIS数据发生任何改变都会生成相应事件,适配器通过主动poll或者被动push,发现事件后查询相应EIS数据,将其发送到特定目的端;出站指的是进行出站操作时,应用程序通过适配器对EIS数据执行CRUD等操作,或者调用EIS提供的对外接口与服务。此处我们选择出站(Outbound)。

 

Next之后,EMD要求我们输入SAP系统的连接信息,并且要求用户选择一个SAP Interface。SAP Adapter共支持11种不同的interface(Inbound+Outbound)以满足不同的业务需要。关于不同Interface各自侧重的功能,请参考IBM WebSphere Adapter for SAP Software的User Guide。此处我们选择BAPI(Outbound),输入完毕后选择Next。

 

从接下来的Panel开始就是EMD的核心功能Object Discovery了,在此处EMD会通过用户的输入条件自动查找并筛选SAP上的对象并返回给用户,此过程省却了用户手动coding的的工作。对于SAPAdapter,EMD提供了两种搜索方式RFC(Remote Function Call)和BOR(Business Object Repository),RFC会根据用户的输入条件列出所有可用的Object(对于我们选的BAPI interface,EMD会列出BAPI function list),BOR会把结果以Functional group的形式返回。

我们在此Panel中点击“Create or edit filter”按钮。

 

之后会弹出一个要求用户输入Filter的Panel,我们可以根据BAPI的name或者description进行查找,支持通配符*。另外我们还可以指定返回结果的最大条数,以防返回结果数据量过大而耽误过多时间。

我们在此输入BAPI的名称BAPI_CUSTOMER_GETDETAIL。点击OK。

 

之后返回到刚才的Object Discovery Panel,点击RFC左侧的+号使其展开,EMD便会自动根据我们刚才输入的条件对SAPserver进行查询,很快就会找到我们输入的BAPI。我们选中这个BAPI,点击>按钮将其添加到Selected Object中。

 

点击>按钮后会弹出一个配置这个BAPI的Panel,此处可以配置这个BAPI的可选参数,主要包括import,outport和tabel参数。另外还可以配置一些高级的属性,比如使用SAP中的field名称直接生成我们Adapter会用到的Business Object中的field名称,在默认情况下Adapter会对默认SAP中的field名称进行处理,它会结合每个field的description来生成Business Object中的field名称,以便于用户理解。具体信息请参考IBM WebSphere Adapter for SAP Software的User Guide。

此处我们不进行配置,使用默认值,点击OK。

 

这样,BAPI_CUSTOMER_GETDETAIL就添加好了,EMD返回到Object Discovery Panel。用户还可以重复刚才的过程添加多个BAPI。

我们在此就不再添加其他BAPI了,直接点击Next。

 

之后的Panel,EMD要求用户添加operation。EMD默认提供了CRUD四种operation,我们可以添加一个或多个operation,并为每个operation指定一个我们刚刚选择的BAPI。此处我们添加一个Retrieve operation,并将BAPI_CUSTOMER_GETDETAIL指定给它。

实际上,四种operation的名字与真实的操作并无直接联系,选择比较好记住的名字只是为了开发方便不宜混淆。

 

添加完operation后,我们再输入一个service operation的名称,任意起名。此处我们输入“Customer”。这个Panel上还有一些其他的高级功能,我们暂时不会用到,如需了解可参考User Guide。点击Next。

 

之后的Panel我们再次输入SAP的连接信息。

问:之前的EMD过程中我们已经输入过一次SAP的连接信息了,为何此Panel会再次要求我们输入?

答:因为就像前面介绍过的那样,Adapter实际包括两部分主要功能,EMD和Runtime。之前我们输入的连接信息是EMD要用到的,用来进行对SAP上的Business Object进行搜索和生成Adapter要用到的Business Object(这就是我们到目前为止所体验的EMD功能)。在这个页面配置的SAP连接信息实际上是提供给Runtime用的,由于像BAPI_CUSTOMER_GETDETAIL这样的BAPI function是内置在SAP系统中的,用户如购买相同版本的SAP系统,这个BAPI应该是完全一样的,这样的话我们刚刚做的EMD生成的Business Object实际上也是可以用在另外一台同版本的SAP系统上的。如此设计是为了提供用户在开发上的便利,用户完全可以用一台备份SAP来进行Adapter的集成开发,从而不影响线上SAP系统的使用。当然此功能的前提是两台SAP系统的版本一致或至少保证BAPI_CUSTOMER_GETDETAIL的版本一致。

再此我们使用相同的SAP连接信息。Next。

 

之后我们新建一个Module保存刚才所做的工作,过程比较简单,就不再进行介绍了。

 

至此,EMD功能完成,我们检查一下都生成了哪些Project。切换到J2EE试图,我们看到一共有5个Project生成了:

CWYAP_SAPAdapter:Adapter的project,如我们多次运行EMD生成多个module,则可共用同一个adapter project。

BAPI_OUTBOUND_GETDETAIL:EMD生成的核心Module,其中的.xsd文件即为Adapter为我们生成的Business Object文件。另外一些如.import和.wsdl文件等就是供runtime使用的一些配置文件。

BAPI_OUTBOUND_GETDETAILAPP/EJB/Web:End point projects,实际就是Outbound的起点或者Inbound的终点。此处实际为一个EJB项目。这部分project实际并不属于Adapter,EMD生成他们实际是为了简化用户的开发,用户可以直接利用这些EJB项目植入自己的逻辑code。

 

可以看到XSD格式的Business Object文件其实就是把SAP上的对象以xml格式(我们称这种格式为SDO)的形式表示出来。

 

 

2.     Runtime

首先,添加一台WepSphere Process Server(WPS)作为runtime的server。

在Services Panel右键单击->New->Server。我们添加本地的WPS。

成功添加完WPS后我们既可以部署刚才EMD生成的App project到这台Server上。

WID为我们提供了出色的Test Component功能,我们可以用此功能来测试Runtime。右键单击SAPOutboundInterface->Test Component。

 

在这里我们输入input data。对于BAPI_CUSTOMER_GETDETAIL,我们只需输入一个值CustomerToBeRequired=0000000001。然后点击Continue执行runtime操作。

 

很快,结果解返回了,我们可以看到,这个BAPI的返回结果显示在了Return Parameters中(PostalCode、City、CountryKey等)。

 

至此,Runtime调用完毕。我们看到,整个过程我们没有写一行code,却完成了对SAP上的BAPI_CUSTOMER_GETDETAIL的调用。除了我们刚刚看到的BAPI outbound功能,SAP Adapter还支持很多其他的Interface,结合具体的业务逻辑是用相应的Interface,可以大大简化用户的集成开发。用户需要做的只是连接上自己的客户代码,而与SAP的交互可以完全交给Adapter来完成。


作者简介


 王博,现就职于IBM CDL,从事IBM WebSphere JCA Adapters的测试工作。目前主要专注于WebSphere Adapter for SAP Software,以及在WebSphere Process Server, WebSphere Application Server和WebSphere Message Broker上实现与SAP系统的业务整合。可以通过wangbowb@cn.ibm.com联系作者。


余珊,现就职于IBM CDL,从事WebSphere Adapter的测试工作,在SOA、自动化测试工具开发方面具有丰富的实践经验。目前主要专注于WebSphere Adapter for SAP Software,以及在WebSphere Process Server, WebSphere Application Server和WebSphere Message Broker上实现与SAP系统的业务整合。可以通过yushan@cn.ibm.com联系作者


方海伟,现就职于IBM CDL,目前从事WebSphere SAP Adapter在WebSphere Process Server, WebSphere Application和WebSphere Message Broker上实现与SAP系统的整合测试工作,对SOA、使用WebSphere MQ实现系统间异步通信等方面比较感兴趣。可以通过fanghaiw@cn.ibm.com联系作者

 

 

 

 

参考资料

 

WebSphere Adapters v6.2信息中心

http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/index.jsp?topic=/com.ibm.wbit.620.help.adapter.emd.ui.doc/topics/timpexpapps.html

J2EE Connector Architecture 1.5规范

http://java.sun.com/j2ee/connector/index.jsp


Enterprise Metadata Discovery规范

http://www.ibm.com/developerworks/cn/java/j-emd/


Synchronize data between Siebel and SAP with WebSphere Adapters and WebSphere Process Server

http://www.ibm.com/developerworks/websphere/library/techarticles/0701_chung/0701_chung.html


WebSphere JCA Adapter 开发入门

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0706_dongqing/

Snap1.jpg

Snap2.jpg

Snap3.jpg

Snap4.jpg

Snap5.jpg

Snap6.jpg

Snap7.jpg

Snap8.jpg

Snap9.jpg

Snap10.jpg

Snap11.jpg

Snap12.jpg

Snap13.jpg

Snap14.jpg

Snap15.jpg

Snap16.jpg

Snap21.jpg

Snap22.jpg

Snap27.jpg

Snap28.jpg

Snap29.jpg

structure.jpg

Snap1.jpg

Snap2.jpg

Snap3.jpg

Snap4.jpg

Snap5.jpg

Snap6.jpg

Snap7.jpg

Snap9.jpg

Snap10.jpg

Snap11.jpg

Snap12.jpg

Snap13.jpg

Snap14.jpg

Snap15.jpg

Snap17.jpg

Snap21.jpg

Snap22.jpg

Snap27.jpg

Snap28.jpg

Snap29.jpg

structure.jpg

Snap8.jpg

Snap16.jpg

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

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-23

  • 博文量
    1
  • 访问量
    4407