初识SOA(面向服务的体系结构)
1、SOA是什么
应该说从不同的角度可以有不同的理解和描述,首先SOA是面向服务体系结构的简称,如果从软件架构的角度来说SOA是一种用来整合不同应用服务的解决方案框架,从软件制作理念的角度来说,SOA的出现是软件厂商开始抛弃传
统“软件产品”思路转向“以客户需求”为核心理念的具体体现。从编程角度来说,有人说SOA的出现是继面向对象编程之后下一代编程方法最可能的候选,不过我个人不太同意,SOA是粗粒度的,应该说是基于面向对象编程的,这是开发企业应用的一个基础,SOA的出现是用来整合现有的应用的,是一种相对温和的整合现有应用的方案。
2、SOA的发展
3、从技术角度认识SOA
SOA:面向服务的体系结构,他是一种体系结构风络,它将应用程序的不同功能单元-服务(service),通过服务间定义的良好的接口和契约联系起来。接口通过采用中立的方式定义,独立于具体实现服务的硬件平台,操作系统和编程语言,使得架构的系统中的服务可以使用同一和标准的方式进行通信。这种具有中立的接口定义的特征称之为服务间的松耦合。简言之:就是一切皆服务,服务可组合。
4、早期的SOA框架
WSIF(Web Services Invocation Framework)是早期的SOA框架,原理图如下:
如上图所示,SOA利用了类似于RMI的服务通信方式。服务的提供者通过UDDI协议来将自已的服务发布到一个可以进行公共查找的服务目录上去,而服务目录上利用WSDL来描述服务(应该会包含服务的调用方式和服务的定位地址),然后服务的使用者在需要使用服务的时候利用UDDI协议到服务目录上去查找相关的服务,一旦找到了就根据服务的描述通过SOAP来定位到实际的服务提供者上去,进行服务的调用,因为服务的调用定位全部都是利用XML文件来描述的,而XML文件是一个中立的语言,不涉及到任何具体的物理细节,因此各个调用者之间可以利用一种公共的方式进行服务通信。
名词解释: