纵谈EAI、BPI与中间件

发表于:2008-02-20来源:作者:点击数: 标签:
中间件 是一个非常普及的名词了,但也还是一个定义并不完全准确的名词。特别是近几年EAI(企业应用集成)和BPI(业务流程集成)越来越多地被大家所提及的时候,中间件的定义就更模糊了。有把EAI/BPI归为中间件的说法,也有对中间件概念进行扩展的说法。无论
中间件是一个非常普及的名词了,但也还是一个定义并不完全准确的名词。特别是近几年EAI(企业应用集成)和BPI(业务流程集成)越来越多地被大家所提及的时候,中间件的定义就更模糊了。有把EAI/BPI归为中间件的说法,也有对中间件概念进行扩展的说法。无论那种说法,关键的是弄清两者的关系,从而使得我们在具体的应用中选择合适的技术才是最重要的。本文就是以此为目标,谈谈笔者的看法,起到抛砖引玉的作用。

    什么是中间件
    
    中间件这一概念是在应用架构(Application Architecture)的发展历程中,伴随着三层(3-Tiers)或多层(n-Tiers)结构应运而生的。在三层或多层结构出现之前,应用通常采用两层结构,即客户/表示层和服务器/数据层。为了解决交易问题、应用逻辑共用问题和松偶合问题,在客户/表示层和服务器/数据层之间引进了中间层,这就是中间件。通常,中间件分为交易中间件、应用中间件和消息中间件:
    * 交易中间件:交易中间件的出现是为了解决交易(Transaction)的问题,特别是包含多个资源系统时的交易问题。交易中间件的典型例子就是Tuxedo和CICS。
    * 应用中间件:应用中间件是三层(3-Tiers)或多层(n-Tiers)应用架构的核心部分,最典型的应用中间件是以CORBA和J2EE为基础的应用中间件。今天以J2EE为基础的应用中间件逐渐为业界广泛采用。
    * 消息中间件:消息中间件是应运松偶合的概念而产生的中间件,主要以队列(Queue)和发布定阅(PUB/SUB)为消息传输机制。典型的产品有Vitria的Communicator和IBM的MQ等。

    中间件保证了系统的异构性、扩展性和分布运行的可行性,但它们所解决的问题主要是具体应用的实现。

    什么是EAI/BPI
    
    以EAI/BPI为基础的集成技术则不同,它所关心的不是具体应用开发的问题,而是如何把一个企业的各种应用集成为一体,解决部门与部门以及企业与企业的协同和自动化问题。虽然集成技术是在消息中间件基础上发展起来的,但经过十多年的发展,它早已远远超出了消息中间件的范畴,而是像操作系统和数据库一样,成为一个企业或政府机构IT基础设施的重要组成部分,是企业架构师和CIO必须首先考虑的问题。

    消息中间件是EAI/BPI的一部分,但EAI/BPI不仅仅是消息中间件。除了消息中间件之外,EAI/BPI还包含了:
    * 连接器和连接技术
    * 数据转换
    * 元数据管理
    * 业务流程管理
    * 业务流程分析与监测等

    第一代EAI技术的特点是利用可靠的消息中间件、丰富的连接与转换技术及全面的元数据(META DATA)管理与应用能力,解决了信息共享与信息交换的问题,同时也使得企业的IT系统容易维护与管理,为企业节省了IT花费。但这种EAI技术所解决的问题更多地集中在数据层面,而不是业务层面。

    20世纪90年代中后期,企业业务的迅速发展以及与电子商务的结合对应用集成解决方案提出了更高的要求,局限于信息集成的第一代EAI技术很难实现企业业务流程的自动处理、管理和监控,因此,基于业务流程管理/集成(BPM/BPI)的第二代EAI技术应运而生。这一代EAI技术通过实现对企业业务流程的全面分析管理,可以满足企业与客户、合作伙伴之间的业务需求,实现端到端的业务流程,顺畅企业内外的数据流、信息流和业务流。第二代EAI技术是当前集成技术发展的主流。  

    目前,EAI技术正向第三代集成技术演变,这就是“预制集成”,它根据不同行业集成技术的特点,推出基于行业的预建构集成包,预先解决行业共性的问题,从而缩短EAI项目开发周期。预制集成产品的关键点在于它的“可复用性”、“可扩展性”和“灵活性”,这样一来才能保证在产品化的同时,企业又能基于自身业务的需求进行灵活的配置和扩展。

    从中间件和集成技术的差异我们不难看出,企业的集成问题不是中间件可以解决的。只有以流程集成为核心的企业应用集成(EAI/BPI)平台才是解决企业集成问题的有效武器。

    正确使用EAI/BPI与中间件技术

    认识什么是中间件和什么是EAI/BPI对于我们在IT建设中选择合适的武器是非常重要的。如果说中间件是IT建设中所需要的零部件的话,EAI/BPI就是IT建设中所需要的现成的机器了。如果是单一的应用开发,中间件也许是一个合理的选择。但是如果是为了做企业应用集成和业务流程集成(如电子政务中的一站式审批或综合数据平台,电信行业的OSS集成,金融领域的交易直通处理和保险行业的保单申报等),选用中间件产品则是用牙签夹面条了。集成的问题必须用成熟的EAI/BPI平台,而不是用中间件,然后在从底层进行自行开发。

    在选用EAI/BPI产品时,最常见的错误之一是误把消息中间件当成EAI/BPI。采用一个消息中间件后,用写代码的方式去处理消息的发布与获取,用写代码的方式进行数据转换,错误地把代码中的业务逻辑当成是业务流程管理等就是常见的问题。

    另一个常见的错误是误把应用中间件当成是EAI/BPI平台,混淆了应用开发与集成的界线。正如前面所说,应用中间件是用来做单一应用开发的,而EAI/BPI是利用流程管理和松偶合技术来解决多应用之间的集成问题。因此,从某种意义上,应用中间件是应用架构师要考虑的问题,而EAI/BPI是企业级架构师和CIO要考虑的问题了。

    集成是IT发展的方向,EAI/BPI平台是最好的集成模式。 

原文转自:http://www.ltesting.net