中间件是一个非常普及的名词了,但也还是一个定义并不完全准确的名词。特别是近几年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等。
中间件保证了系统的异构性、扩展性和分布运行的可行性,但它们所解决的问题主要是具体应用的实现。
1
2
3
下一页>>