SOA框架理解

  

一、SOA架构

SOA: Service Oriented Architecture, 面向服务的架构,或者说,以服务为基础搭建的企业IT架构。SOA中服务(Service)的理念,本质上是一种业务和技术完全分离,业务和技术又能自由组合的思想. 它达到了目前软件设计思想的最高境界。

增强现实导航软件运用到了SOA框架,提供的SOAP接口可以满足不同语言不同平台的调用,采用HTTP协议,Http协议是跨平台的协议,因此在安卓端和后台交互上无疑是比较好的选择。

SOA3个基本的要素,只有这3个基本要素全部都满足了,这个应用才能称为SOA的编程:(1)松散耦合;(2)粗粒度;(3)位置和传输协议透明。

1)松散耦合是指相互之间的依赖程度,包括三个方面:1)服务之间的松散耦合: 不同服务的功能不要互相依赖, 相对独立而完整,所谓自包含;这样就比较好管理各个数据2)接口和实现之间的松散耦合: J2EE.NET只需WSDL就可以调用WEB SERVICE的服务接口;3)业务组件和传输协议之间的松散耦合:传输协议和位置的透明。    (2)粗粒度的意义是SOA中服务的接口应该比面向对象的编程的API要大一些。以ATM取款机的取款功能来说明这个问题.取款功能的实现可能实际要包括下面的3API1)身份校验: 系统确认用户输入的卡号和密码是否正确;2)余额查询:账户是否有足够取款数额;3)取款: 以上两项都满足后,才真正付给用户现金

 

ATM取款机取款功能的3API

作为SOA的业务接口,就不能将“身份校验”和“查询余额”这两个API公布给用户,因为这样太细了。如果让用户必须操作完两个接口,最后再操作“取款”接口,则不符合用户的操作习惯。所以系统只能给出符合用户操作习惯的一个服务接口“取款”,它里面包含前面两个API功能 。

3)位置和传输协议透明是SOA最根本的区别于目前面向组件编程的地方。目前的服务组件如EJBWEB SERVICEJMS的发布都是和特定的应用服务器绑定在一起的。如果某个服务组件的URL位置修改了,客户端程序必须要做相应的修改,否则整个集成不能工作了。这就是位置组件的不透明。

所谓位置的透明,就是指不论服务组件的实际位置URL如何变化,客户端的调用程序的URL都不需要改变。所谓传输协议的透明,就是指不管服务组件的传输协议如何变化,客户端的调用程序的传输协议都不需要改变。  

 

二、SOA工作流程

  SOA架构中有三种角色:(1)服务提供者Provider:发布自己的服务,并且对服务请求进行响应。(2)服务注册中心Agent:注册已经发布的web service,对其进行分类,并提供搜索服务。(3Consumer服务请求者:利用服务中心查找所需要的服务,然后使用该服务。 

SOA的三种操作:(1)发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。(2)查找操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。(3)绑定操作:在检索到服务描述之后,服务使用者继续根据服务描述中信息来调用服务。

 

 

SOA实例在石油企业内部,有许多不同的网站,进入每个网站,都需要身份验证,不仅浪费时间而且容易遗忘代码 ,另外,网站维护人员对各种服务需要建立相应的用户认证与信息管理系统,分布于个服务器中的用户数据不仅浪费维护人员的时间,而且过于分散的用户数据不利于统计和管理。用户的需求和管理要求促使用户趋于统一,产生了统一者认证。统一认证的实现是基于SOA的架构。

 

从中可以看出使用SOA的优点:将身份验证这一功能模块发布成一种服务,其他的软件可以通过UUDI查找该服务,然后将该服务与服务的实现进行绑定。

你可能感兴趣的:(框架)