初识初识SOA(面向服务的体系结构面向服务的体系结构)
1、SOA是什么
应该说从不同的角度可以有不同的理解和描述,首先SOA是面向服务体系结构的简称,如果从软件架构的角度来说SOA是一
种用来整合不同应用服务的解决方案框架,从软件制作理念的角度来说,SOA的出现是软件厂商开始抛弃传
统“软件产品”思路转向“以客户需求”为核心理念的具体体现。从编程角度来说,有人说SOA的出现是继面向对象编程之后下一
代编程方法最可能的候选,不过我个人不太同意,SOA是粗粒度的,应该说是基于面向对象编程的,这是开发企业应用的一
个基础,SOA的出现是用来整合现有的应用的,是一种相对温和的整合现有应用的方案。
2、SOA的发展
1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"现代应用开发领域最重要的课题",SOA并不是一个新事
物,IT组织已经成功建立并实施SOA应用软件很多年了,BEA、IBM等厂商看到了它的价值,纷纷跟进。SOA的目标在于让IT
变得更有弹性,以更快地响应业务单位的需求,实现实时企业(Real-Time Enterprise这是Gartner公司为SOA描述的愿景目
标)。而BEA的CIO Rhonda早在2001年6月就提出要奖BEA的IT基础架构转变为SOA,并且从对整个企业架构的控制能力的
提升效率、加快开发速度、降低在客户化和人员技能的投入方面取得了不错的成绩。
3、从技术角度认识SOA
SOA:面向服务的体系结构,他是一种体系结构风络,它将应用程序的不同功能单元-服务(service),通过服务间定义的良好的
接口和契约联系起来。接口通过采用中立的方式定义,独立于具体实现服务的硬件平台,操作系统和编程语言,使得架构的系
统中的服务可以使用同一和标准的方式进行通信。这种具有中立的接口定义的特征称之为服务间的松耦合。简言之:就是一切
皆服务,服务可组合。
4、早期的SOA框架
WSIF(Web Services Invocation Framework)是早期的SOA框架,原理图如下:
如上图所示,SOA利用了类似于RMI的服务通信方式。服务的提供者通过UDDI协议来将自已的服务发布到一个可以进行公共
查找的服务目录上去,而服务目录上利用WSDL来描述服务(应该会包含服务的调用方式和服务的定位地址),然后服务的使
用者在需要使用服务的时候利用UDDI协议到服务目录上去查找相关的服务,一旦找到了就根据服务的描述通过SOAP来定位
到实际的服务提供者上去,进行服务的调用,因为服务的调用定位全部都是利用XML文件来描述的,而XML文件是一个中立
的语言,不涉及到任何具体的物理细节,因此各个调用者之间可以利用一种公共的方式进行服务通信。
名词解释:
RMI:(Remote Method Invoke)JAVA里的远程方法调用
UDDI:(Universal Description Discovery and Integration)统一描述、发现和集成协议
是一种目录服务,企业可以使用它对Web Services进行注册和搜索以便动态的发现和调用服务
WSDL:(Web Services Description Language) web服务描述语言,是基于XML的用来对web服务进行描述