搜索
开启辅助访问

QQ登录

只需一步,快速开始

立即注册 找回密码
查看: 280|回复: 0

SOA架构

[复制链接]

138

主题

190

帖子

6230

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6230
发表于 2017-6-27 14:09:51 | 显示全部楼层 |阅读模式
SOA: Service Oriented Architecture, 面向服务的架构,或者说,以服务为基础搭建的企业IT架构。SOA中服务(Service)的理念,本质上是一种业务和技术完全分离,业务和技术又能自由组合的思想. 它达到了目前软件设计思想的最高境界。
SOA有3个基本的要素,只有这3个基本要素全部都满足了,这个应用才能称为SOA的编程:
(1)松散耦合;
(2)粗粒度;
(3)位置和传输协议透明。

(1)松散耦合是指相互之间的依赖程度,包括三个方面:
1)服务之间的松散耦合: 不同服务的功能不要互相依赖, 相对独立而完整,所谓自包含;这样就比较好管理各个数据
2)接口和实现之间的松散耦合: J2EE或.NET只需WSDL就可以调用WEB SERVICE的服务接口;
3)业务组件和传输协议之间的松散耦合:传输协议和位置的透明。   
(2)粗粒度的意义是SOA中服务的接口应该比面向对象的编程的API要大一些。以ATM取款机的取款功能来说明这个问题.取款功能的实现可能实际要包括下面的3个API:1)身份校验: 系统确认用户输入的卡号和密码是否正确;2)余额查询:账户是否有足够取款数额;3)取款: 以上两项都满足后,才真正付给用户现金。作为SOA的业务接口,就不能将“身份校验”和“查询余额”这两个API公布给用户,因为这样太细了。如果让用户必须操作完两个接口,最后再操作“取款”接口,则不符合用户的操作习惯。所以系统只能给出符合用户操作习惯的一个服务接口“取款”,它里面包含前面两个API功能 。
(3)位置和传输协议透明是SOA最根本的区别于目前面向组件编程的地方。目前的服务组件如EJB、WEB SERVICE、JMS的发布都是和特定的应用服务器绑定在一起的。如果某个服务组件的URL位置修改了,客户端程序必须要做相应的修改,否则整个集成不能工作了。这就是位置组件的不透明。
所谓位置的透明,就是指不论服务组件的实际位置URL如何变化,客户端的调用程序的URL都不需要改变。所谓传输协议的透明,就是指不管服务组件的传输协议如何变化,客户端的调用程序的传输协议都不需要改变。  
SOA工作流程
  SOA架构中有三种角色:(1)服务提供者Provider:发布自己的服务,并且对服务请求进行响应。(2)服务注册中心Agent:注册已经发布的web service,对其进行分类,并提供搜索服务。(3)Consumer服务请求者:利用服务中心查找所需要的服务,然后使用该服务。
SOA的三种操作:(1)发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。(2)查找操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。(3)绑定操作:在检索到服务描述之后,服务使用者继续根据服务描述中信息来调用服务。
SOA实例:在石油企业内部,有许多不同的网站,进入每个网站,都需要身份验证,不仅浪费时间而且容易遗忘代码 ,另外,网站维护人员对各种服务需要建立相应的用户认证与信息管理系统,分布于个服务器中的用户数据不仅浪费维护人员的时间,而且过于分散的用户数据不利于统计和管理。用户的需求和管理要求促使用户趋于统一,产生了统一者认证。统一认证的实现是基于SOA的架构。
从中可以看出使用SOA的优点:将身份验证这一功能模块发布成一种服务,其他的软件可以通过UUDI查找该服务,然后将该服务与服务的实现进行绑定。
SOA服务用消息进行通信,该消息通常使用XMLSchema来定义(也叫做XSD,XMLSchemaDefinition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
在一个企业内部,SOA服务通过一个扮演目录列表(directorylisting)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI,UniversalDescription,Definition,andIntegration)是服务登记的标准。
每项SOA服务都有一个与之相关的服务品质(QoS,qualityofservice)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。


参考:http://baike.baidu.com/link?url= ... g_kYL5VuYP0Axmrjq4q

QQ|Archiver|手机版|GIS3D 基地 ( 京ICP备16033688号

GMT+8, 2017-12-16 09:32 , Processed in 0.107354 second(s), 28 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表
 
Skyline中文社区-总群
帮主 gis3d 海洪