SOA与Web服务:通往EAI的坦途

时间:2022-10-02 04:10:37

SOA与Web服务:通往EAI的坦途

eai(Enterprise Application Integration,企业应用集成)并不是一个新的概念,然而进入上个世纪九十年代以后,EAI的重要性日益倍受关注,而soaweb服务则为EAI的发展铺平了道路。

企业信息化的永久话题

对于绝大多数企业来说,IT投资都是日积月累的过程,而非一劳永逸。企业的业务资料更是在每时每刻都在增加,而且是散布在不同时期、不同部门的信息系统之中。因此,企业信息系统一个应该是逐渐演变的生命体。当企业业务对信息系统提出新要求的时候,也应该采取渐进的方式对系统进行升级、改造。总之,那种希望采取跳跃式的方法来使企业信息系统跟上业务需求的想法肯定是不切实际的幻想。因此,如何将企业中不同时期、不同部门、不同地域的信息系统有效地集成起来,甚至把企业直接形成的供应链中的所有应用也有效地集成起来,这个问题不仅过去、现在存在,而且将来也会继续存在。

据IDC中国的《中国企业应用集成与Web服务市场2005~2009年预测与分析》报告数据显示,企业对EAI(企业应用集成)的需求增长迅速,2004年集成服务器软件平台(ISSP)市场规模为4140万美元,预计到2009年达到1.13亿美元,年均复合增长率达22.4%,预计将高于整体软件市场的增长速度。

SOA概念的出现,使得EAI这个企业信息系统的老问题有了新的、更好的答案,因为它可以让在企业信息系统的维护、升级和扩展以平滑的方式递进,而且是达成这一目标的最经济有效的方法。

EAI的理想工具

在过去的40年间,软件架构师总是在与同一个“魔鬼”交战,这就是软件的复杂度。而交战的结果总是不断印证着那句不变的咒语:道高一尺,魔高一丈。特别是随着硬件系统、操作系统平台的不断增加以及企业网络的飞速蔓延,如何把这些不同的信息系统集成起来,也就是实现EAI(企业应用集成),更是令许多企业的IT人员不堪重负。

传统的编程技术所形成的软件系统都是刚性的。也就是说,一旦开发完成并投入运行,就是固定不变的,不能在使用过程中进行调整和改变。在业务流程中,软件系统严格按照预先设定的目标,各功能模块按照确定的顺序执行。如果数据结构或者业务逻辑发生改变,就必须对所有相关的软件模块、数据源和消息逐个进行修改。就算是有了EAI中间件,这种情况也并没有得到根本性的改变。

SOA采用服务请求(Service Request)的软件架构,从根本上改变了传统软件的开发方式。与传统的软件系统不同,SOA只限定服务所需的信息并提出服务请求,但是不限定提供服务的模块,这样就完全可以在服务请求模块不知不觉的情况下,由不同的数据源来满足这个服务请求。另一方面,新的数据源也可以去响应其他服务请求者提出的类似请求。可见,SOA使软件系统向“柔性化”迈进了一大步。在这样的系统中,只需要根据新的情况修改服务的执行者,而不需要修改服务的请求者。所以,基于SOA的企业应用系统可以随着企业业务的变化而逐渐演变。实际上,SOA既是一种架构模式,又是一种编程模式,它同时也是一种关于软件的全新思维方式。

Web服务催生SOA

如果SOA得以实现,就会使集成变得更加容易。但要让SOA尽善尽美地走到这一步本身并非易事,首先遇到的一个问题就是标准化。Web服务的出现,为SOA的应用提供了一种标准。到目前为止,业界已经形成了一些基本的标准模块。SOAP用于服务请求建立;WSDL用于服务请求的;UDDI用于服务请求的目录列表;另外还有一些关于安全和数字签名的标准。

值得注意的是,SOA并不能等同于Web服务。Web服务是一套技术体系,包括XML、SOAP、WSDL和UDDI,可以用来建立应用解决方案,解决特定的消息通信和应用集成问题。随着时间的推移,这些技术也在发展成熟,也会更好地帮助企业实现SOA。但是,Web服务不是SOA。SOA是一种软件架构,而不仅局限于某个技术的组合(例如Web服务)。在一个商业环境中,纯粹的SOA是一种应用软件架构,其中所有的功能都是相互独立的服务模块,通过完备定义的接口相互联系起来。只要按照一定的顺序来请求这些功能模块所提供的服务,就可以形成完整的业务流程。

事实上,SOA并不是一个新概念。早在1990年代,Sun公司在描述Jini技术的时候就对SOA做出了定义。Jini是一个在网络中使用“服务”的动态目录环境。后来的Web服务就是沿用了Jini技术所创立的“服务”概念,并且利用XML、WSDL(Web服务表述语言)、SOAP(简单对象访问协议)和UDDI(统一描述、发现和集成协议)等技术在Web环境中提供这些服务。

在当今复杂的异构计算环境中,SOA作为一种重要的集成和架构框架呈现出来。在此之前的方法都很难支持开放的互操作解决方案,而是以私有、专用的API为基础,因此在协调和沟通方面耗费甚多。SOA则可以帮助企业顺畅地实现应用集成,进而适应不断变化的业务需求,快速提升竞争力,并为实现SaaS(Software as a Service,软件作为服务)的概念奠定基础。例如eBay就开放了用于在线审计的web服务API,目的是吸引更多的软件开发人员围绕eBay这个平台来赚钱。通过新的API,开发人员可以建立特定的应用,连接到在线审计网站,提交准备卖出的商品。这种策略可以大幅增加eBay的客户群。

虽然SOA和Web服务不同,但是web服务是基于标准的SOA实现方法,当然也是最便利的方法。

上一篇:智能手机行业应用势头强 下一篇:一只木马的自白