初识SOA

    随着企业级的应用越来越多,企业级应用的整合势在必行,在越来越深入的应用整合中,人们发现要将原有的基于对象的应用整合在一起,简直就是一个灾难!因为不同功能的应用,根本就不能和谐的存在在一起,强制的圈在一起,只会导致冲突,混乱。最终导致应用效率下降,甚至无法使用。为了避免或减小应用之间的冲突,现有最实际的做法就是采用portal来将不同的应用入口整合到一个页面,但是业务流程还是基于每个应用独立的。

在现有情况下,当要对需求有所变化时,我们唯一可以做的就是重新开发整个应用,或者对其进行全面改造。无论是哪一种情况,都会花费大量人力、物力,更要命的是,在我们花费大量时间对其进行改造、或开发后,发现需求随着业务的不断变化,又发生了巨大的变化……

    在这种情况下,一种名为SOA的新的技术构架逐渐被人们所认识和接受。SOA(Service-Oriented Architecture):才面向服务的体系结构,它是一个组件模型。顾名思义,它是面向服务(应用的不同功能单元)的,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约联系起来,成为一个应用整体。其中,接口和契约采取中立的方式进行定义,并独立于实现应用的硬件平台,操作系统和编程语言。

    SOA的服务体现了组件之间的松耦合性,松耦合性有以下两大优点:其一是灵活性,组件之间的不同组合与搭配,即能实现业务需求,最大程度上降低了开发的工作量和节约了开发时间;其二是当业务需求发生变化,它能继续存在而不受影响。

SOA系统中,ESBEnterprise Service Bus)企业服务总就像一个插线板,不同的业务模块(服务)如同插头,根据需要,灵活的“安插”到ESB上,实现企业的业务需求。这样,当业务需求发生变化的时候,服务能按照需求进行变化和组合,实现按需变化(On Demand)。ESB使用许多可能的消息传递协议来负责适当的控制、流甚至还可能是服务之间所有消息的传输。ESB本身可以是单个引擎,甚至还可以是由许多同级和下级ESB组成的分布式系统,这些ESB一起工作,以保持SOA系统的运行。

    其实,SOA早在1996年就被做为一种概念提出了,但因为缺乏一定的技术支持,一直没有形成更加具体的观念和技术。直到XML语言的出现及发展,还有WEB技术的发展,才为SOA提供了根据实际和坚实的理论支持。此外,它还需要安全性,策略管理,可靠消息传递以及会计系统的支持,从而有效地进行工作。你还可以通过分布式事务处理和分布式软件状态管理来进一步得改善它。

    XML自身的特点使其成为SOA系统中,数据流转的最好实现方式,你可以根据你自身的特点,定义自己的XML格式,使之符合你的业务系统需要。而实现SOA模型是通过 HTTP 传递的 SOAP 消息中最常见的SOA模型。因而,从本质上讲,Web是实现SOA的具体方式之一。 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页