|
EAI概念综述
伴随着EAI技术的不断发展,它所被赋予的内涵变得越来越丰富。现在大家谈到的EAI的概念,具有更为广义的内涵,它已经被扩展到业务整合(Business Integration)的范畴,业务整合相对EAI来说是一个更宽泛的概念,它将应用整合进一步拓展到业务流程整合的级别。业务整合不仅要提供底层应用支撑系统之间的互连,同时要实现存在于企业内部应用与应用之间,本企业和其他合作伙伴之间的端到端的业务流程的管理,它包括应用整合,B2B整合,自动化业务流程管理,人工流程管理,企业门户以及对所有应用系统和流程的管理和监控等方方面面。
同样,对于要实施EAI的企业而言,EAI也是分层次的,但对于如何划分和规范EAI层次的定义,业界并没有一个统一的标准。针对不同的企业,同样叫"企业应用整合",其内容和层次可能就会存在一定的差异;对于各家EAI厂商,基于EAI理解的侧重点不同,也可以说出不同的答案。当前从最普遍的意义上来说,比较宽泛的对EAI概念的理解是认为EAI可以包括数据集成、应用集成和业务流程集成等多个方面。
具体到技术层面上的划分,我们认为一套完整的EAI技术层次体系应该包括应用接口层,应用整合层,流程整合层和用户交互层四个大的层面。
概括来讲:EAI技术层次体系最下面的一层是应用接口层,它要解决的是应用集成服务器与被集成系统之间的连接和数据接口的问题。再往上去就是应用整合层,它要解决的是被集成系统的数据转换问题,通过建立统一的数据模型来实现不同系统间的信息转换。应用整合层之上是流程整合层,它将不同的应用系统连接在一起,进行协同工作,并提供商业流程管理的相关功能,包括流程设计、监控和规划,实现业务流程的管理。到了最上端的用户交互层,则是为用户在界面上提供一个统一的信息服务功能入口,通过将内部和外部各种相对分散独立的信息组成一个统一的整体,保证了用户既能够从统一的渠道访问其所需的信息,也可以依据每一个用户的要求来设置和提供个性化的服务。
接下来,我们将分别阐述这四个主要的技术层面。
1 应用接口层
EAI要解决的问题是独立应用系统之间的连接,传统的应用系统之间的连接方式包括了:CORBA, SOCKET通讯, RMI, RPC, EJB, COM/COM+, HTTP和FTP等,数据库系统之间常见的连接规范包括:ODBC, JDBC。上述这些规范在企业应用系统或数据库系统之间传统的点对点的连接中得以广泛应用。但是由于这些系统之间的连接是通过上述连接接口实现的,没有一定的规范和标准,使得在今后新系统的加入和旧系统的移植过程中,就会产生接口兼容性问题。
而在EAI的应用接口层,主要是通过适配器技术将原有数据库系统、应用系统和原有网络服务组件封装起来,实现系统之间的互通互联。
适配器是EAI厂商或产品厂商为了解决系统之间的连接而开发的可重用的、统一的接口,通过该接口每一个应用系统仅需要与业务整合平台相连,而不需要与每个与之交互的应用系统相连。适配器的引入主要有以下优点:
- 为独立的系统之间提供重用的、统一的接口;
- 支持事务管理、安全性和连接管理与应用系统连接;
- 增加企业数据资源的共享程度;
- 适配器封装了对数据操作的缓冲区,可以提高对数据批处理访问的效率;
- 增强了基于组件或面向对象开发模块的网络应用的功能,这些组件或对象包括:如COM, DCOM或CORBA等。
适配器一般可分为四类:即企业应用系统适配器、技术标准类适配器、主机系统适配器和自行开发适配器。
1) 企业应用系统适配器
企业应用系统通常指的是那些大型的,集成封装程度很高的应用软件系统,常常被应用在ERP,CRM,SCM等领域内。诸如:JD Edwards, Lotus Notes, PeopleSoft, SAP R/3, Siebel, SWIFT 系统等等。对上述系统的连接一般有两种方式可以选择:
- 企业应用系统厂商提供的连接解决方案
- 专业EAI厂商提供的应用适配器
企业应用系统产品厂商一般都会提供自身的EAI解决方案,比如SAP的ALE/IDocs和BAPI、Siebel的e-business 2000、Oracle提供的中间件OAI(Oracle Application InterConnect)和PeopleSoft的PeopleTools。这些方案均提供了对外部系统连接接口,来实现数据交换、流程整合等业务功能。而专业EAI厂商提供的应用适配器则通常是建立在产品厂商EAI解决方案的基础之上,并很好地封装了复杂的系统内应用逻辑。比较而言,供应商自身所提供的EAI解决方案更多地关注的是和自身其它产品的集成优化,对多元化的其他集成对象不能提供更优秀的集成性能。而专业EAI厂商所提供的企业应用系统适配器不仅能够保证被集成产品覆盖面的广泛,比之前种方式又屏蔽了这些应用系统内部的复杂逻辑,减少了对相应适配器编程接口的学习时间。因而在选择EAI平台时,应尽可能选择专业EAI厂商所提供的企业应用系统适配器。
2) 技术标准类适配器
除了与打包的商业应用系统相连的适配器之外,还有一种非常重要的适配器,即通过业界标准或其他技术手段和应用系统相连的适配器,如:JDBC, XML, Web Services, JMS,文件适配器等,比如,其中最为常见的是数据库适配器。当前很多企业的应用系统都是基于数据库为后台构建而成,因而数据库适配器在整个适配器分类中占了很大一部分比重。在构建EAI平台时,采用合适的数据库适配器,可以省去传统的编程工作,大大提高了开发效率,减轻了技术人员的工作负担。
除了数据库适配器之外,符合JCA标准的适配器也是目前J2EE环境下一种常见的技术标准类适配器。JCA是在J2EE1.3的版本规范中提出的,由企业信息系统(EIS)厂家来执行和提供。JCA的资源适配器是规范化的EIS代理,可插入到任何符合J2EE规范的应用服务器中,并通过应用服务器提供的标准EIS访问接口-通用客户机接口(Common Client Interface,CCI)来对EIS执行操作。JCA向基于EAI的应用程序开发者提供了一个将EIS整合进入J2EE的标准方法。此方法定义了一套开发者能在J2EE环境中使用的通用API和服务。
3) 主机系统适配器
对于某些行业中常见的主机(Mainframe)结构,EAI产品也会提供相应的适配器,这些适配器会提供业务应用和数据库与主机之间的实时双向交易,由于主机中的逻辑组件一般包括CICS,IMS, COBOL, MQ Series, DB/2等,相应地与主机通讯的适配器也包括了CICS适配器, IMS适配器, Files适配器 、Sockets适配器和DB2适配器等。
4) 自行开发适配器
为了方便用户开发自己需要的适配器,EAI产品需要提供适配器开发工具包(Adapter Development Kit,简称ADK。ADK对EAI产品逻辑进行了封装,对开发者来讲,利用ADK只需要将注意力集中在所连接系统的接口实施上。
2 应用整合层
应用整合层是EAI技术层次体系中的核心层次,该层次是连接业务流程管理层和应用接口层的桥梁。数据信息在业务流程中的流转以及在各个应用系统之间的交互必须建立在数据源和数据目的地都能理解该数据信息的基础之上。在应用整合层我们定义了能为数据产生源、数据处理地、数据投送地都能理解的信息处理规范方式、方法和规则,包括:数据格式定义、数据转换和消息路由。
2.1 数据格式定义
数据格式定义是EAI执行信息处理的基础。一般认为数据是信息的载体,数据只有通过一定的方式对信息内容进行标识,转换为统一格式之后,才能实现在不同的异构系统间的发布和共享。换句话来讲,EAI如果缺乏一种对数据格式的统一描述方法,就会使得信息载体所采用的数据封装形式有所不同,无法保证经过转换后的目标数据能够完全准确地表达源数据的信息,造成信息的丢失。
作为数据格式,通常有三种方式:
- 使用特定行业已经存在的标准
- 使用 XML 作为数据格式的统一描述语言
- 用户自定义格式
如EDI,SWIFT就是某些行业的标准数据格式之一,而XML作为开发性数据描述语言,除了大量应用在因特网技术及文档描述中,在数据交换中也承担了一个重要的角色。作为一种与平台无关的标准文本,XML能够被所有程序语言读写,使用DTD或Schema技术,XML的解释程序就能对文件内容进行验证并处理。
2.2 数据转换
数据转换是应用整合层的重要组成部分,它是指将不同的信息格式和语法重新转换成能被目标应用系统所理解的数据格式和语义的整合技术。数据转换包括两个层面的内容,即数据格式转换和数据语义转换。
- 格式转换.在上节数据格式定义中,我们已经指出了定义EAI数据格式标准的必要性。因此,我们自然希望能够实现任意形式的数据格式都转换成为我们所指定的一种统一、规范的标准数据格式(如XML)上去,在此基础上再来执行后续相关的信息处理工作。当然,这种方式也不是数据格式转换的唯一途径。譬如在对数据传输效率要求很高或者数据传输方向单一的情况下,仍然可以保持沿用原有格式或采用其它中间格式作为替代。
- 语义转换.在现实的数据环境中,不仅数据源是异构的,数据表示十分复杂,数据之间的语义联系也相当丰富。数据要在不同的应用系统之间或者业务流程之间交流,必须确保交互的双方对数据表达的语义有统一的认识。EAI平台上应该建设一个全局的语义完整性控制,在应用整合层面上解决由于各局部数据库的异构性而引起的在数据对象的命名、数据的格式以及数据结构等方面存在不一致的问题,为全局用户提供全局数据信息的集成和统一的表示。
2.3 消息路由
消息路由通常是指为了使消息在不同的消息域中共享,而将消息从一个域路由到另外一个域的信息处理手段。消息路由建立在已有数据格式定义和数据转换基础之上,通过消息中间件技术能够动态的识别和理解从源应用发出的消息并且把它发向特定的应用系统。
3 流程整合层
3.1 流程整合概述
业务整合着眼于提高每个业务流程的效率和效能,利用业务整合,业务流程被推向解决方案的最前沿,通过采用成熟的技术可以成功地创建模型,自动化流程处理过程,监控和管理这些业务流程,从而满足业务变化的需求。它通过同时协同人工参与流程和自动化运行的流程来整合一个跨越企业内部同部门和不同系统之间的业务流。由于业务整合致力于从高瞻远瞩的角度来优化和协同企业内部的业务流程,它提高了投资回报率,它使得业务人员和IT人员获得一个面向服务的、统一全面的企业组织架构视图,并创建一个可以通过IT技术实现的业务流程平台,从而帮助企业获得成功。
业务整合的第一步是定义端到端的业务流程,这里的难点在于由于很多业务流程可能跨越了多个部门,所以没有某一个人可以完全了解和负责某个流程,对流程的定义和规划可能需要多个业务经理的参与,为了完成流程建模任务,业务分析人员需要创建模型,然后与相关的参与者沟通和交流直到最后对流程模型进行确认,同时对流程进行优化。因此,要求业务整合平台能够首先提供一个强大的建模环境,并且支持对流程的分析和再优化。
创建完流程模型之后,我们需要将其投入运行实施,业务流程重组失败的原因往往在于不能在最大限度地重用现有系统的前提下来实施流程的自动化,而业务整合解决方案可以在不修改或者尽量少地修改原有应用的情况下来整合和驱动横跨这些应用之间的业务流程。
某些业务流程可能会超出企业内部的范畴而涉及到其他合作伙伴或者用户,我们需要尽量减少这些流程中的人工交易,从而降低流程的运行周期和成本,提高流程自动化程度和客户满意度。
另外,对于企业中的各种业务流程,我们需要对其进行实时的、端到端的监控,业务经理如果能够随时看到有关关键性能指标的统计,如:货物发送的数量,过期的订单数量等,通过这些统计数据,他们可以采取积极的措施来优化业务流程,提高客户满意度。
最后,为了保持企业的竞争优势,企业需要有效地管理它们的业务流程,持续地对其进行优化,这包括对业务流程的分析,对优化后流程的仿真运行,对流程功能的修改和增加等;如果企业采用相应的能够对流程仿真运行,并且估算优化后流程的相应性能指标的实用工具的话,就能够很好地帮助企业优化其业务流程,提高投资回报率。
概括而论,一个完整的业务流程整合方案应该包括BPM、BAM、B2Bi三个主要方面,只有具备了这三方面的能力,企业才能真正从业务整合中受益,实现随需应变的电子商务。
3.2 业务流程管理(BPM)
BPM是在企业范围内实现业务流程自动化,使得企业应用之间不再孤立,企业的软件更加模块化、标准化,从而使企业变得更加敏捷更加灵活。BPM能够用来实现企业内的流程自动化,常用的就是实现跨系统流程的自动化。BPM最突出的,是能够实现自动和手工混合流程的自动化,把流程中涉及的系统连接起来,实现业务步骤(包括手工的和系统实现的)的自动化。多个流程可以作为独立的单元进行存取,也可以联合起来形成一个更高层次的流程。BPM是一个完整的企业应用集成实现策略,它使企业内的一个个分离系统变成了一个支持业务过程的连续系统,满足企业的整个业务过程需求。在一个基于流程的企业中,企业为其所有的业务事务处理都清楚地定义了过程,企业的每一个活动都是为了完成特定的业务过程任务,而与过程任务无关的活动都被排除在企业之外。业务流程通常都是由事件驱动的,事件就是由用户行为、软件或时间等引起的一些活动或状态。BPM实现了跨越多个异构的应用系统的业务过程自动化。
业务流程分企业内部业务流程和企业外部业务流程。因此,企业需要实现的业务流程集成分为三部分:内部业务流程集成,外部业务流程集成,内外部业务流程集成。企业的内部业务流程集成是由通过BPM实现的,外部的业务流程集成是通过B2Bi实现的,内外部业务流程集成是通过BPM和B2Bi共同实现的。
BPM实现了一个平台两种业务流程模式(业务流程自动化和人员介入工作流)的融合能力,包括流程建模、流程监控、工作流等方面。
- 流程建模
流程建模是对业务模型进行集中设计并对模型进行管理。流程建模使用活动图形和常用结构图等模型结构来设计业务模型,用图像显示方式建造内部和外部不同组织的控制流模型。流程建模通过组织外界用户和合作伙伴,表述部分外部控制的业务流程,创建流程架构(流程和子流程分组),实现层次控制和流程再利用。流程建模可以集成企业应用系统、主机系统、数据库、应用服务器、员工工作流程和企业接入业务伙伴系统,同时为业务分析师提供了可视的、易懂的程序自动化解决方案。EAI平台提供可视化的流程建模工具,包括图形化的流程设计和管理界面,流程运行时可视化的维护管理和监控分析界面。
- 流程监控
流程监控是对系统中的核心业务流程进行分级和分类(分级可以按照业务的优先级来划分,分类可以按照业务类型进行规类)的管理。使用预定义的图形格式,监查特定流程实例,对业务流程的动态执行过程实时跟踪,并对业务流程执行情况(如业务流程执行成功、失败、回滚)进行统计。通过流程监控,从业务的角度来分析业务流程,为高层提供决策支持。流程监控还提供通知和预警机制,能够更有效地控制业务流程的运行。
- 工作流
业务流程自动化只是解决了业务流程管理中的部分问题。譬如说,随着程序的自动化,人的工作就集中在异常事件的处理。然而,当需要员工作出频繁判断、决策标准确定、需要层层审批,或需要用户确定丢失命令位置等分析工作时,流程自动化就不适合了。
工作流是指那些需要人工进行干预的业务流程(这里要说明的是对于全自动化的流程和有人工参与的流程,没有一个标准的称谓名称,某些厂商认为业务流程是指没有人工参与的流程,而工作流是有人工参与的流程,在这方面没有统一的标准)。工作流的实现是通过基于可视模型,管理和实现以人为本的业务流程的不断精简,通过设计、部署、管理并维护工作流,可分阶段部署工作流,不用在控制工作流的效益实现前就对所有业务流程重新设计,并把工作流覆盖到企业的各个方面。
工作流通过人机交互界面的方式来定制,在使用上支持客户端。通过EAI平台提供的图形化的设计工具,工作流无需编程即可支持快速的、组织管理严密的流程开发和部署。用户可以在工作流设计中完成流程中数据结构的定义,进行数据映射,无需编写代码。工作流在设计上支持路由选择、连接、控制、比较、计时和通知等设计功能。同时EAI平台提供的协同工作,版本管理功能,能在不影响运行工作流程的情况下,升级和部署业务流程。
通过流程监控,可以监控工作流上的所有工作流的状态,包括:工作流是否被激活,工作流被执行到哪一个任务环节,工作流中的某一任务是否已经被处理或正被处理等。
3.3 业务行为监控(BAM)
关键绩效指标是对企业总体战略目标的分解,反映最能有效影响企业价值创造的关键驱动因素。BAM是对关键绩效指标的访问,采用实时监控、警报、干预方式,获得商业运作的实时数据,,来改进商业运作的速度和效率,为今后商业活动提供警报。BAM是EAI技术当前发展最为快速、业务高级优化最有效的手段,其宗旨在于实时获得业务流程运行的状态,自动提供客观分析报告,以优化、改进业务流程,其改进包括技术层面,也包括人员、管理层面。
尽管BAM将经常使用数据仓库和其他工具提供与业务警报有关的信息,但BAM不是历史记录的回顾,它专注在跨应用系统的监控,把来自于多个逻辑或物理独立的资源的事件和消息联系在一起,提供满足业务需要的实时监控。BAM在技术实现上包括EAI中的应用集成和业务流程管理(BAM中的业务监控是由BPM中的业务监控实现的),以及EAI与商务智能,数据仓库和网络系统管理这些其他技术领域的技术集成。虽然BAM的实现需要EAI外部的商务智能,数据仓库和网络系统管理技术的辅助支持,但BAM是从EAI出发实施业务流程管理和应用集成,因此BAM仍被化归为EAI的业务流程管理层的范畴,它是EAI的一个的发展趋势。
BAM的是在企业实施完BPM方案的基础上发展起来的。企业在实施完BPM(业务流程管理)解决方案之后,可以从业务流程层面,快捷、方便的进行业务设计和业务部署能力。同时通过业务流程监控工具,采集业务流程运行的实时信息,对业务流程进行管理。许多决策分析工具可以帮助用户采集大量业务基础数据,并对这些数据进行抽取,挖掘,多维分析,最终为决策层提交业务操作报告,确定业务操作的不足,为决策层制定企业的进一步发展规划和实施策略提供众多的管理信息。但是,目前的决策分析工具所采集的业务基础数据基本上是采用批量导入的方式,实时性比较欠缺。众多业务基础数据已经被记录到核心的运作数据库中,因此,如何有效地把实时的业务数据和决策分析工具完美地集成起来,为决策层提供经过实时分析得到的管理数据,就是BAM(商务活动监控)需要解决的问题。通过实施BAM,企业具备了敏捷型企业所要求的素质,快速地响应市场变化,快速地调整业务策略,快速地实施业务流程,同时根据反馈的信息进行快速地优化调整。
BAM结合AI(应用集成),BI(商业智能),BPM,DW(数据仓库),NSM(网络服务管理)等技术,让各自领域内的优势与对方充分融合,为企业提供统一的企业集成和实时可见的商务活动平台(BAP),为企业提供了把端到端集成与实时可见商业智能(BI)相结合的解决方案。
3.4 企业间整合(B2Bi)
B2Bi即B2B Integration,指企业间的信息整合,即企业合作伙伴间,集合彼此的业务流程、应用软件、资料及Web功能,使参与的商业伙伴均能够即时获得相关信息,并予以回应,使企业充分协同作业并达到企业延伸,目的在于使得企业社群整体皆能获利。B2Bi基于外部网络(如Internet),安全而有效地实现信息交换与交易发生。不同贸易伙伴间存在不同的贸易协议与数据格式,同样通过协议转换与数据传输服务,实现这些信息的发送、接收与验证。B2Bi关注于企业对外的业务流程集成,BPM关注于企业对内的业务流程集成,EAI的解决方案应该有能力来整合这两方面的问题。
B2Bi做为EAI规范标准的一部分,在EAI中的作用主要侧重于企业合作伙伴上下游间的流程整合。它与EAI处理企业内部在应用程序和资料上的整合方式非常相似,如两者间所使用的技术非常相似,都是以中间件作为不同系统间传递讯息的机制,此外两者的整合方式也非常相像,大部分情况下,在执行企业整合前,应当先整合企业内部资源。
4 用户交互层
用户交互层是EAI与用户实现人机交互在表示层面上的扩展。涉及的内容包括展示内容的集成(门户应用)、单点登陆(Single Sign On)、用户统一管理、用户认证授权的管理等。现今很多EAI产品都提供了对用户集成这几方面内容的支持。
EAI解决方案中除了涵盖以上这四个层面之外,当然还需要提供一些基础服务,如底层的数据通讯服务,信息安全服务,事物处理服务,系统管理服务等,这里就不再详细阐述了。
5 EAI的发展方向
随着EAI以及Web Service技术的成熟和发展,近期出现了SOA, ESB, BPEL4WS 等新的概念,这些新的技术将成为未来EAI实现的新的技术手段和发展趋势。 其中服务导向的架构(Service-Oriented Architecture, SOA)是透过业务服务的概念来提供IT的各项基本应用功能,让这些服务可以自由地被排列组合、融会贯通,以便在未来能随时弹性配合新的需求而调整。Web Services是SOA的一种具体实现方式,SOA的世界是由服务提供者(Service Provider)、服务请求者(Service Requester) 以及服务代理者(Service Broker)所组成,目标是将所有具备价值的IT 资源,不论是旧的或新的,通通都能够透过Web Services的包装,成为随取即用的IT 资产,并可将各种服务快速汇整,开发出组合式应用,达到「整合即开发」的目的。
SOA的架构只是实现和解决了服务模块间调用的互操作问题,为了更好的服务于企业应用,引入了企业服务总线的应用架构(Enterprise Service Bus,ESB)。这一构架是基于消息中间件(Messaging Middleware)、智能路由、数据转换等技术实现的。ESB提供了一个基于标准的松散应用耦合模式,ESB由3层构成:
- 总线接入层:通过这一层可以使用户各种应用接入ESB,使用ESB的各种服务。在这一层提供对多种主流应用的接入协议支持,如HTTP、JCA/J2C、.NET,IBM/CICS等。同时考虑到一些客户自己定制的应用与ESB的连接,在总线接入层提供了适配器服务。
- 核心层:提供多种企业服务总线所需的必要服务支持,在这一层除了提供总线基本服务(如分发/订阅、队列、安全服务、仲裁服务等)外,还提供了QoS的支持(如高可用性、确保消息传输等)。
- 微流程组合/拆分&定制路由层:这一层是侧重在业务支持上。通过通用和标准的对象和服务模型,可以在这一层上定义可重用和基于业界标准的业务流程。
而BPEL4WS,即Web 服务的业务流程执行语言,是基于Web 服务的一个新的流程描述语言的标准,利用BPEL4WS标准,您可以创建出能够完成如 Web 服务调用、操纵数据、抛出故障或终止一个流程等工作的不同活动,然后将它们连接起来,从而创建出复杂的流程。
由此看来,EAI技术是业界的一个发展趋势,越来越多的企业将采用EAI解决方案,并从中获益,希望本文能使大家在对EAI技术层面的理解上有所收获,更加准确地了解EAI的内涵,从而选择正确的EAI解决方案和实施路线。
关于作者
娄丽军,IBM公司软件部售前工程师,1998年加入IBM公司软件部,四年来一直从事IBM通讯及业务整合中间件(WebSphere Business Integration家族)产品的技术支持工作,是软件部从事该领域技术支持时间最长的工程师之一,拥有WebSphere Business Integration相关的产品经验,这些产品包括WebSphere MQ家族的所有产品:MQSeries, MQ Integrator, MQ Workflow以及CrossWorlds等,并具有很多大型项目的支持经验,曾参与国家税务总局,人民银行清算系统、华夏银行电子联行系统、中国联通计费系统、海关与国家税务总局互连系统,以及公安部、铁道部、中信实业银行、电信等重要客户的有关项目的技术支持。
企业应用整合(EAI)的概念在IT界提出和讨论已经有几年的历史了,最初大家谈到的EAI的概念,相对后来EAI的发展来看,可以说是一个狭义上的EAI,正如其字面上的含义"Enterprise Application Integration",即企业应用整合,仅指企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统之间的同步和共享。 |
|
|