漫谈SOA

SOA已经从概念到商业应用中,SOA到底是什么,SOA能干什么,SOA能为企业带来什么好处,SOA的下一步又是什么。

 

SOA是什么,SOA(面向服务的架构)是一种架构模型,适用于大型的商业系统的集成平台。
为什么?大型的商业系统,涉及的问题:遗留系统及异构系统集成,软件组件的复用,多系统通讯互操作,业务流程的变化。

 

面对日益复杂的商业环境,企业级应用的IT系统不仅要不停的变化和更新,不同部门不同需要的系统,不同技术平台的系统,新系统与遗留系统等的集成和互操作。这样可以最大化的利用已有的IT资产的投入,也就是软件的复用。而这些正是SOA架构的强项。

 

SOA架构中包括三个角色,服务提供者(provider),服务使用者(requester),服务注册库(register Repository)。值得一提的是,这些角色对象都是针对软件单元,通常是包装为服务的软件构件(components),这些软件构件可以粒度可大可小。可以是一个单个软件对象加一个单一的业务逻辑,也可以是复合软件对象构成的软件复合体(composite)。软件的提供者和消费者都是针对软件单元。可以看出,SOA是从架构的角度考虑软件系统的交互和集成以及复用等问题,也就是SOA是一种架构模型,它是大型商业系统尤其是分布式系统易于复用和集成,这样可以最大化的利用已有的IT投入,为企业节约IT成本,使企业获得更多的ROI。

 

可以简单回顾一下软件开发模式的演变来看SOA的合理性和必然性。

从单机版软件到网络版软件(互操作、分布式应用等),再到Web 软件,云计算等,软件复用从函数级别的复用(面向过程)到对象类的复用(面向对象)的复用,更接近于现实事物。抽象程度的进一步的提升,进一步封装业务逻辑,到了软件构件(components)级别的复用。随着软件环境复杂度的变化,软件系统通信互操作及集成也日趋复杂,SOA出现之前,也有类似的解决方案。CORBA,DCOM,EJB等都试图去解决分布式环境下异构环境软件系统的互操作问题,但是这些技术平台都面临跨平台集成的困境。直到Web Service的出现,屏蔽了平台的差异,编程语言的差异,Web Service使用XML作为定义及通信消息的基础,把复合的软件构件及业务逻辑包装为服务提供标准的接口描述WSDL,发布到注册库UDDI提供给其他软件使用,软件服务之间通过SOAP协议绑定到HTTP进行交互,这些都符合Web软件的发展模式。Web Service逐渐变成了业界的标准。

 

那么SOA跟Web Service是什么关系呢,SOA是概念、模型,Web Service是实现、规范。SOA与Web Service相互促进发展。SOA从Web应用渗透到传统的企业级应用。SAP提出的ESOA(Enterprise SOA,Enterprise Service)是对SOA概念的进一步提升和促进。SAP的SOA平台有NetWeaver技术平台来支撑,NetWeaver不仅是技术平台,同时也是业务集成平台。随着企业业务流程从固定模式向动态业务模式的转变,SAP它把业务单元包装为服务,能灵活应对复杂的业务流程的动态变化,并提供更好的流程集成的支撑。

你可能感兴趣的:(SOA,soa,service,components,平台,分布式应用,web)