<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->转自http://www.ibm.com/developerworks/cn/websphere/library/techarticles/loulijun/0412/eai.html
本文介绍了EAI的概念,并对一套完整的EAI技术层次体系中的不同层面进行了详细的讲解。
企业应用整合(EAI)的概念在IT界提出和讨论已经有几年的历史了,最初大家谈到的EAI的概念,相对后来EAI的发展来看,可以说是一个狭义上的EAI,正如其字面上的含义"Enterprise Application Integration",即企业应用整合,仅指企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统之间的同步和共享。
伴随着EAI技术的不断发展,它所被赋予的内涵变得越来越丰富。现在大家谈到的EAI的概念,具有更为广义的内涵,它已经被扩展到业务整合(Business Integration)的范畴,业务整合相对EAI来说是一个更宽泛的概念,它将应用整合进一步拓展到业务流程整合的级别。业务整合不仅要提供底层应用支撑系统之间的互连,同时要实现存在于企业内部应用与应用之间,本企业和其他合作伙伴之间的端到端的业务流程的管理,它包括应用整合,B2B整合,自动化业务流程管理,人工流程管理,企业门户以及对所有应用系统和流程的管理和监控等方方面面。
同样,对于要实施EAI的企业而言,EAI也是分层次的,但对于如何划分和规范EAI层次的定义,业界并没有一个统一的标准。针对不同的企业,同样叫"企业应用整合",其内容和层次可能就会存在一定的差异;对于各家EAI厂商,基于EAI理解的侧重点不同,也可以说出不同的答案。当前从最普遍的意义上来说,比较宽泛的对EAI概念的理解是认为EAI可以包括数据集成、应用集成和业务流程集成等多个方面。
具体到技术层面上的划分,我们认为一套完整的EAI技术层次体系应该包括应用接口层,应用整合层,流程整合层和用户交互层四个大的层面。
概括来讲:EAI技术层次体系最下面的一层是应用接口层,它要解决的是应用集成服务器与被集成系统之间的连接和数据接口的问题。再往上去就是应用整合层,它要解决的是被集成系统的数据转换问题,通过建立统一的数据模型来实现不同系统间的信息转换。应用整合层之上是流程整合层,它将不同的应用系统连接在一起,进行协同工作,并提供商业流程管理的相关功能,包括流程设计、监控和规划,实现业务流程的管理。到了最上端的用户交互层,则是为用户在界面上提供一个统一的信息服务功能入口,通过将内部和外部各种相对分散独立的信息组成一个统一的整体,保证了用户既能够从统一的渠道访问其所需的信息,也可以依据每一个用户的要求来设置和提供个性化的服务。
接下来,我们将分别阐述这四个主要的技术层面。
![]() ![]() |
![]()
|
EAI要解决的问题是独立应用系统之间的连接,传统的应用系统之间的连接方式包括了:CORBA, SOCKET通讯, RMI, RPC, EJB, COM/COM+, HTTP和FTP等,数据库系统之间常见的连接规范包括:ODBC, JDBC。上述这些规范在企业应用系统或数据库系统之间传统的点对点的连接中得以广泛应用。但是由于这些系统之间的连接是通过上述连接接口实现的,没有一定的规范和标准,使得在今后新系统的加入和旧系统的移植过程中,就会产生接口兼容性问题。
而在EAI的应用接口层,主要是通过适配器技术将原有数据库系统、应用系统和原有网络服务组件封装起来,实现系统之间的互通互联。
适配器是EAI厂商或产品厂商为了解决系统之间的连接而开发的可重用的、统一的接口,通过该接口每一个应用系统仅需要与业务整合平台相连,而不需要与每个与之交互的应用系统相连。适配器的引入主要有以下优点:
适配器一般可分为四类:即企业应用系统适配器、技术标准类适配器、主机系统适配器和自行开发适配器。
企业应用系统通常指的是那些大型的,集成封装程度很高的应用软件系统,常常被应用在ERP,CRM,SCM等领域内。诸如:JD Edwards, Lotus Notes, PeopleSoft, SAP R/3, Siebel, SWIFT 系统等等。对上述系统的连接一般有两种方式可以选择:
企业应用系统产品厂商一般都会提供自身的EAI解决方案,比如SAP的ALE/IDocs和BAPI、Siebel的e-business 2000、Oracle提供的中间件OAI(Oracle Application InterConnect)和PeopleSoft的PeopleTools。这些方案均提供了对外部系统连接接口,来实现数据交换、流程整合等业务功能。而专业EAI厂商提供的应用适配器则通常是建立在产品厂商EAI解决方案的基础之上,并很好地封装了复杂的系统内应用逻辑。比较而言,供应商自身所提供的EAI解决方案更多地关注的是和自身其它产品的集成优化,对多元化的其他集成对象不能提供更优秀的集成性能。而专业EAI厂商所提供的企业应用系统适配器不仅能够保证被集成产品覆盖面的广泛,比之前种方式又屏蔽了这些应用系统内部的复杂逻辑,减少了对相应适配器编程接口的学习时间。因而在选择EAI平台时,应尽可能选择专业EAI厂商所提供的企业应用系统适配器。
除了与打包的商业应用系统相连的适配器之外,还有一种非常重要的适配器,即通过业界标准或其他技术手段和应用系统相连的适配器,如: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和服务。
对于某些行业中常见的主机(Mainframe)结构,EAI产品也会提供相应的适配器,这些适配器会提供业务应用和数据库与主机之间的实时双向交易,由于主机中的逻辑组件一般包括CICS,IMS, COBOL, MQ Series, DB/2等,相应地与主机通讯的适配器也包括了CICS适配器, IMS适配器, Files适配器 、Sockets适配器和DB2适配器等。
为了方便用户开发自己需要的适配器,EAI产品需要提供适配器开发工具包(Adapter Development Kit,简称ADK。ADK对EAI产品逻辑进行了封装,对开发者来讲,利用ADK只需要将注意力集中在所连接系统的接口实施上。
![]() ![]() |
![]()
|
应用整合层是EAI技术层次体系中的核心层次,该层次是连接业务流程管理层和应用接口层的桥梁。数据信息在业务流程中的流转以及在各个应用系统之间的交互必须建立在数据源和数据目的地都能理解该数据信息的基础之上。在应用整合层我们定义了能为数据产生源、数据处理地、数据投送地都能理解的信息处理规范方式、方法和规则,包括:数据格式定义、数据转换和消息路由。
数据格式定义是EAI执行信息处理的基础。一般认为数据是信息的载体,数据只有通过一定的方式对信息内容进行标识,转换为统一格式之后,才能实现在不同的异构系统间的发布和共享。换句话来讲,EAI如果缺乏一种对数据格式的统一描述方法,就会使得信息载体所采用的数据封装形式有所不同,无法保证经过转换后的目标数据能够完全准确地表达源数据的信息,造成信息的丢失。
作为数据格式,通常有三种方式:
如EDI,SWIFT就是某些行业的标准数据格式之一,而XML作为开发性数据描述语言,除了大量应用在因特网技术及文档描述中,在数据交换中也承担了一个重要的角色。作为一种与平台无关的标准文本,XML能够被所有程序语言读写,使用DTD或Schema技术,XML的解释程序就能对文件内容进行验证并处理。
数据转换是应用整合层的重要组成部分,它是指将不同的信息格式和语法重新转换成能被目标应用系统所理解的数据格式和语义的整合技术。数据转换包括两个层面的内容,即数据格式转换和数据语义转换。
消息路由通常是指为了使消息在不同的消息域中共享,而将消息从一个域路由到另外一个域的信息处理手段。消息路由建立在已有数据格式定义和数据转换基础之上,通过消息中间件技术能够动态的识别和理解从源应用发出的消息并且把它发向特定的应用系统。
![]() ![]() |
![]()
|
业务整合着眼于提高每个业务流程的效率和效能,利用业务整合,业务流程被推向解决方案的最前沿,通过采用成熟的技术可以成功地创建模型,自动化流程处理过程,监控和管理这些业务流程,从而满足业务变化的需求。它通过同时协同人工参与流程和自动化运行的流程来整合一个跨越企业内部同部门和不同系统之间的业务流。由于业务整合致力于从高瞻远瞩的角度来优化和协同企业内部的业务流程,它提高了投资回报率,它使得业务人员和IT人员获得一个面向服务的、统一全面的企业组织架构视图,并创建一个可以通过IT技术实现的业务流程平台,从而帮助企业获得成功。
业务整合的第一步是定义端到端的业务流程,这里的难点在于由于很多业务流程可能跨越了多个部门,所以没有某一个人可以完全了解和负责某个流程,对流程的定义和规划可能需要多个业务经理的参与,为了完成流程建模任务,业务分析人员需要创建模型,然后与相关的参与者沟通和交流直到最后对流程模型进行确认,同时对流程进行优化。因此,要求业务整合平台能够首先提供一个强大的建模环境,并且支持对流程的分析和再优化。
创建完流程模型之后,我们需要将其投入运行实施,业务流程重组失败的原因往往在于不能在最大限度地重用现有系统的前提下来实施流程的自动化,而业务整合解决方案可以在不修改或者尽量少地修改原有应用的情况下来整合和驱动横跨这些应用之间的业务流程。
某些业务流程可能会超出企业内部的范畴而涉及到其他合作伙伴或者用户,我们需要尽量减少这些流程中的人工交易,从而降低流程的运行周期和成本,提高流程自动化程度和客户满意度。
另外,对于企业中的各种业务流程,我们需要对其进行实时的、端到端的监控,业务经理如果能够随时看到有关关键性能指标的统计,如:货物发送的数量,过期的订单数量等,通过这些统计数据,他们可以采取积极的措施来优化业务流程,提高客户满意度。
最后,为了保持企业的竞争优势,企业需要有效地管理它们的业务流程,持续地对其进行优化,这包括对业务流程的分析,对优化后流程的仿真运行,对流程功能的修改和增加等;如果企业采用相应的能够对流程仿真运行,并且估算优化后流程的相应性能指标的实用工具的话,就能够很好地帮助企业优化其业务流程,提高投资回报率。
概括而论,一个完整的业务流程整合方案应该包括BPM、BAM、B2Bi三个主要方面,只有具备了这三方面的能力,企业才能真正从业务整合中受益,实现随需应变的电子商务。
BPM是在企业范围内实现业务流程自动化,使得企业应用之间不再孤立,企业的软件更加模块化、标准化,从而使企业变得更加敏捷更加灵活。BPM能够用来实现企业内的流程自动化,常用的就是实现跨系统流程的自动化。BPM最突出的,是能够实现自动和手工混合流程的自动化,把流程中涉及的系统连接起来,实现业务步骤(包括手工的和系统实现的)的自动化。多个流程可以作为独立的单元进行存取,也可以联合起来形成一个更高层次的流程。BPM是一个完整的企业应用集成实现策略,它使企业内的一个个分离系统变成了一个支持业务过程的连续系统,满足企业的整个业务过程需求。在一个基于流程的企业中,企业为其所有的业务事务处理都清楚地定义了过程,企业的每一个活动都是为了完成特定的业务过程任务,而与过程任务无关的活动都被排除在企业之外。业务流程通常都是由事件驱动的,事件就是由用户行为、软件或时间等引起的一些活动或状态。BPM实现了跨越多个异构的应用系统的业务过程自动化。
业务流程分企业内部业务流程和企业外部业务流程。因此,企业需要实现的业务流程集成分为三部分:内部业务流程集成,外部业务流程集成,内外部业务流程集成。企业的内部业务流程集成是由通过BPM实现的,外部的业务流程集成是通过B2Bi实现的,内外部业务流程集成是通过BPM和B2Bi共同实现的。
BPM实现了一个平台两种业务流程模式(业务流程自动化和人员介入工作流)的融合能力,包括流程建模、流程监控、工作流等方面。
关键绩效指标是对企业总体战略目标的分解,反映最能有效影响企业价值创造的关键驱动因素。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)相结合的解决方案。
B2Bi即B2B Integration,指企业间的信息整合,即企业合作伙伴间,集合彼此的业务流程、应用软件、资料及Web功能,使参与的商业伙伴均能够即时获得相关信息,并予以回应,使企业充分协同作业并达到企业延伸,目的在于使得企业社群整体皆能获利。B2Bi基于外部网络(如Internet),安全而有效地实现信息交换与交易发生。不同贸易伙伴间存在不同的贸易协议与数据格式,同样通过协议转换与数据传输服务,实现这些信息的发送、接收与验证。B2Bi关注于企业对外的业务流程集成,BPM关注于企业对内的业务流程集成,EAI的解决方案应该有能力来整合这两方面的问题。
B2Bi做为EAI规范标准的一部分,在EAI中的作用主要侧重于企业合作伙伴上下游间的流程整合。它与EAI处理企业内部在应用程序和资料上的整合方式非常相似,如两者间所使用的技术非常相似,都是以中间件作为不同系统间传递讯息的机制,此外两者的整合方式也非常相像,大部分情况下,在执行企业整合前,应当先整合企业内部资源。
![]() ![]() |
![]()
|
用户交互层是EAI与用户实现人机交互在表示层面上的扩展。涉及的内容包括展示内容的集成(门户应用)、单点登陆(Single Sign On)、用户统一管理、用户认证授权的管理等。现今很多EAI产品都提供了对用户集成这几方面内容的支持。
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解决方案和实施路线。