|
摘要
目前,实施了SAP R/3系统的企业迫切需要使封闭的资源开放,以便于降低IT运维费用,并能使应用系统灵活以支撑快速变化的业务。由于SAP R/3系统十分复杂,且必须使用其私有的通讯方式,若要使其功能服务化需要有开放的、易用的、可靠的中间件产品支撑。本文讨论以AquaLogic Service Bus与SmartConnect产品为基础使SAP R/3系统的功能服务化,以及如何在以上产品的支持下与SAP R/3系统的功能交互。
背景
SAP R/3系统是世界知名的ERP系统,在历经了30多年的功能扩充与完善,现在已经异常的庞大。SAP R/3系统使用私有的RFC协议进行通讯,接口调用方式也采用私有的方式,在这种情况下使SAP R3系统实现功能的服务化非常困难。
虽然SAP公司在做使系统开放的努力,不过若使现有R/3系统的功能服务化需要逐步进行产品升级,而这种方法代价高昂,使众多企业感觉积重难返;而开放的中间件产品又难以与SAP R/3系统方便的互联。
解决方案
当前众多的企业都在寻找新的方案使其在套装软件上的投资回报能够得以延续。但他们很难将套装软件无缝地集成到其不断变化的业务流程中,主要的原因是缺少便宜的、基于标准的解决方案来填补“缝隙”。而面向服务的解决方案可以让企业使用一致的方法将套装软件的功能暴露出来形成共享服务,从而整体地融入企业范畴的业务流程中。而这样的基于SOA的整合方案使企业提高了业务敏捷性以获得更高的回报。
BEA针对一些被广泛使用的封闭的ERP系统与CRM系统的功能服务化的需求,推出了SmartConnect产品。SmartConnect v2.6运行在AquaLogic Service Bus (以下简称为ALSB)企业服务总线上,提供了对于这些ERP系统与CRM系统的连接、接口数据结构查看、导出WSDL和XSD文件以及测试等功能。对于SAP的ERP系统来说,在ALSB上创建的以mySAP为传输类型的代理服务为其系统提供了外部的RFC服务器的功能,可用ABAP开发函数向外部发送请求;而以mySAP为传输类型的业务服务则可将外部的请求转发到SAP ERP系统进行处理。通过ALSB与外部系统交互的报文格式可以是开放的XML,也可以根据要求进行定制。
通过SmartConnect产品支持,ALSB进一步提升了对于异构系统的联通性。而ALSB具有的稳定性、灵活性、安全性和易用易维护等特性使用户可以放心地将系统级需求交由ALSB实现,而集中精力处理业务方面的问题。
BEA AquaLogic Service Bus产品简介
ALSB,属于 BEA AquaLogic™ 系列的服务基础设施产品。ALSB管理企业系统中消息的路由和转换,将这些功能与它的监视和管理功能组合在一起,为实现和部署面向服务的体系结构(Service-Oriented Architecture,即SOA)提供了一个统一的软件产品。
ALSB是一个基于配置并由策略驱动的企业级服务总线(Enterprise Service Bus,即ESB),目的是在异构服务(不仅仅是 Web 服务,还包括 Java、.Net、消息服务等)与传统端点之间连接、调解和管理交互。它独创性地将企业服务总线的集成功能与单一产品中的操作服务管理结合起来,带来有效、无缝的用户体验。通过灵活的部署选项、运行时策略推行以及与业务服务注册表的自动集成,ALSB可以在任何规模下处理SOA的部署、管理以及实施监管挑战。ALSB拥有智能化的元数据驱动配置接口,可以通过服务仲裁和管理来加快服务的集成与部署,并最终证明SOA能适应将来的服务端点变化。ALSB的构建完全符合关于可靠性、可用性、可伸缩性和性能的标准,从而为分布式部署提供一流的功能。在其控制台中,可以监视服务、服务器和操作任务。可以配置代理服务和业务服务、设置安全性、管理资源以及捕获数据以进行跟踪或调整审核。通过其控制台,可以对面向服务的环境中的更改快速有效地作出响应。
ALSB运行在WebLogic Server(以下简称WLS)之上,利用WLS的支持提供了安全、高度的可用性、可伸缩性及可靠的功能。
BEA SmartConnect产品简介
SmartConnect产品是一个以SOA为基础,面向企业集成和管理其套装软件应用的完整的解决方案。它基于ALSB产品的强大的服务集成能力,能够将套装软件的功能形成开放的、基于标准的共享服务。这些产品的组件支持套装软件应用的最新版本。

图 1 SmartConnect - 轻量级的、广泛适用的、面向服务的ERP集成解决方案
SmartConnect为WebLogic与AquaLogic产品家族的产品提供了面向服务的套装软件的整合方法:
- 一个可使ERP系统的功能被抽象成为共享服务的集成设计环境;
- 制订自定义的业务逻辑,数据可以根据规则被动态路由到合适的应用去处理;
- 预制的对于套装软件应用的连接性,与ALSB完美结合,从而达到了与套装软件连接的低延时、高性能与高度的灵活性,并保持了SOA的复用与敏捷等特性。
使SAP R/3功能服务化
首先需要安装ALSB v2.6PR1与SmartConnect v2.6产品并配置好所依赖的sapjco连接器。
ALSB v2.6.1具体的安装配置步骤请详见[1]。
SmartConnect v2.6需要安装到ALSB v2.6.1相同的产品目录之下[2],见图2;而若只用于连接SAP的ERP系统,则可以不安装Siebel的CRM系统的传输连接器,见图3。

图 2 SmartConnect安装目录

图 3 SmartConnect组件
从SAP的服务网站下载适合的平台的sapjco软件包,并展开到目录中。对于Windows XP SP2操作系统,需要将librfc32.dll文件拷贝到%Windows%\system32目录下,将sapjco.jar加到CLASSPATH变量中,并将sapjco软件包的展开目录加入系统Path变量中,以便于jvm可以加载sapjcorfc.dll类库。
查看SAP R/3系统信息
在配置好sapjco之后,可以运行例子查看SAP R/3系统的概要信息。如图4。

图 4 SAP R/3概要信息
调用SAP R/3系统的BAPI
在ALSB上创建传输类型为mySAP的业务服务,配置SAP服务器地址和连接账户[3],如图5。
 
图 5 mySAP业务服务配置
随后组织数据,调用SAP R/3系统中的名为Z_TR012I的函数来测试,报文格式如图6。

图 6 Z_TR012I的测试报文
用ALSB的测试页面进行测试,如图7。

图 7 Z_TR012I测试结果
作为外部RFC服务由SAP R/3系统调用
在ALSB上创建传输类型为mySAP的代理服务,配置SAP服务器地址、SAP网关名、外部RFC服务的程序ID和连接帐户[3],如图8。
 
图 8 mySAP代理服务配置
在测试此服务之前需要在SAP R/3系统中配置RFC目的地,本例中使用JCO_T1连接,如图9,10,11。

图 9 SAP R/3系统中RFC目的地列表

图 10 RFC目的地的程序ID配置

图 11 RFC目的地的主机与网关服务配置
之后,在SAP R/3的前端程序中组织数据进行测试,如图12。

图 12 在SAP R/3系统中调用外部RFC服务
SmartConnect的资源管理器
SmartConnect除了支持与SAP R/3系统方便的互联,还提供了将SAP R/3的功能接口导出为标准的WSDL的功能。访问SmartConnect资源管理器 http://hostname:port/iwae,连接SAP R/3系统后,可以浏览和查询SAP R/3系统的功能,并能够将其的接口和数据结构导出为标准的WSDL和Schema文件或对其功能进行测试。如图13,14,15。

图 13 应用SmartConnect工具之连接

图 14 应用SmartConnect工具之查询结果

图 15 应用SmartConnect工具之接口导出与测试
在生成WSDL或者Schema文件后,就可以方便的将SAP R/3系统的功能封装为标准的Web Service与外部系统交互了。
总结
综上所述,SmartConnect提升了ALSB产品对于ERP系统的连接性,为ERP系统功能的服务化提供了简单、实用、高效、灵活的解决方案。使企业能够将其已经购买实施的ERP系统应用与其变化着的业务融合起来,满足其目前和未来的业务需求和IT运行维护的需求,提高应对业务变化的敏捷性,同时也降低了总体拥有成本。也使ALSB具有了更强的竞争力。
参考资料
[1] AquaLogic Service Bus v2.6 PR1文档http://edocs.bea.com.cn/alsb/docs261/index.html
[2] Smart Connect安装手册http://e-docs.bea.com/smartconnect/docs26/pdf/SmartConnect_Install.pdf
[3] Smart Connect 用户手册http://e-docs.bea.com/smartconnect/docs26/pdf/SmartConnect_mySAP_User.pdf
|