信息化 频道

SOA架构的中间件产品意味什么?

    【IT168 信息化

    选择什么样的中间件?

    什么是中间件?中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

    中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

    什么是SOA?面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

    要说一个是产品,一个是架构,两者结合在一起,即所谓符合或者支持SOA架构的中间件产品,或者干脆称自己是SOA架构的中间件产品,这意味着什么?对于用户而言,在采购中间件产品的时候,是否一定要购买这样产品呢?

    先来看所谓SOA架构的中间件产品的含义,为此,我求教了相关中间件厂商,含义无外乎两个:一个是说采用这种中间件产品可以很好的构建SOA的应用;再有就是采用这种中间件产品开发出来的应用,将很容易被整合进SOA架构。两者的含义都差不多,就是其应用很容易实现SOA。业内人士指出,所谓SOA架构中间件并不十分的准确,因为这里中间件的提法太笼统了。

    前面说过,中间件可以分为7大类,其中有些产品,如应用服务器、门户中间件、一些新的工作流系统等,与互联网关系密切,本身就支持Web服务的封装,基于它们开发的应用的功能很容易就能封装成Web服务,支持SOA;但是对于消息中间件、交易中间件等,来谈论SOA,其意义就不大了。

    总体看来,所谓SOA架构的中间件,无非就是要表明,厂商提供的中间件产品对于SOA有很好的考虑,而SOA还是针对应用而言。 SOA概念的提出是为了解决动态的B2B应用整合的问题。这里不妨看一个理论中关于物流行业的例子。物流涉及仓储、运输、车辆等几个环节,如果这些环节相应的信息系统所提供的功能服务都能够以Web服务的方式提交出来,那么相互的调用就会非常容易,很容易实现动态的B2B整合。

    哪怕你没有自己的仓库、车辆,同样可以利用这些服务,构建全新的物流商业模式,提供灵活的商业服务,成为一个第三方、第四方物流企业。对于企业而言也是这样,我们看一些成功的企业,如Cisco,对于上下游的合作伙伴,具有很高的信息化的要求。以分销代理为例,Cisco已经不接受传统的下单方式,其总代理必须通过电子商务的方式定购产品。Cisco所采用的系统是SAP的,这就要求上下游的合作伙伴也必须采用SAP的系统,否则系统就无法对接,这就是现实的情况。

    如果各家ERP厂商能够按照SOA的观念,遵循标准化的规范,把服务以标准的方式提交、展现出来,那么,这样的限制就不复存在,SOA的价值在于跨越了不同应用系统、不同技术的整合,这种整合改变现有的商业模型。

    SOA描绘了一个无比美妙的未来,也是拥有一定的现实基础,SOA与现今流行的Web服务紧密联系在一起。Web服务是一项技术,其规范包括WSDL、SOAP、UDDI。Web服务由WSDL描述,通过UDDI发现,并通过SOAP去访问。Web服务提供了技术,而SOA则提供了应用这种技术的框架,是一个非常好的思路,因此得到了软件业界普遍的认可。

    中间件对于Web应用具有简化和帮助其相互连接、相互访问的作用。从理论上讲,基于Web服务的中间件将会给应用软件的开发、部署、应用方式带来革命性变化,因为Web服务的出现,使各应用组件之间能够以松偶合和标准的方式连接,突破了传统的基于某厂商特定技术、某一种特定技术的方式。目前,几乎所有新的中间件类型、新的中间件产品都支持Web服务,可以基于它们实现SOA架构的应用。正因为如此,人们将中间件视为实现SOA架构的理想平台。凭借这种天然的联系,中间件搭车SOA也是一个增加曝光率的明智择。从技术视野上来看,如果中间件产品没有考虑SOA是短视的,在技术跟随上显得行动缓慢。

0
相关文章