【IT168 信息化】
如今谈论中间件,已经不能不说SOA(面向服务的架构)了,哪家厂商的中间件不与SOA扯上点关系,就是大不敬,技术上就不够先进,似乎SOA就是一把尺子,亦或是质检部门的检验章,没它甭想进入市场。为什么会出现这样的现象?这样的现象合理吗?
一定要选择SOA的中间件?
中间件是什么?可以说中间件是一类软件产品,又可以进一步把它划分为应用服务器、消息中间件、交易中间件、门户服务器和工作流系统等多个类别,不同的中间件解决不同的问题。SOA是什么?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是短视的,在技术跟随上显得行动缓慢。