|
|
WebSphere Message Broker 是 IBM 实现企业 ESB (Enterprise Service Bus) 的关键产品之一,它为集成现有系统的各种消息提供了统一平台。SAP 系统作为企业常用的核心应用系统,常常需要集成到 ESB 中,Message Broke 提供了多种方式与 SAP 系统进行集成,本文介绍了如何在 Message Broker 的消息流中使用 SAP JCO (SAP Java Connector) 来实现对 SAP 系统的集成,并以实例讲述了具体的配置、开发和测试过程。
背景知识
Message Broker 介绍
IBM WebSphere Message Broker 做为高级企业服务总线的实现平台,在 IBM SOA (Service Oriented Architecture)架构应用中扮演着非常重要的角色。在企业应用整合中,WMB 具有高性能,高可靠性的特点,为基于标准和非标准的应用程序及服务提供了连通性和通用的数据转换能力。Message Broker 支持不同的数据格式之间的转化和处理,并可以将消息根据业务逻辑路由到不同的目标应用系统中;Message Broker 支持业界中常用的消息协议和消息传输方式,从而非常容易地允许企业现有的各种应用系统接入到企业服务总线。
连接 SAP 的几种方式
SAP 是业内领先的 ERP 软件,在企业内被作为核心应用系统广泛使用。随着业务需求的变化和跨系统的业务流程的需要,将 SAP 系统接入到 SOA 应用架构中,成为了常见的应用场景。Message Broker 提供了多种对 SAP 系统的接入方式,在 Message Broker 中常见的有以下两种:
使用 WBI SAP Adapter:WBI SAP Adapter 作为 SAP 系统和 Message Broker 的桥梁,支持两者之间双向、多线程和实时的交互。SAP Adapter 使用 WBI Adapter Framework 作为运行时环境,MQ 作为底层传输基础,JMS 作为传输协议。在使用 SAP Adapter 与 SAP 系统进行通讯时,Message Broker将符合业务对象 Schema 的 JMS 请求消息放到 Adapter 的请求队列中,Adapter 接收到请求消息后将消息取出并调用 SAP 系统提供的函数;随后,Adapter 将 SAP 系统返回的结果构造成符合业务对象 Schema 的 JMS 响应消息放到 Adapte r响应队列由 Message Broker 做进一步处理。除了支持常见的请求响应模式外。SAP Adapter 也可以主动侦听 SAP 系统发送的通知消息,将消息放到指定队列由 Message Broker 取出并处理。
使用 SAP JCO(Java Connector):SAP JCO 是 SAP 公司提供的基于 JNI 的符合 SAP RFC 规范的一组 API 接口,允许您在 JAVA 应用程序中使用该 API 来调用 SAP 系统的 RFC 函数,如下图 1 所示。JCO 支持两种对 SAP 系统的连接方式:直接连接和使用连接池。直接连接需要开发人员自己控制创建和断开 SAP 连接;使用连接池,可以重用池内已有的连接实例,从而获得更高的效率。