全网都在寻找的SOA架构:服务和微服务分析及设计,你等到了吗?
SOA简介
让我们简要回顾一些第3章涵盖的主题,明确它们之间的相互关系以及它们如何明确地导出SOA定义:
- 有一组与面向服务的计算相关的战略目标。
- 这些目标代表一个特定的目标状态。
- 面向服务的范式为实现这一目标状态提供了一个行之有效的方法。
- 当我们将面向服务应用于软件设计时,我们构建了一个称为“ 服务”的逻辑单元。
- 面向服务的解决方案由一个或多个服务组成。
我们已经确定,面向服务在一定程度上得到有意义的应用之后,解决方案才被认为是面向服务的。然而,仅仅了解设计范式是不够的。想要一致和成功地应用面向服务需要一个定制的技术架构,以适应其设计偏好,最初是在服务第一次交付时,尤其是当服务集合被大量积累并组装成复杂的服务组合时。
换句话说:
- 要构建成功的面向服务解决方案,我们需要一 种具有特定特性的分布式技术架构。
- 这些特性成为面向服务技术架构的独特之处。这就是SOA。
大家转发关注小编,私信小编“学习”得到获取方式吧!、
下面介绍本书的几大内容:
1.理解服务与微服务的层次
下面是常见的服务模型:
- 任务服务:具有通常对应于单一用途的父业务流程逻辑的非不可知的功能上下文服务。任务服务通常会封装组成多个其他服务以完成其任务所需的组合逻辑。
- 微服务:一种非不可知服务,通常包含特定处理和实现需求的逻辑小功能范围。微服务逻辑通常不可重用,但可以具有解决方案内复用潜力。逻辑性质也许会变化。
- 实体服务:具有与一个或多个相关业务实体(例如发票、客户或索赔)相关联的不可知功能上下文的可重用服务。例如,“采购订单”服务具有与采购订单相关数据和逻辑处理相关联的功能上下文。
- 公共服务:虽然是具有不可知功能上下文的可重用服务,但这种类型的服务并不是从业务分析规范和模型中得出的。它封装了底层的技术中心功能,例如通知、日志记录和安全处理。
2.Web服务建模过程
3.REST服务建模过程
4.Web服务的服务API与契约设计
在候选概念服务得以建模并充分细化后,就到了面向服务设计阶段,在此阶段我们可以基于之前面向服务分析过程的结果开始设计物理服务契约。
当构建基于SOAP的Web服务时,这个阶段要求我们在设计相应服务逻辑之前,应用若干契约相关的面向服务原则、以一致和标准的方式将API的设计作为每个服务契约的一部分。
具体来说,通过使用Web服务契约优先方法可以得到以下好处:
- 可以设计Web服务契约以准确地表示相应服务的上下文和功能。
- Web服务操作名称应进行约定,以生成标准化的端点定义。
- 操作粒度可以抽象建模,以提供一-致和可预测的API设计,该设计也会制定出适合目标通信基础设施的消息大小和体积比。
- 服务消费者需要符合服务契约表达,反之亦然。
- 业务分析员可以协助以业务为中心的Web服务契约的设计,这也许有助于准确表达业务逻辑。
我们通常以正式定义服务需要处理的信息开始一一个Web服务契约设计。为了实现这一点,我们需要对在WSDLtypes区域中定义的消息结构进行形式化。SOAP消息在SOAP封装的Body部分中携带数据,并且此数据需要进行组织和显示。为此,我们通常依赖于XML Schema。
注意,在面向服务分析过程中,一个或多个服务更适合通过REST实现而非通过基于SOAP的Web服务技术集来实现。这种情况适用于被识别出的微服务或通过REST使其处理需求得到更好实现的其他服务。
5.Web服务及REST服务的服务API与契约版本控制
在部署服务契约之后,消费者程序自然会开始形成依赖关系。当随后被迫修改契约时,我们需要弄清楚:
- 这些变化是否会对现有(和潜在的未来)服务消费者产生负面影响?
- 如何实现和传达对消费者会或者不会造成影响的变化?
这些问题要求我们进行版本控制。每当将版本控制概念引入SOA项目时,可能会引出一些问题,例如:
- 究竟是什么构成了新版本的服务契约?主要和次要版本有什么区别?
- 版本号各个部分代表什么?
- 新版本契约是否仍然适用于现有正在使用旧版本契约的消费者?
- 当前版本契约是否适用于具有不同数据交换需求的新消费者?
- 在最小化对消费者的影响时,添加更改到现有契约的最佳方式是什么?
- 我们需要同时提供新旧契约吗?如果是,会是多久?
我们将讨论这些问题,并提供一组 解决常见版本问题的选项。
本书主要涵盖以下内容:
●使用易于理解、简单的语言解释SOA和面向服务基础
●微服务、微任务和容器化
●服务交付生命周期和相关阶段
●服务及微服务的分析与概念化
●REST服务、Web服务及微服务的服务API设计
●Web服务及REST服务的现代服务API与契约版本控制技术
●包括面向服务原则、REST约束和SOA模式(包含3种新模式)的最新附录
本书对应用架构师、企业架构师、软件开发人员以及任何有兴趣了解或负责设计与实现现代面向服务解决方案的IT专业人士来说,都是不可或缺的参考指南。