内容


WebSphere Business Integration InterChange Server 技术入门

Comments

前言:

去年,WebSphere Business Integration大家族中又增添了一个新的家族姐妹-WBI InterChange Server,从而使得其面向业务整合的解决方案得到进一步充实和增强,使IBM在EAI和BPM领域的优势进一步扩大。正是由于InterChange Server产品本身在技术上的众多优势,如:它的真正的"hub&spoke"的系统架构,它基于Java 的产品内核,它的通用数据对象(Common Business Object Model)的概念和实现,它丰富和成熟的适配器(Connector),它的各种强大易用的图形工具等等,这些都成为其一个个技术亮点,使得InterChange Server成为WebSphere Business Integration大家族中一枝绚丽的奇葩!为了让大家更快地了解它,熟悉它和使用它,在此我们从技术的角度对该产品做一个较为全面的介绍,希望对大家有所帮助。

如何尽可能的增强企业的适应性和竞争力?答案是IBM WebSphere Business Integration(简称WBI)解决方案,该解决方案为我们提供应用整合和流程整合的解决方案,使企业的业务流程自动化,增强企业的竞争力,并且将您和您全球的合作伙伴通过Internet相连。WBI是既支持企业应用集成同时支持B-B集成的综合业务整合解决方案。从那些连接少数系统的简单项目到那些建立企业范围内整合标准的复杂项目,WBI可以帮助客户直面当前和今后的整合挑战。

InterChange Server(简称ICS)是WBI解决方案的重要组成部分,本文将从技术角度对ICS的基本概念、系统架构和产品组成等做一简单介绍。

1 系统架构:

ICS运行的基础架构建立在"hub-and-spoke"结构的基础上,而且要特别指出的是,它是一个真正的"hub&spoke"的架构(之所以所是"真正的",主要是由于它的通用数据对象模型(Common Business Object Model)的实现,在之后的数据对象一部分中详细描述)。应用集线器(Hub)的核心是ICS服务器, 它是ICS的运行环境并提供其核心处理引擎。协作(Collaboration)即通常所说的业务流程(Process),他们是实现流程业务逻辑和整合逻辑的运行例程,并被ICS服务器执行。Hub的外围是连接层。连接层在每一个分支(Spoke)上提供了与其它系统的接口。周边系统与ICS之间的连接可以通过适配器(Connector)或者服务器存取接口(Server Access Interface)实现。在每一个分支上的处理实体可以是本企业内部(在防火墙之内)的应用,也可以是企业外部(在防火墙之外)的应用。

2 ICS 产品组成

WBI ICS产品的主要组成部分主要包括:ICS服务器(ICS Server)、协作(Collaboration)、适配器(Connectors)、数据对象(Business Object)、数据映射(Data Mapping)、工具集(Tools Set)等,下面逐一给予介绍。

2.1 ICS 服务器

ICS服务器,用于建立一个管理数据对象和业务流程的完善的运行环境。它是一个纯Java的内核,因此具有Java的多线程、面向对象等特征和优势,可以运行在Windows NT, Windows 2000, Solaris, AIX,HP等平台上。它维护ICS的所有相关对象的定义和配置信息,并且通过数据库存储这些信息,称为资源库(Repository)。目前,它所支持的资源库数据库有DB2, Oracle, SQL Server等。

ICS是一个可扩展的、可靠的、安全的运行环境。在这个环境下所进行的业务集成可以涉及到商业过程自动化中的所有细节。

ICS可以为企业数据提供统一的视图,同时它还提供了广泛的技术服务,包括:

  • 系统管理;
    事件管理;
    错误处理;
    事务处理;
    数据转换与传递;

这对企业而言到底意味着什么?简单来说,ICS为企业提供了:面向关键业务的可靠性和可用性;企业层次的可扩展性和高效性;令人信任的中央系统和配置管理。

为了更好地了解和掌握ICS产品,必须了解其他一些重要的概念,其中最重要的是Business Objects(BO),Connector 和Collaborations这样几个重要的概念。

Business Objects在逻辑上等同于Messages(消息),它是应用系统数据的载体,表示的是用户的具体数据。通常,它由一个动词和若干数据组成,在不同的处理实体的不同接口之间被传输。如果BO是一个请求,动词将会表明在接收端的应用将利用包含在BO中的数据部分来执行某个操作或流程。如果BO是一个响应(Response),则动词和数据将代表在发送端对前一个请求处理的结果。如果BO被用于作为一个事件指示器,则动词将表示在发送端发生了何种事件,数据部分将包含与事件有关的数据。在上述所有情况中,在所有的连接层,动词都表示接收端能够理解的一个特定的流程或流程的某一步骤。BO同时也包含了一个字段,它包含了BO的名称。BO分为两种,即特定于应用的数据对象(Application Specific Business Object,简称ASBO)和通用数据对象(Generic Business Object,简称GBO)。

Collaborations是特定业务流程的实现逻辑,在Interchange Server中被执行,等同于MQ WorkFlow中的Process。Collaborations管理业务逻辑执行的顺序和流程,这些流程在ICS中或系统中的其他处理实体中被执行。这些处理实体可以是企业内部的各种应用,也可以是通过Internet或其他外部网络连接可以获取的其他企业的应用系统。

Collaborations总是处理GBO(通用数据对象), 既该Business Object中的数据是系统中其他处理实体需要的数据的一种抽象表示或上层表示。基于这一点,称WBI ICS是一个"真正的"hub&spoke的架构,ICS服务器内部处理的都是一个一个的GBO。

那么,特定于某一个应用的数据对象和通用数据对象的转换在那里发生呢?它是发生在系统架构中的连接层。这意味着从任何连接器进入Collaboration的Business Object都包含通用的数据格式。

ICS解决方案建立在Business Object和Collaboration的基础上,此外包含位于连接层的各种非ICS的处理实体(应用),它们是ICS Connector和/或Server Access Interface。

2.2 Business Object

ICS可以同时面向应用整合(Application Integration) 和流程整合(Process Integration)两方面的需求。在Application Integration方面,它可以连接各种应用系统,并且实现应用系统之间的数据格式转换,这需要依靠一个重要的对象,即Business Object。在ICS中,Business Object是应用系统数据的表示,它包含了一个集成解决方案中的业务和流程的数据。它们是用于控制在ICS环境中运行的Collaboration和各种Connector/Application之间的交互的基础机制。他们也被用来与那些通过Server Access Interface来和Collaborations接口的应用程序实体进行通讯。

如上图所示,在这一部分,主要有两个主要的概念,即Business Object Definition和Business Object本身。

Business Object Definitions是对BO内部包含的数据类型和数据项(字段)顺序以及支持哪些Verb的定义和描述。它不包含具体的用户数据,而是Metadata(data about data)。当应用系统中数据发生变化时,Connector利用BO Definition来初始化一个BO。

在ICS系统中,BO definition(BO的定义)是存储在ICS的repository数据库中的,并且在运行时被使用。BO定义中包含了Metadata,用于描述一个业务对象的内容:动词,属性及其属性特征的列表。BO Instance(对象实例), 真正在不同的应用之间传输的业务对象实例,包含了一个单一的动词和各种属性(Attribute)的真实实例数据。Connectors 使用BO中的Metadata来创建和处理BO Instance。

Business Object是真正包含用户数据的数据实体,如有关Customer的信息,有关某一Order的信息等。如前所述,Business Objects通常包含一个动词(Verb)和数据(Data),它有以下三个作用:

  • Event(事件)- 当应用程序的一个操作导致了用户数据的变化,一个业务对象会报告这一事件的发生,该业务对象称为Event Business Object(事件业务对象)。Connectors/Applications发送事件业务对象到Collaborations。Collaborations使用事件业务对象来启动一个业务/整合流程。
  • Request(请求) - 当一个业务/整合流程需要某一应用程序针对特定数据执行相应的操作时,Request Business Object(请求业务对象)被从Collaborations传送到Connectors/Applications。请求业务对象也可能通过Server Access Interface从某个处理实体传送到Collaboration。在这种情况下,Collaborations将Request类似看作一个Event来对待。
  • Response(应答) - 当对一个request处理完毕之后,Response Business Object(应答业务对象)将被从Connectors/Applications传回到Collaborations。

一个BO中的动词,代表应用执行的方式,如create, retrieve, update, delete等。BO的Attributes(属性)包含了在系统中不同应用之间传输的真实数据。换句话说,如果一个BO从逻辑上被看作一个消息,则属性就可等同于消息体中的各个数据字段。属性类似许多数据处理系统中的数据定义,如:属性有一个名字和一系列Property。Property定义了属性的特征,包括它的类型(string, integer)、最大长度、缺省值、特定于应用的一些信息等。

BO可以被嵌套。一个BO的某一个属性可以是另外一个BO。通常,当父BO和子BO的映射关系为一对一的关系时,每一个BO包含的动词都相同。当然,一个父BO可以包含多个子BO,更进一步而言,它可能包含一系列的BO链,即BO中又嵌套另一BO。在后述情况下,子BO中的动词设置必须小心,也可能需要编程逻辑去设置动词。

如前所述,Collaborations处理的都是通用的Business Object,这些通用的Business Object被称为Generic Business Object,即GBO。由于不同应用的数据模型不同,ICS同样支持Application Specific Business Objects, 即ASBO。ASBO仅仅包含了特定于某一个应用的数据。ASBO同样包含了Application specific data(应用程序特定数据):位于ASBO定义中的信息,它指导Connector根据应用程序接口的需要来处理ASBO 实例。

因此,在ICS 中,BO分为GBO(Generic Business Object)和ASBO(Application Specific Business Object)两种。GBO是某一个执行实体需要的数据的扩展和抽象。ASBO是与某一个应用相关的具体的数据表现。

对ASBO 和GBO的分离,是ICS系统架构中的一个强大优势。它使得ICS为用户提供了一个Common Business Object Model(通用业务对象模式), 它包含了用户业务中需要的各种通用对象实体的定义,如:Customer, Invoice, Purchase Order等。这些GBO被Collaborations所用。他们增强了这些系统的可重用性,屏蔽了连接层的各种应用的数据模型的不一致性。GBO到ASBO的转换发生在连接层。这表明,来自Connector,进入Collaboration的Business Object都包含了通用的数据格式。

对Business Object的开发,主要有以下一些方法和步骤:

1) 分析具体应用和需求,分析应用系统数据结构,设计BO

2) 建BO,创建BO的方法主要有如下几种:

a)使用图形工具Business Object Designer
b)从IBM相关的技术网站下载,IBM随产品向用户提供常用的BO,如在SAP,Siebel等系统中用到的BO,并且,随着这些系统的变化和升级,IBM会及时更新这些BO,并把它们放在网站上,供用户直接下载使用
c)使用ICS提供的Object Discovery Agent(ODA)的工具,自动发现和生成BO。ODA是一个非常方便的BO生成工具,可以支持与多种应用系统相关的BO的生成,如:Oracle Application,JDBC,I2 ADW,SAP等,利用ODA可以直接生成BO,并且,目前IBM正在开发越来越多的针对其他应用系统的ODA工具。

2.3 Data Mapping

生成BO之后,为了实现数据格式之间的转换,要通过Data Mapping来实现ASBO和GBO之间的数据转换。正如"Mapping is an enabler of the Common Business Object Model"所言,它在ICS中起着举足轻重的作用。

在ICS中,为了使大家更好地理解,我们可以将Data Mapping分为两种:

1) 简单的mapping,它将source BO中的一个或多个属性转换为destination BO中的一个或多个属性,这可以通过Mapping Designer来实现,Mapping 操作可以是:Move, Join, Split, Set Value, Custom code等若干操作。
通过Map Designer的客户化编码(Custom code)功能,用户可以方便地嵌入Java的代码,从而实现对某一属性的客户化运算和操作。Map Designer可以直接产生源代码,用户可以在源码和图形界面之间切换操作,人机交互性极强。通过Map Designer,还可以进行Map的测试。

2) 如果同一数据实体在不同的应用中,有不同的表现形式,如:在应用A中,用字符串"BJ":来代表北京这个城市,而在应用B中,用数字"01"代表北京这个城市,这时,用方法1)中提到的简单的Mapping操作是无法实现的,针对这种情况,ICS采用交叉引用(Cross-Referencing)的方法和技术来实现它们之间的映射和转换。ICS采用关系(Relationship)来实现Cross-Referencing,Relationship定义了BO之间的联系。Relationship在执行map的时候被调用。

Relationship分为两种,一种是静态的Relationship,另一种是动态的Relationship。所谓静态的Relationship是指BO的属性是不经常改变的,如上述的"BJ"和"01"的城市代码的例子,再比如:我们可以在某一应用中使用"Regular"和"Contractor"来代表员工类型,而在另一应用中,使用"10"和"20"来表示它们。这时,我们可以建立cross-reference table来存储它们,利用"Look up Relationship"来实现二者之间的转换。

与静态的Relationship相反,有些属性是动态变化的,如对Customer BO而言,它的某一键值:ID是动态生成的,这时需要使用动态的Relationship来实现BO之间的Mapping。

Relationship的创建和设计可以通过图形工具Relationship Designer来实现。在Relationship生成之后,需要将其加载到Map定义之中,从而在Map执行时被调用。Map需要编译之后,再激活方可使用。

2.4 Connector

2.4.1 概述

WBI提供许多成熟易用的Connector。这些Connector主要分为两大类:

1) Application Connector
通过API和应用系统相连的Connector,如:SAP, Siebel, I2, PeopleSoft等。
2) Technology Connector
通过业界标准或其他方式和应用系统相连的Connector,如:JDBC,XML,Jtext等。
此外,WBI提供了Development Kit开发工具包,方便用户开发自己需要的Connector。

任何一个整合基础架构的智能性在于它能够和任何的应用或流程处理实体相通讯和互操作。实际上,信息整合和流程整合必然涉及不同系统、不同应用程序的连接。缺少连接层,整合基础架构便失去了意义。ICS的连接层有两大主要部件:
Connectors和Server Access Interface。Connectors是您能够与传统的,已有的,主机应用,面向电子商务的应用相联接。

ICS系统的连接器的架构提供了对于信息和流程整合解决方案成功与否的关键的卓越的功能。Connectors是Collaboration和应用程序的接口,它分为Connector Controller,Connector Agent和Connector Communication三部分。Connector Controller和ICS运行在相同的系统上,并且和Collaboration直接交互以及实现数据映射(Data Mapping)。Connector Agent和应用程序运行在不同的系统上,它负责和应用程序直接交互。Connector Controller 和Connector Agent协同工作,不仅提供了一个统一接口,在该接口上,BO互相通讯;并且通过BO的通讯将各个应用系统整合到ICS整体的系统解决方案中。

Connector Controller 和Connector Agent通过IIOP协议或者通过MQ等其他消息中间件,进行通讯控制和交换初始化信息。通过IIOP/MQ连接,Connector Agent接收控制信息,如:ASBO的定义。在运行时,当BO在Connector Controller 和Connector Agent之间传递时,它们之间的连接使用IIOP或MQSeries。当Connector Controller 和Connector Agent之间通过Internet相连时,Connector Controller 和Connector Agent之间也可以使用HTTP或HTTPS。在这种配置下,需要配置web gateway,来处理HTTP请求,并且向Connector Controller 和Connector Agent提供ASBO。Technology Connector Agents提供与应用程序的连接,这些应用程序的接口是通过某种特定协议或技术预先定义的,如:XML, RosettaNet等。

Connector Agent的作用主要有:

a) 发现应用程序事件;
b) 创建ASBO;
c) Archive Event table;
d) 处理ICS的请求。

Connector Controller的作用主要有:

a) 提供和更新Agent的Subscription list(订阅列表);
b) 抓取和传送BO给相应的Collaboration;
c) 实现Data Mapping。

Connector Communication的作用主要有:

a)传输Controller和Agent之间的控制管理信息,如对Agent的配置信息,包括捕获事件的时间间隔,日志跟踪的级别,登录应用系统的用户名和口令等。
b)传输Business Object。

2.4.2 具体工作原理

通常而论,Connector Agent直接与应用程序接口,因此针对每一个应用有其唯一性。但是,虽然不同的应用有不同的实现方式,所有的Connector Agent共享一套通用的系统架构功能。所有的Connector Agent用polling的方式监控它们的应用的相关事件。在source一端,Connector Agent获得应用的事件通知。当某一事件被发现,Connector Agent利用在ASBO定义中的application specific information将该Event同一个特定的ASBO联系起来。Connector Agent创建ASBO的实例,将它发送给Connector Controller,然后Connector Controller进行ASBO到GBO的Mapping, 之后将GBO发送给某一个Collaboration。在目的端,Connector Agent对从目的端的Connector Controller接收来的ASBO进行解析,将数据变化更新到目标系统中。

ICS的发布/订阅(Publish/Subscribe)机制用来表明哪个Colllaboration使用哪个事件BO(Event BO),或对哪个Event BO感兴趣。Collaboration通过这种方式指明Connector Controller接受哪个Event BO来订阅与之相对应的事件。Connector Controller负责提供和更新订阅列表,并将它的订阅列表发送到它的Connector Agents,通过这种方式,它通知Agent。Connector Agent监测特定应用系统的事件,判断该事件是否满足订阅列表,如果满足,Agent将创建ASBO,并将它的Event BO发布到相应的Collaboration。也正是通过这种发布/订阅的机制,使得事件的通知被发布到ICS系统整合架构的各个相关部件。

Connector Agent同时处理外部输入的BO请求(如在目的端)。它们将特定于应用的BO转换为应用程序API需要的属性和方法调用。如前所述,这种转换要使用ASBO定义中包含的特定于应用的信息(Application Specific Information)。这种特定于应用的信息和ASBO的Verb(动词)和Attribute(属性)相关。当应用程序完成了所需的操作,Connector Agent将创建一个Response BO并通过Connector Controller把它返回Collaboration。

Connector Agent的启动过程如下:
1)登录ICS,获得它的配置信息;
2)利用配置信息中指定的参数,登陆应用系统;
3)从Controller获得所支持的BO的定义;
4)获得它所支持事件的Subscription list(订阅列表)。

Connector Controller提供了Connector Agent 和Collaboration之间的接口。Connector Controller接收从Agent传来的Event BO,并将它们从ASBO转换为GBO。Connector Controller使用ICS的数据映射功能来实现ASBO和GBO的转换。当Collaboration发送Request BO到某一应用程序时,Connector Controller同理会将GBO转换为ASBO。

Server Access Interface提供了Collaboration的这样一个接口:它使得可以从外部调用Collaboration。Server Access Interface提供了一套包含EJB、Servlets或其他程序实体的接口来调用Collaboration。Event、Request、Response BO通过Server Access Interface传递,类似Connector Controller的机制。使用ICS的映射功能,它将它接收的信息映射为Collaboration 需要的GBO;同理,在反方向上,Server Access Interface将GBO映射为ASBO。

Connectors为企业提供最快的方法集成原有应用、被封装的应用、大型机应用或者是其他电子商务使能的技术。Connectors几乎可以直接使用,只需要进行极少的配置工作。

Connectors从企业的业务支持系统中抽取数据进行业务过程的集成,并使数据通过其核心ICS进行重新配置和转换。IBM WBI Connectors包括各种连接器,可以连接原有应用、各种数据库、商业伙伴的系统等,甚至是Internet上的公共信息系统。

Connectors的优点:
为客户的电子商务提供事件驱动的、同步的连接;或者基于消息中间件的可靠的、异步的连接;
为商业伙伴和在线交易者提供异步的、松耦合的B2B连接;
为供应链管理和采购过程集成提供同步的、紧耦合的B2B连接;
提供基于CORBA的同步远程调用,通过基于浏览器的交互建立企业系统与客户系统或者是商业伙伴的连接;
提供预定义的轻型架构,使集成中心可以提供集成服务,最终简化集成的实现和维护。

2.5 Collaborations

Collaborations是所有解决方案的核心。Collaborations提供了一个图形界面,用于定义普通的业务流程或企业特有的业务流程的各个步骤。这些业务流程可能涉及客户、订单、发票或者是其他商业信息。

Collaboration通Connector的隔离作用,可以做到与具体某种应用系统的隔离,即独立于应用系统(Independent on applications),它内部处理的都是GBO。这样,所有的Collaborations都充分利用了Common Business Object Model(通用对象模型), 以帮助使用者减少初始化的工作量和运行维护的工作量。该通用对象模型是Business Object Model的父集,被广泛应用于已封装的应用中。

Collaborations描述了业务流程的逻辑,在Interchange Server中被运行。它包含了对业务进行处理和整合的逻辑来协调所有流程中的操作和数据传输。Collaborations是具有许多特殊特征的Java 程序。与Collaboration相关的两个重要概念是:

  • Ports(端口) - Ports是出、入Collaboration的接口,即Collaboration和外界相连的接口,通过Port接收和发送BO。在部署时,当配置一个Collaboration时,Ports被绑定到一个特定的BO和一个特定的Connector、Server Access Interface或另一个Collaboration的Port上。绑定过程定义了哪个BO将进入Collaboration或者从Collaboration中输出以及它的源和目的。
  • Collaboration Templates(协作模版)-Collaboration Templates定义了业务流程的处理逻辑,但它是不可执行的。ICS提供图形工具Process Designer来创建Collaboration Templates。
  • Scenarios(场景)- 每一个Collaboration包含一个或多个Scenario,Scenarios是Collaboration内部的若干处理逻辑的组合。他们是处理输入BO,执行业务/整合逻辑,产生输出BO的处理历程。某个业务逻辑可以用一个单一的Scenario来完成,也可以用多个Scenario来完成。Scenarios继承整个Collaboration的配置属性,例如:Scenarios继承Collaboration部署之后产生的绑定结果。
    在Scenario内部,包含Activities, Decisions, Flow control等基本元素。其中,Activities是某一具体的操作步骤,比如:它可以是创建一个新的BO,发送一个Request BO,获取或设置BO的属性等等。Decisions代表判断条件,如比较两个BO的某些属性。Flow control是通过Decision或Activity的结果,决定流程的控制走向。
  • Collaboration Object(协作对象)-在对Collaboration Template配置和绑定之后,要在其基础上生成Collaboration Object,与Collaboration Template不同的是:Collaboration Object是可执行的。当符合条件的BO到达ICS时,会有一个相应的Collaboration Object的实例(instance)生成,并对BO进行处理。

在运行状态,一个Event BO的接收通常会启动一个Collaboration。事件代表了Collaboration外部的一个动作的发生,它进而触发起对BO的处理过程。Collaboration通过连接层接收Event BO。当一个Event BO被接收,Collaboration中的一个Scenario将开始处理该BO。如果业务/整合逻辑需要与整个系统的其他部件交互,Collaboration将会产生一个Request BO,并通过一个Port被发送到它的目的地。进一步的处理会在接收到Response BO时完成。

Collaboration也支持互相嵌套和连接,方法是将某一个Collaboration的某一个Port口绑定到另外一个Collaboration上,当Collaboration被绑定到一起时,会形成Collaboration Group。Collaboration之间的关系通过在它们之间传输的BO来定义。Collaboration Group的使用使得复杂的业务/整合流程的实现以及不同流程之间的Collaboration的重用成为可能。

Collaboration可以配置成为允许并行处理,如:多个Scenario可以被并行处理。假设多个被触发的BO之间没有序列关系,接收这些BO的Scenario可以同时运行。

Collaboration可以具有交易性的,也可以是不具有交易性的。不具有交易性的Collaboration不具备回滚它们的操作的能力。对于不具有交易性的Collaboration,当有错误发生时,错误仅仅被纪录日志,但不发生回滚操作。具有交易性的Collaboration在ICS的交易服务中运行,该交易服务可以控制处理、回滚和隔离检查。实际上,交易上下文在Scenario级别上被建立,在具有交易性的Collaboration中,交易当Scenario开始执行时开始,随Scenario结束执行时结束。当Collaboration成为一组被处理时,被调用的Scenario将会在调用它的Scenario的交易上下文中被执行。

具有交易性的Scenario的一个子交易步骤是这样一个步骤,它发送一个request Business Object到一个应用,导致应用内部的数据的改变。通常情况下,应用程序将在它自己建立的交易上下文下执行数据的改变。由于应用程序交易上下文不能被ICS管理,所以当在一个Scenario中,在不同子交易的步骤之间需要回滚时,必须要用补偿交易(Compensating transaction)来实现。补偿交易可以被定义成Scenario中的一个步骤,当Scenario执行出现错误需要回滚时,ICS将会执行相应的补偿交易。

需要强调指出的是,补偿交易的功能及对交易性的完善支持是ICS的一个重要优势。

另外一个在集成环境下管理交易的复杂性表现在:在整合架构中无法管理应用程序这个层面上的数据的隔离。换句话说,一旦一个应用程序交易(指前面提到的Scenario中的子交易)完成后,该应用程序中的数据既被解锁。应用程序数据便可以被在集成架构之外的其他应用程序更改。为了解决这个问题,ICS的交易服务提供隔离检查。隔离检查功能使用连接层提供的功能来监控在一个Scenario中被多次使用的应用程序数据。通过隔离检查,如果数据在Scenario存取它的过程中发生了改变,就会产生错误报告,同时出错处理程序会去处理它。

由于不同的Scenario有不同的交易性需求和特点,在ICS中,我们对Collaboration提供了四个不同的交易管理层次:

  • None-显然,None代表没有交易性要求,Collaboration不具有交易性。在Collaboration执行过程中出错时,会产生错误日志,不会有回滚步骤。
  • Minimal Efforts-当不需要隔离检查时,即:被某一个子交易改变的数据不会被系统中的其他部分再改变,这时,使用Minimal Efforts。如果在Scenario的执行过程中出现错误,ICS回滚该Scenario,执行针对每一个子交易步骤的补偿步骤。
  • Best Efforts-这个层次提供隔离检查,适用于当Collaboration需要数据一致性,而应用程序不提供数据加锁的功能。隔离检查功能来验证数据在两次被Scenario存取时是否发生了变化。当数据被改变时,会有相应的出错处理。对这种层次,回滚处理也包含在补偿交易中完成。
  • Stringent-该层次提供了最严格的隔离检查,但是它依赖于应用程序对数据加锁的能力。这个层次,Connectors在进行隔离检查时将对数据加锁。错误处理和回滚与Best Efforts相同。

所有的Collaboration运行在ICS环境中并使用它所提供的服务。ICS为Collaboration提供多线程的,基于Java的运行环境。在这个意义上,ICS和Collaboration的关系就像应用服务器和Web应用程序的关系一样。如ICS的功能之一就是,缓存(Cash)BO以提高性能、存储BO在永久性介质中,便于系统重起和恢复时使用。其他ICS提供的服务有:Event management services(事件管理服务)--事件管理服务永久性地存储Collaboration接收的所有BO, 并且在系统恢复和重启时使用这些BO。它们还提供事件序列(Sequencing)和事件隔离功能,这对于维护不同应用之间的数据一致性非常重要。

事件序列(Sequencing)保证同一个Collaboration的两个线程不同时操作同一个数据。如:欲将某员工的工资在原有5000元的基础上增加1000元,而由于误操作,设为了3000元,发现后,又改为6000元。如果后两个操作顺序有误,则会是先改为6000元,再改为3000元。从而发生错误。ICS的Event sequencing机制能够做到:如果多个事件有同样类型的BO和键值,ICS将它们排队,并且按照它们到达的顺序发送它们。之前接收第一个事件的Collaboration线程必须在后接收事件的Collaboration线程之前结束执行。事件顺序被顺序执行,即使是在多线程环境下,尽管不同的线程执行的速度不同。

事件隔离机制保证两个Collaboration不会同时处理相同的数据。有时,多个Collaboration可以处理相同类型的BO。某个事件的到达触发一个特定的Collaboration。该Collaboration开始执行,当它执行时,它在ICS中拥有对相关BO的唯一读写权。如果相关同样数据的另外一个事件到达时,ICS将其排队,直到Collaboration完成它的上一个操作。

概括而言,Collaboration可以提供以下方面的功能:

1)Database connectivity services--数据库连接服务。在ICS中拥有一个数据存储库(它可以使用多种数据库)。该存储库存储了Collaboration的定义、Connector的定义、BO的定义和其他配置信息。
2)High Availability--高可用性。支持Microsoft的群集(Cluster),以及Unix的HA等高可用性配置方案。
3)Transaction services--交易服务。如前所述,ICS提供了交易管理功能。这包括在Scenario层建立交易上下文,跨Collaboration组提供交易控制,跨Collaboration提供数据隔离检查,需要时进行回滚操作。
4)事件管理服务,Connector Controller运行,数据映射/转换服务,恢复(Recovery)服务等。

Collaboration的开发可以使用Process Designer来实现,如图所示:

Collaboration具有如下特点:
业务流程的定义不需要编码工作;
提供预定义的通用业务路由和业务规则;
可以从目标系统或其他应用中定义数据存取;

2.6 Tools(工具集)

ICS的另外一个特点和优势在于它产品的易用性,它提供了各种界面友好,功能强大的图形工具,便于用户对其各种对象的配置和开发,如:对于BO,有BO Designer, Map Designer, Relationship Designer等;对于Connector,有Connector Configurater等; 对于Collaboration,有Process Designer等。另一方面,在系统管理和配置方面,它提供了Configuration Wizard用于对ICS的系统配置以及ICS System Manager的系统管理工具。

系统管理功能是任何处理系统在系统架构方面的一个重要考虑,与其对整合的架构更是一个重要考虑的因素。许多应用本身提供了系统管理的功能,但是对于一个高度整合、跨多种应用的系统而言,在系统架构层面上同样存在系统管理的需要。Hub架构一个重要优势就在于可以实现对整个系统的集中控制和管理。ICS提供了十分友好的图形开发界面,用户可以快速地开发、部署和维护您的集成平台。如果使用一个SNMP远程管理器,可以通过安装ICS代理,来提供从远程系统管理器来监控和管理系统的能力。更值得高兴的是,ICS自身提供了一个完善的系统管理工具,ICS System Manager。

System Manager提供了十分友好的图形开发界面,可以进行有效地安装和运行时管理。它可以与多个ICS服务器连接,可以启动、停止Collaboration、Connectors以及ICS本身。如果某一个特殊的业务流程需要按照特定的计划来启动、停止或暂停,我们可以通过配置ICS来实现这种需求。当Collaboration和process执行的时候,System Manager同样提供了监控和跟踪流程运行状态的功能。

如前所述,Connectors和Server Access Interface利用ICS的映射功能来完成数据即BO的传输。这种传输依赖于被连接的应用的数据模型以及ICS本身的通用业务对象模型(Common Business Object Model)。除了在创建BO时,ICS提供了BO Designer之外,要定义和创建这些BO之间的数据映射,ICS还提供了两个开发工具:Map Designer 和 Relationship Designer。映射是在ICS环境下运行的Java 方法,它定义了如何将一个BO的属性转换为另一个BO的属性。Map Designer工具提供了定义和编译这些Java例程的功能。Relationship定义了Attribute(属性)之间的联系,尤其是定义了如何转换那些逻辑意义相同但表现形式却不同的数据,如:对于城市北京,在一个应用中,用"BJ"来表示;在另一个应用中,用"01"来表示。Relationship定义了如何将"BJ" 和"01"联系起来。Relationship Designer工具提供了定义和编译Map中Rrelationship的功能。下图是Map Designer的界面。

虽然,ICS提供了非常丰富的现成可用的Connector和Collaboration, 但是用户可能会需要创建自己客户化的Connector。ICS 提供了Process Designer来创建客户化的流程;除此之外,ICS提供了Connector Development Kit开发工具让用户开发自己的Connector。

2.7 Trading Partner Interchange(TPI) for B2B

企业与企业之间(B2B)的往来和连接,与企业内部的整合环境相比,往往需要另外一些附加的功能和协议的支持。ICS除了实现企业内部的应用整合和流程整和功能之外,它还提供了全面的B2B的解决方案。ICS的Trading Partner Interchange,以下简称TPI,就提供了这方面的功能。

TPI通过Connector与ICS紧密集成。它提供的面向B2B整合的功能包括:

  • 特殊协议的支持:HTTP,FTP,SMTP
  • 安全性支持,这些包括: privacy, authentication, data integrity, non-repudiation。支持证书的管理和交换。
  • 对标准的B2B相关标准的支持,如RosettaNet, EDI等。

为了更好地支持EDI标准,TPI提供了专门的工具。该工具提供了将EDI格式的数据转换为ICS的BO的功能。该工具提供了内置的对X.12和EDIFACT标准格式的支持,通过GUI可以定义所需的转换。

2.8 预定义的行业业务流程模板

ICS提供了预建的一些业务逻辑模板,这些模板包括一些通用模板和若干适用于不同的行业的模板,用于可以直接使用这些模板,或在这些模板的基础上,经过少许改动,开发出客户化的模板。这是ICS产品为用户提供的增值解决方案。目前,ICS提供了对许多行业的典型业务流程模板的支持,如:电信行业,金融行业,制造业等。

2.9 Technology:

ICS系统底层建立在很多技术的基础上。基础的ICS平台需要操作系统的支持,它运行在它自己的Java虚拟机上。Visigenics Visibroker Object Request Broker(ORB)用来实现Collaboration和Connector之间以及Connector Controller和Connector Agent之间的通讯。MQ可以用来实现在Connector Controller和Connector Agent之间交换ASBO。ICS的数据存储可以用SQL Server、Oracle、DB2等关系型数据库来完成。

3 WBI 产品组成

WBI包含了一套完善的、强大的产品包,提供了从信息整合到流程整合的所有相关产品。WBI包含了实现所有上述功能所需的所有相关组件以及许多预建的一些行业业务流程模板和Connector。以下是WBI与ICS相关的产品组成列表:

3.1 Server

IBM WBI Interchange Server

3.2 Connectivity

IBM WBI Serverless Trading Agent      
IBM WBI Access Framework     
IBM WBI Trading Partner Interchange    
  With add-on feature Trading Profile
IBM WBI Trading Partner Interchange for Trading Networks 
  With add-on feature Trading Profile
IBM WBI Trading Partner Interchange for ASPs and Exchanges 
  With add-on feature Trading Profile
IBM WBI Trading Partner Interchange Solo    
IBM WBI Resource Adapter for Interchange Server  
IBM WBI XML Data Handler     
IBM WBI EDI Data Handler

3.3 Application Connectors

IBM WBI Connector for Broadvision 4.1    
IBM WBI Connector for Broadvision 5.0    
IBM WBI Connector for Broadvision 5.5    
IBM WBI Connector for Clarify 8     
IBM WBI Connector for Clarify 8.1     
IBM WBI Connector for Clarify 8.5     
IBM WBI Connector for Clarify 9     
IBM WBI Connector for Clarify 10     
IBM WBI Connector for i2 Active Data Warehouse 4.x  
IBM WBI Connector for i2 Active Data Warehouse 5.x  
IBM WBI Connector for MetaSolv TBS 4.x    
IBM WBI Connector for MetaSolv TBS 5.x    
IBM WBI Connector for Oracle Applications 11i   
IBM WBI Connector for Oracle Applications 11   
IBM WBI Connector for Oracle Applications 10.7   
IBM WBI Connector for PeopleSoft 8.x    
IBM WBI Connector for PeopleSoft 7.x    
IBM WBI Connector for Portal Intranet 6.1    
IBM WBI Connector for SAP R/3 3.x    
IBM WBI Connector for SAP R/3 4.x    
IBM WBI Connector for Siebel 2000    
IBM WBI Connector for Trilogy 3.0     
IBM WBI Connector for Vantive 7.0    
IBM WBI Connector for Vantive 8.x

3.4 Technology Connectors

IBM WBI Connector for JMS     
IBM WBI Connector for e-Mail     
IBM WBI Connector for MQSI V2     
IBM WBI Connector for XML     
IBM WBI Connector for MQSeries     
IBM WBI Connector for JText     
IBM WBI Connector for JDBC     
IBM WBI Connector for MQSeries Workflow   
IBM WBI Connector for SWIFT

3.5 Mainframe Connectors

IBM WBI Mainframe Connector for CICSIBM WBI Mainframe Connector for IMS Transaction Manager IBM WBI Mainframe Connector for IMS Database IBM WBI Mainframe Connector for VSAM IBM WBI Mainframe Connector for DB2IBM WBI Mainframe Connector for ADABAS

3.6 Collaborations

3.6.1 Telecommunications Collaborations

IBM WBI Collaboration for Billing Inquiry    
IBM WBI Collaboration for Customer Account Manager  
IBM WBI Collaboration for Product Catalog   
IBM WBI Collaboration for Service Order Management

3.6.2 Manufacturing Collaborations

IBM WBI Collaboration for AR Invoice Sync   
IBM WBI Collaboration for ATP to Sales Order   
IBM WBI Collaboration for Available to Promise   
IBM WBI Collaboration for BOM Manager    
IBM WBI Collaboration for Contact Manager   
IBM WBI Collaboration for Contract Sync    
IBM WBI Collaboration for Customer Credit Manager  
IBM WBI Collaboration for Customer Manager   
IBM WBI Collaboration for Demand Forecast   
IBM WBI Collaboration for Demand History   
IBM WBI Collaboration for Department Manager   
IBM WBI Collaboration for Employee Manager   
IBM WBI Collaboration for GL Movement    
IBM WBI Collaboration for Installed Product   
IBM WBI Collaboration for Inventory Level Manager  
IBM WBI Collaboration for Inventory Movement   
IBM WBI Collaboration for Invoice Generation   
IBM WBI Collaboration for Item Manager    
IBM WBI Collaboration for Order Billing Status   
IBM WBI Collaboration for Order Delivery Status   
IBM WBI Collaboration for Order Status    
IBM WBI Collaboration for Price List Manager   
IBM WBI Collaboration for Purchasing    
IBM WBI Collaboration for Regen Process Manager  
IBM WBI Collaboration for Return Billing Status   
IBM WBI Collaboration for Return Delivery Status   
IBM WBI Collaboration for Return Status    
IBM WBI Collaboration for Sales Order Processing  
IBM WBI Collaboration for Shipments to Date   
IBM WBI Collaboration for Supply Plan Deployment Regen 
IBM WBI Collaboration for Supply Plan Input Regen  
IBM WBI Collaboration for Supply Plan Input Net Change  
IBM WBI Collaboration for Trading Partner Order Management 
IBM WBI Collaboration for Vendor Manager

3.6.3e-Business Collaborations

IBM WBI Collaboration for Chemical Industry Data eXchange  
IBM WBI Collaboration for RosettaNet

3.7 Tools

IBM WBI Full Toolset

综述:IBM的业务整合解决方案,包含了WebSphere Business Integration产品包,它提供了全套的企业业务整合解决方案,而ICS是其中重要的组成部分。通过ICS,企业可以轻松地集成内部的各种应用;同时还可以增强企业自身系统与外部企业系统的协作与交互,从而改变企业内部的商业流程;同时实现真正的B2B应用,最终从根本上提高企业的核心竞争力。


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=163358
ArticleTitle=WebSphere Business Integration InterChange Server 技术入门
publish-date=08012003