SOA-实践指南读书笔记三

对SOA而言,术语“服务”有许多定义

3 服务

OASIS SOA引用模型:

名称服务在辞典被定义为“某人为别人执行的事务(职能)”。

该定义含义宽泛,无所不包。
维基百科定义:

一项“服务”是一个自足的、无状态的业务功能,通过定义良好的标准接口,它接受一个或多个请求,返回一个或多个应答。服务也能执行离散的工作单元,如编辑和处理一个事物。服务不应依赖于其他功能或过程。用于提供服务的技术,如编程语言,不构成本定义的一部分。

服务体现了业务功能

SOA聚焦于业务流程。服务的主要目标是体现业务功能的自然步骤。

接口和契约 Interfaces and contracts

一个服务是一个处理消息的接口,它返回信息,以及/或者改变相关实体(后端系统)的状态。

本质上,SOA是一个软件架构,从接口定义开始,将整个应用布局建立成接口、接口实现及接口调用的布局。SOA叫做“面向接口的架构”其实更合适。——Yefim V. Natis

一种接口是签名,描述了输入参数、输出参数以及可能的异常。

作为服务的消费者需要知道服务完整的行为和语义。接口必须是定义良好的。

定义良好的接口,其行为必须是明确的。一份契约是对特定供应者和特定消费者之间的服务的完整规格说明。从消费者的角度看,它定义了当使用服务时你应知道的一切。

实践中,对服务非描述从定义良好的接口开始。然后当某个特定的客户想要使用服务时,再基于定义良好的接口作出特定的契约。契约反映出,当你遵守特定的非功能性承诺时,需要提供给服务的必要资源。

服务的额外特性

  • 自足 self-contained :最小化依赖。
  • 粗粒度 coarse-grained
  • 可见/可发现
  • 无状态
  • 幂等性Idempotent:当不确定服务是否完成时,重做操作的能力。
  • 重用 reusable
  • 可组合 composable
  • 技术性 ?
  • 服务质量和服务等级协议使能
  • 前提和后置条件:前提条件定义了调用服务时,服务消费者必须履行的特定业务。后置条件保证当服务成功运行时,系统具备特定的性质或输出。
  • 供应商分散
  • 可互操作

4 松耦合 Loose coupling

对容错的需求

松耦合的形式

松耦合主要用来处理可伸缩性、灵活性和容错这些需求。松耦合的目标是最小化依赖。松耦合给系统带来更加复杂的代价。松耦合意味着更多的开发以及维护工作量。

异步通信

异步通信的一个难题发生在当发送者需要一个答复时,不能马上得到对自己消息的答复。
好处:互相交换服务消息的系统不用同时在线。并且如果需要答复,长时间后才答复也不会阻塞服务的消费者。
弊端:服务消费者的逻辑变得更复杂了。

异质数据结构

服务消费者应将供应者数据类型映射为自己的数据结构、
利: 系统可以修改自己的数据结构,不会对其它系统造成直接影响。
弊:需要从一个系统向另一个系统映射数据。

中介者

两类中介者:
1. 发出服务调用前就告诉你正确的服务端点。这样的中介者通常称为“中间人”或名字服务器。
2. 消费者发出调用之后,为请求选择正确的服务端点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值