IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

使用WebSphere Business Integration Adapter与WebSphere Application Server Enterprise: 第一部分:概述

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Graham Charters (charters@uk.ibm.com), Software Engineer, IBM
Arul Sundaramurthy (arul@us.ibm.com), 软件工程师, IBM
Piotr Przybylski (piotrp@ca.ibm.com), Software Engineer, IBM
Thomas Tsou (ttsou@ca.ibm.com), WebSphere Studio Application Developer和Integration Edition产品管理组的一员, IBM
Sherri Wayne (swayne@us.ibm.com), Software Engineer, IBM

2003 年 10 月 01 日

在开发新的Web应用或集成业务流程(business process)时,一种常见的需求就是广泛利用现有的企业信息系统(EIS),比如封装的应用和数据库。

©IBM公司版权所有,2003年。保留所有权利。

引言

在开发新的Web应用或集成业务流程(business process)时,一种常见的需求就是广泛利用现有的企业信息系统(EIS),比如封装的应用和数据库。下图展示了这样一个场景的示例,其中,正在访问的EIS是一个管理一家公司客户纪录的系统。在图1中,系统被扩展到Web,以允许新的客户自行在公司注册。当新的注册完成时,会出现一个新的屏幕进行响应,显示EIS生成了新客户ID。


图1.外部客户注册
外部客户注册

图2中的第二种用况(use case)展示了如何通过电子邮件通知客户对他们的顾客纪录进行的更新(例如,他们的级别升至白金级,他们的账户在信用检查之后现在有效,等等)。这种场景说明了简化的流程(flow),而实际上,每次交互都可能启动正在由WebSphere® Application Server Enterprise Process Choreographer运行的某个更大的业务流程,或者作为其结果。


图2. 内部顾客更新
内部顾客更新

用来实现这种解决方案的技术包括:

  • WebSphere Application Server,为顾客的自服务应用提供健壮和可伸缩的执行环境。
  • WebSphere Business Integration Adapters(以下简称为WebSphere BI Adapters),为超过50种的EIS和技术提供预先封装的集成功能。

图3中的图表显示了可以用来构建这种方案的组件的高级视图。这些组件还包括两台服务器,一台是Web服务器(例如IBM HTTPServer),用于提供自服务应用所需的Web页;另一台是邮件服务器,用于处理自服务应用发送给客户的电子邮件更新信息(通过JavaMail API)。然而,这些组件不是本文所讨论的主题。

图3. 物理配置
  物理配置

此处的重点是WebSphere ApplicationServer Enterprise(版本5.0.2)和WebSphere BI Adapter(版本2.3.0)之间的集成能力,这两个组件也是我们在图4中说明的顾客场景的一部分:

  • Create Customer是一个请求-响应调用: 顾客通过应用启动请求,应用需要从EIS得到一个响应以获取新顾客ID和状态。
  • Update Customer是一个单向调用: 适配器仅发送信息而不需要任何响应。

图4. 顾客场景
顾客场景

此后,我们将在整篇文章中引用这个样本场景。

在2003年7月,IBM扩展了WebSphere BI Adapters,通过将EIS应用和功能展示为用Web服务描述语言(WSDL)描述的服务,以支持同时使用WebSphere BI Adapters和WebSphere Application Server。然后,这些服务就可以用WebSphere Studio Application Developer IntegrationEdition(版本5.0.1)(简称为Application Developer)和WebSphere ApplicationServer中的Enterprise Services工具来进行开发。在下面的几个部分中,我们将概述运行时和开发体系结构以及开发这种集成所需的任务。





回页首


运行时概述

WebSphere Application Server/WebSphereBI Adapter集成的逻辑运行时体系结构示于图5中。


图5. 运行时体系结构
运行时体系结构

从右到左,组件是:


a. EIS
(企业信息系统)
这是一个应用,用于存放核心业务数据并运行要与WebSphere Application Server应用进行集成的程序。它提供了外部接口以支持与WebSphere BIAdapter进行的双向通信。这个接口一般可以进行远程访问,因此EIS和WebSphere BI Adapter不必安装在同一台机器上。EIS接口通常是惟一的,使得每种EIS类型都需要一个WebSphere BI Adapter。

在我们的样本场景中,我们描述了一个管理顾客信息的EIS。它可能是一个封装的应用,比如SAP® 或Siebel®,或一个自定义构建的应用。

b. WebSphere BI Adapter 这是连接EIS和WebSphereApplication Server application的组件。它负责从应用服务器或EIS获取事件,转换事件,然后将其传递到另一方。

在EIS端,WebSphere BI Adapter通过前面提到的EIS接口进行通信。在应用服务器端,所有的WebSphereBI Adapters都使用通过Java™ Message Service(JMS)传递的相同样式的XML消息(也就是说,他们在定义中共享常用的模式),尽管这些消息的结构和内容是EIS特有的。

每个适配器都配有一个运行时库,描述了如何连接到EIS,如何访问特定程序和数据(参见 业务对象)。在我们的样本场景中,这可能是许多为SAP、Siebel或其他系统预先封装的WebSphereBI Adapter中的一个,或者是用WebSphere BI Adapter DevelopmentKit构建的自定义适配器。WebSphere BI Adapter DevelopmentKit是一个工具包,它允许您为预先封装的适配器所不支持的系统构建的适配器。

c. 应用服务器 这是一些组件的运行时环境,这些组件处理WebSphere BI Adapter和新的应用逻辑之间的通信。通信被封装在会话EJB(Enterprise JavaBean)和消息驱动的bean组件中(参见 WebSphere Application Server 组件)。

EJB组件使用的实际接口是Web服务调用的Web Services Invocation Framework(WSIF)开放源代码API,目的是进行通信调用和处理消息格式。在运行时,WSIF使用WSDL定义,WSDL定义是在开发过程中从适配器获取的,它描述了适配器接口和配置。

在我们的样本场景中,WSIF实现支持JMS传送,而WSDL描述了EIS顾客定义的Customer Create(顾客创建)和Customer Update(顾客更新)操作。(参见 WSDL生成

管理

WebSphere Application Server和WebSphere BI Adapters之间的集成也包括扩展WebSphere Application Server管理控制台,使得可以对适配器进行远程管理。应用服务器接收来自控制台的命令,然后通过XML JMS消息与适配器进行通信。图6展示了管理控制台、应用服务器和WebSphere BI Adapter之间的关系。


图6. 管理关系
管理关系

管理命令包括:


Shutdown关闭WebSphere BI Adapter运行时的进程。该进程不能从应用服务器管理控制台重新启动,因为不再存在一个可以与其通信的进程。必须用与适配器产品一起安装的启动脚本来进行重新启动。
Suspend将适配器的状态由 活动改为 暂停。在暂停状态中,适配器将不会启动对应用服务器的调用,但将继续处理来自应用服务器的调用。
Resume将适配器的状态由 暂停改为 活动。当处于活动状态时,适配器会恢复对应用服务器的调用。
Deactivate将适配器的状态由 活动改为 非活动。当处于非活动状态时,适配器进程继续运行,但不会处理来自应用服务器的请求,也不会启动对应用服务器的请求。
Activate将适配器的状态由 非活动改为 活动。当处于活动状态时,适配器将处理来自应用服务器的请求,也将启动对应用服务器的请求。
Status检索当前的适配器状态: 活动非活动暂停中的一种。





回页首


开发概述

图7展示了用WebSphere BI Adapters构建和单元测试应用时的开发环境以及主要步骤。

开发环境(在表中以黑体字进行显示)包括:


WebSphere Studio Application Developer, Integration Edition 这是基于Eclipse的IntegratedDevelopmentEnvironment(IDE),可以用于开发解决方案。在这种环境中,有几个Eclipse透视图,您可以用来配置、开发和测试解决方案的每个部分,如下所示:
Perspectives:

System Manager 这是用来定义和配置WebSphere BI Adapter的构件(artifact)的透视图。从这个透视图中,我们可以启动Business Object Designer来编辑业务对象,并且可以启动Connector Configurator来编辑连接器配置(本透视图需要WebSphere BI Adapter)。
Business Integration 这个透视图提供了一些工具,可以用来开发面向服务的体系结构应用。其功能包括从一组服务中组合业务流程、映射服务和生成运行时服务实现以及代理组件(比如Java Bean或EJB组件)。从这个透视图中,您将生成部署到应用服务器的组件,以支持与适配器的集成。
Server 出于单元测试的目的,Application Developer包括集成的WebSphere Application Server运行时,它可以从Server透视图中获得。这个透视图包括测试WebSphere BI Adapter集成的WebSphere Application Server Enterprise单元测试环境。


图7. 开发任务
开发任务

主要的开发任务(在图中用红色进行显示)包括:

  1. 导入EIS元数据许多WebSphere BI Adapters支持通过Object Discovery Agent(ODA)直接从EIS中导入元数据,对象发现代理是解释外部来源的元数据并生成相应的业务对象定义的工具。外部来源的元数据是在WebSphereBI System Manager中作为业务对象定义实现的。这类导入的一个例子是能够从存放在SAP Business ObjectRepository中的构件直接生成业务对象定义。在我们的样本场景中,这将是能够从EIS中导入顾客记录结构及其相关操作。
  2. 配置连接器和业务对象
    如果适配器不支持元数据导入,则可以用Business ObjectDesigner工具直接定义业务对象。Connector Configurator工具可以用来配置适配器信息,比如EIS主机名、端口和适配器支持的业务对象。在我们的样本场景中,我们将定义顾客业务对象(如果不支持任务1的话),并且用EIS连接属性、支持的顾客业务对象以及与应用服务器进行通信的JMS队列定义等信息配置适配器。
  3. 以WSDL和XML模式交换配置
    业务对象和连接器配置描述了适配器支持的服务。BusinessIntegration透视图通过WSDL和XMLschema的交换可以获取此信息,WSDL和XMLschema的交换是 从System Manager导出到BusinessIntegration服务项目中的(您也可以将其作为单个文件或一个JAR文件导出到文件系统中)。在我们的样本场景中,WSDL描述了应用服务器可以对EIS顾客记录执行的操作(通过适配器),以及适配器可能在应用服务器中调用的EIS顾客操作。XMLschema将描述顾客业务对象结构。
  4. 构建应用服务器运行时组件
    WSDL和XML schema定义可以用来生成应用代码,以支持与WebSphere BI Adapter进行的通信。此时,可以添加该应用的业务逻辑。在我们的样本场景中,我们将生成应用服务器组件,以支持创建EIS顾客记录和EIS顾客更新通知。
  5. 部署 到WebSphere BI Adapter和WebSphere Application Server单元测试环境
    最后,将用工具创建好的组件和配置部署到适当的运行时,以进行测试。在我们的样本场景中,此项任务就是部署EIS顾客信息的WebSphereApplication Server集成支持以及Connector Configurator和Business ObjectDesigner中的适配器配置。  




回页首


WebSphere BI Adapters概述

WebSphere BI Adapters在两个接口之间进行映射: EIS的接口和欲利用EIS的环境的接口,在这种情况下即应用服务器。公开给应用服务器的接口是JMS之上的XML格式的消息(XMLformatted messages over JMS)。每个消息的结构都是用XML schema描述的业务对象。

下面几个部分描述给WebSphere Application Server提供的WebSphere BI Adapter接口:

  1. 业务对象:在应用服务器和WebSphere BI Adapters之间进行通信的数据和操作
  2. JMS支持:在应用服务器和适配器之间支持的JMS交互模式
  3. WSDL生成:由适配器生成并由Application Developer和WebSphere Application Server使用的WSDL结构(从业务对象定义和JMS支持派生的)。

1. 业务对象

业务对象的定义由属性和动词组成。在我们的样本场景中,属性即是EIS存储的关于客户的信息,动词对应于可以对顾客记录进行的操作。如前所述,这些业务对象可以通过两种方式中的某一种派生:通过Object Discovery Agent从EIS库中导入,或者通过Business Object Designer工具产生。

图8说明了我们的样本场景的业务对象定义,左边是顾客业务对象定义(为了简单起见,省略了类型和约束信息),右边是顾客业务对象实例。


图8. 业务对象定义
业务对象定义

2. JMS支持

WebSphere BI Adapter JMS支持在适配器和WebSphere Application Server之间使用了四种交互模式,如图9所示。它们是:

  • 从WebSphere Application Server启动:
    1. 单向(也称为Hub单向)
    2. 请求-响应(Hub请求)
  • 从WebSphere Business Integration Adapter启动:
    1. 单向(代理传送)
    2. 请求-响应(代理请求)

图9. 交互模式
交互模式

在每种通信中,XML格式的业务对象是在两个运行时之间进行交换的。此外,请求的结果是在响应信息中进行显示的,它包括状态和文本描述。在我们的样本场景中,所用的交互模式为:

  • 用于Create Customer: 应用服务器中的请求-响应模式(图9中的#2)
  • 用于Update Customer: 适配器中的单向模式(图9中的#3)。

3. WSDL生成

以上描述的业务对象配置和交互模式等同于适配器(当从WebSphere Application Server启动时)或WebSphere Application Server(当从适配器启动时)提供的服务。WebSphereApplication Server和Application Developer提供的这些服务使用带有JMS绑定的WSDL。ApplicationDeveloper中的Enterprise Services工具可以使用这种带有JMS绑定的WSDL来构建所需要的应用组件(参见 WebSphereApplication Server components),而生成的组件也可以在运行时使用这种带有JMS绑定的WSDL。

下面的代码显示了我们的样本场景的伪WSDL(此场景不需要的绑定、服务定义和顾客portType以及操作定义都已经省略了)。定义注解如下:

  • 6-7行: 导入客户业务对象的XML schema定义( Customer.xsd
  • 9-11行: 请求消息定义,包括一个顾客业务对象(也用在单向通信中)
  • 12-17行:响应消息定义包括一个顾客业务对象、状态、描述和JMSType(JMSType是在WebSphere BI Adapter和WebSphere Application Server之间传递的标识符,可以由适配器用来区分管理和集成消息之间的不同)
  • 19-24行: 应用服务器启动的所有请求-响应操作的portType定义
  • 20-23行: Create Customer调用WebSphere BI Adapter的操作定义
  • 25-29行: 适配器启动的所有单向操作的portType定义
  • 26-28行: Update Customer通知应用服务器的操作定义

根据portType名称,我们可以了解到它们是如何从业务对象和交互模式名称中派生出来的。操作名称是从业务对象名称和动词定义中派生出来的。


01: <?xml version="1.0" encoding="UTF-8"?>
02:<definitions name="MyEIS"
03:  targetNamespace="http://www.ibm.com/websphere/Adapters/MyEIS/"
04:  ...>
05:
06:  <import namespace="http://www.ibm.com/websphere/wbia/2002/BOSchema/Customer"
07:       location="Customer.xsd"/>
08:
09:    <message name="CustomerRequest">
10:       <part name="BodyPart"element="ns:Customer" />
11:    </message>
12:    <message name="CustomerResponse">
13:       <part name="ReturnBodyPart"element="ns:Customer" />
14:       <part name="StatusPart"type="xsd:string" />
15:       <part name="DescriptionPart"type="xsd:string" />
16:       <part name="JMSTypePart"type="xsd:string" />
17:    </message>
18:
19:    <portType name="CustomerHubRequest">
20:       <operation name="CustomerCreate">
21:          <input name="CreateRequest"message="tns:CustomerRequest" />
22:          <output name="CreateResponse"message="tns:CustomerResponse" />
23:      </operation>
24:    </portType>
25:    <portType name="CustomerAgentDelivery">
26:       <operation name="CustomerUpdate">
27:          <input name="UpdateRequest" message="tns:CustomerRequest" />
28:       </operation>
29:    </portType>
30:
31: </definitions>





回页首


WebSphere Application Server组件

在运行时,WebSphere应用可以启动对WebSphere BI Adapter的请求,或者由来自适配器的请求进行驱动。在任何一种情况下,都需要应用程序代码来触发或处理调用。

给定WSDL定义,比如由WebSphere BI Adapter所生成的,Application Developer将生成WebSphere Application Server中所需的所有支持性EJB组件、bean和类。这些生成的组件处理所有的发送、触发和消息格式编排。用户需要做的只是添加他们新的业务逻辑。

图10显示了所生成的支持四种适配器交互模式的EJB类型,说明了如何使用SessionEJB从WebSphere Application Server启动交互,以及如何使用消息驱动bean和Session EJB的组合来支持由适配器启动的交互。Session EJB提供了一个方便的框架,使您能够添加业务逻辑来处理由WebSphere BI Adapter生成的事件。


图10. EJB类型
EJB类型

图11显示了所生成的支持我们的样本场景的EJB组件:

  • Create Customer:CustomerHubRequestService Session EJB
  • Update Customer:CustomerAgentDeliveryService Session EJB和CustomerAgentDeliveryServiceMDB消息驱动bean。

也显示了所生成的对应于WSDL操作的方法:

  • Create Customer:CustomerCreate(...)方法触发EIS中新顾客的创建,也将作为顾客在公司的Web站点上输入的详细情况的结果被调用。
  • Update Customer:CustomerUpdate(...)方法当每次顾客在EIS中进行更新时被调用,并且将用来向顾客发送电子邮件。

图11. EJB组件
EJB组件




回页首


结束语

这篇关于使用WebSphere BI Adapter与WebSphere Application Server的概述向您介绍了基于Web的企业解决方案所需的任务和组件,所有的都是在一个顾客自服务应用的上下文中。附加信息请见 下面的参考资料。在后面的文章中,我们将描述如何构建、测试、部署和管理本文中所叙述的场景。



参考资料



作者简介

Graham Charters是一位工作于英国Hursley的WebSphere开发部门的Software Engineer。他的职责包括适配器体系结构以及在WebSphere平台上发展和集成WebSphere BI Adapter。您可以通过 charters@uk.ibm.com与他联系。


Arul Sundaramurthy是一位工作于加州Burlingame的WebSphere Business Integration部门的软件工程师。他的职责是发展和提交WebSphere Business Integration Adapter框架。您可以通过 arul@us.ibm.com与他联系。


Piotr Przybylski 是一位工作于加州Burlingame的Software Engineer,他的工作范围是Connector Architecture、连接器和相关工具。他是IBM的J2EE Connector Architecture规范专家。您可以通过 piotrp@ca.ibm.com与他联系。


Thomas Tsou是IBM Toronto Lab的WebSphere Studio Application Developer和Integration Edition产品管理组的一员。在加入该实验室之前,他是一位在Western Canada的IBM Global Services IT Architect。您可以通过 ttsou@ca.ibm.com与他联系。


Sherri Wayne是明尼苏达州Rochester的WebSphere开发部门的一位Software Engineer。她的职责是通过关注WebSphere Application Server Base、Enterprise bring-up和集成活动来保证WebSphere Software Platform的成功提交。您可以通过 swayne@us.ibm.com与她联系。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款