SOA概述--学习笔记

SOA是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署,组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性.
SOA的关键是"服务"的概念,W3C将服务定义为:"服务提供者完成一组工作,为服务使用者交付所需的最终结果,最终结果通常会使使用者的状态发生变化,但也可能会使提供者的状态发生变化,或者双方都产生变化."
Service-architecture.com将SOA定义为:"本质上是服务的集合.服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或者更多的服务协调进行某种活动.服务间需要某些方法进行连接.所谓服务,就是精确定义,封装完善,独立于其他服务所处环境和状态的函数."
Gartner将SOA描述为:"客户端/服务器端软件设计方法,一项应用由软件服务和软件服务使用者组成....SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口."
Gartner相信BPM和SOA的结合对所有类型的应用集成都大有益处,"SOA极大的得益于BPM技术和方法论,但是SOA面临的真正问题是确立正确的企业意识,即:强化战略化的SOA计划(针对供应和使用)"并鼓励重用.
SOA的关键特性:一种粗粒度,松散耦合服务架构,服务之间通过简单,精确定义接口进行通讯,不涉及底层编程接口和通讯模型.
SOA并不是一种现成的技术,而是一种架构和组织IT基础结构及业务功能的方法.SOA是一种在计算环境中设计,开发,部署和管理离散逻辑单元(服务)的模型.
SOA要求开发人员将应用设计为服务的集合,SOA要求开发人员跳出应用本身进行思考,考虑现有服务的重用,或思索他们的服务如何能够被其他应用重用."单独的,独立的,封装完善的"服务所具有的一个关键的好处是:可以采用多种不同方法将它们组合成较大型的服务.
SOA的基本特征
实施SOA的关键目标是实现企业IT资产的最大化重用.
1.可从企业外部访问
 通常被称为业务伙伴的外部用户也能象企业内部用户一样访问相同的服务.业务伙伴采用相同的B2B协议相互作合作.当业务伙伴基于业务目的交换业务信息的时候,它们就参与了一次会话,会话是业务伙伴间一系列的一条或者多条业务信息的交换.

2.随时可用
      当有服务使用者请求服务时,SOA要求必须有服务提供者能够响应.大多数SOA能够为门户应用之类的同步应用和B2B之类的异步应用提供者提供服务.同步应用对于其所使用的服务有很强的依赖性.
 许多同步应用通常部署在前台,其最终用户很容易受服务提供者短缺的影响.很多情况下,同步应用利用分布式服务提供者,这样可以响应更多的用户请求.
 异步应用更为稳健,其采用队列请求设计,因此可以容许出现服务提供者短缺或者迟滞的情况.异步应用通常都部署在后台,用户不会察觉到短暂的短缺.

3.粗粒度服务接口
      粗粒度服务提供一项特定的业务功能,而细粒度服务代表了技术组件方法.ex:向计费系统中添加一个客户是典型的粗粒度服务,而你可以使用几个细粒度服务实现相同的功能:将客户名添加到计费系统,添加详细的客户联系方式,添加计费信息等.
      采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够。Internet环境中有保障的TCP/IP会话已不再占据主导、建立连接的成本也过高,因此在该环境中进行应用开发时粗粒度服务接口的优点更为明显。
      除去基本的往复效率,事务稳定性问题也很重要。在一个单独事务中包含的多段细粒度请求可能使事务处理时间过长、导致后台服务超时,从而中止。与此相反,从事务的角度来看,向后台服务请求大块数据可能是获取反馈的唯一途径。

4.分级
 因为粗粒度服务倾向于解决专门的业务问题,因此通用性较差,重用性不强.解决该问题的方法之一:允许采用不同的粗粒度等级来创建服务.这种服务分级包括了粒度较细重用性较高的服务和粒度较粗重用性较差的服务. 

5.松散耦合
 SOA具有"松散耦合"组件服务,这一点区别于大多数其他的组件架构,用于将服务提供者和服务使用者在服务现实和客户如何使用服务方面分隔开.
 服务提供者与服务使用者间松散耦合背后的关键点是服务接口作为与服务实现分离的实体而存在.
 大多数松散耦合方法都依靠基于服务接口的消息.基于服务的接口能够兼容多种传输方式(如HTTP,JMS,TCP/IP,MOM等).基于消息的接口可以采用同步和异步协议实现.Web服务对于SOA服务接口来讲是一个重要标准.
 当使用者调用一个Web服务时,被调用的对象可以是CICS事务、DCOM或CORBA对象、J2EE EJB或TUXEDO服务等,但这与服务使用者无关。底层实现并不重要。
 消息类Web服务通常都是松散耦合和文档驱动的,这要优于与服务特定接口的连接.当客户调用消息类web服务时,客户通常会发送一个完整的文档,而非一组离散的参数.

6.可重用的服务及服务接口设计管理
 如果完全按照可重用的原则设计服务,SOA将可以使应用更为灵活.可重用服务采用通用的格式提供重要的业务功能.服务需要在2点间折衷:走捷径的项目战术和企业构建可重用通用服务的长期目标.
 
7.标准化的接口
 XML和Web服务增加了全新的重要功能,将SOA推向更高的层面,并大大提高了SOA的价值,尽管以往的SOA产品都是专有的,并且要求IT部门在其特定的环境中开发所有应用,但XML和Web服务标准化的开放性使企业能够在所部署的所有技术和应用中采用SOA。
 Web服务使应用功能得以通过标准化接口(WSDL)提供,并可基于标准化传输方式(HTTP和JMS),采用标准化协议(SOAP)进行调用.  

8.支持各种消息模式
 在一个SOA项目中,常会出现混合使用不同消息模式的服务.
a.无状态的消息.实用者向提供者发送的每条消息都必须包含提供者处理该消息所需的全部信息,这一限定使服务提供者无须存储使用者的状态信息,更容易扩展.
b.有状态的消息.使用者与提供者共享使用者的特定环境信息,此消息包括在提供者和使用者交换的信息中.这一限定使提供者与使用者间的通信更加灵活,但由于服务提供者必须存储每个使用者的共享环境信息,因此其整体可扩展性明显减弱。该限定增强了服务提供者和使用者的耦合关系,提高了交换服务提供者的服务难度。
c.等冥消息.向软件代理发送多次重复消息的效果和发送单条消息相同。这一限定使提供者和消费者能够在出现故障时简单的复制消息,从而改进服务可靠性。

9.精确定义的服务接口
 服务是由提供者和使用者间的契约定义的。契约规定了服务使用方法及使用者期望的最终结果。此外,还可以在其中规定服务质量。此处需要注意的关键点是,服务契约必须进行精确定义。
 META将SOA定义为:“一种以通用为目的、可扩展、具有联合协作性的架构,所有流程都被定义为服务,服务通过基于类封装的服务接口委托给服务提供者,服务接口根据可扩展标识符、格式和协议单独描述。”该定义的最后部分表明在服务接口和其实现之间有明确的分界。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值