首页>参考读物>计算机科学与技术>软件与程序设计

SOA架构:服务和微服务分析及设计(原书第2版)
作者 : [加] 托马斯·埃尔(Thomas Erl) 著
译者 : 李东 李多 译
丛书名 : 架构师书库
出版日期 : 2017-11-20
ISBN : 978-7-111-58261-8
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 239
开本 : 16
原书名 : Service-Oriented Architecture: Analysis and Design for Services and Microservices(Second Edition)
原出版社: Pearson Education Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书上一版是SOA、面向服务和服务技术方面最权威的图书,本升级版正式引入了微服务和微服务抽象。本书从概述内容和案例研究背景信息开始,介绍了面向服务范式,面向服务架构的独有特征和类型,新版的标准服务模型和服务层;用Web和REST服务和微服务进行设计及建模,Web服务和REST服务的API和服务契约设计及版本控制;最后的附录介绍了面向服务的原则、REST约束条件、SOA设计模式和SOA宣言。适合应用架构师、企业架构师、软件开发人员等阅读。

图书特色

十多年来,托马斯·埃尔(Thomas Erl)的畅销书籍《SOA概念、技术与设计》一直都是面向服务和服务技术方面的最权威教程。如今,他彻底更新了这本业界知名的SOA全方位指南,书中反映了通过来之不易的经验和创作性创新而呈现的新的实践、技术和策略。本书中正式引入微服务和微任务抽象,将其作为面向服务架构及其相关服务层的一部分。新版的案例研究示例和图例进一步阐释和定位了微服务模型,并与更传统的服务类型相关联。
本书主要涵盖以下内容:
使用易于理解、简单的语言解释SOA和面向服务基础
微服务、微任务和容器化
服务交付生命周期和相关阶段
服务及微服务的分析与概念化
REST服务、Web服务及微服务的服务API设计
Web服务及REST服务的现代服务API与契约版本控制技术
包括面向服务原则、REST约束和SOA模式(包含3种新模式)的最新附录
本书对应用架构师、企业架构师、软件开发人员以及任何有兴趣了解或负责设计与实现现代、面向服务解决方案的IT专业人士来说,都是不可或缺的参考指南。

前:
内容简介
本书是知名IT畅销书作家Thomas Erl的新作,上一版曾获Jolt大奖提名,是面向服务和服务技术领域最权威的一本图书。本升级版反映了SOA技术的新实践、新技术和新策略,并引进了微服务和微任务作为SOA架构及其相关服务层的一部分。
全书共分三部分,10章。第1章和第2章分别是概述内容及案例研究背景信息。第一部分(第3~5章)是基本原理部分,其中第3章详细介绍了面向服务设计范式,包括其设计理念和设计原理以及与传统竖井式设计方法的比较;第4章深入探讨了面向服务架构的独有特征和类型,并进一步探讨了面向服务应用设计范式与技术架构应用之间的联系;第5章讲述了新版的标准服务模型和相应的服务层,并简要提到了与微服务实现要求相关的服务部署包和容器化的相关性。第二部分(第6~10章)讲解面向服务的分析和设计,其中第6章使用案例研究更新并逐步涵盖Web服务的面向服务分析过程;第7章探讨基于REST服务的面向服务分析过程,该过程随着微服务的并入而进行了修订;第8章讲解了Web服务指南和服务契约设计注意事项以及扩展的案例研究;第9章介绍了将微服务添加到服务模型特定的REST契约设计中,并提供了设计提南;第10章讲述了一系列Web服务和REST服务契约与API基本的版本控制及注意事项。第三部分为附录部分,提供了书中引用的面向服务设计原则、REST设计约束和SOA设计模式的简述表,以及完整的注释版SOA声明。

后:
作者简介
托马斯·埃尔(Thomas Erl) Arcitura教育创始人,也是“Prentice Hall Service Technology Series from Thomas Erl”系列图书的编辑。他的书籍在全球已发行超过30万册,成为国际畅销书,并获得IBM、微软、甲骨文、英特尔、埃森哲、IEEE、HL7、MITRE、SAP、CISCO、惠普等很多主要IT机构高级成员的正式认可。作为Arcitura教育公司的首席执行官,托马斯领导了国际公认的大数据科学专业认证(BDSCP)、云专业认证(CCP)和SOA专业认证(SOACP)计划的课程开发,并建立了一系列正式的、供应商中立的行业认证,全球已有数千名IT从业人员获得了这些认证。作为演讲者和讲师,托马斯在20多个国家巡回演讲过。托马斯发表过100多篇文章和访谈在许多出版物中,包括《华尔街日报》和《CIO杂志》。

上架指导

计算机\Web设计

封底文字

十多年来,托马斯•埃尔(Thomas Erl)的畅销书籍《SOA概念、技术与设计》一直都是SOA、面向服务和服务技术方面的最权威教程。如今,他彻底更新了这本业界知名的SOA全方位指南,书中反映了通过来之不易的经验和创作性创新而呈现的新的实践、技术和策略。本书中正式引入微服务和微任务抽象,将其作为面向服务架构及其相关服务层的一部分。新版的案例研究示例和图例进一步阐释和定位了微服务模型,并与更传统的服务类型相关联。
本书主要涵盖以下内容:
 使用易于理解、简单的语言解释SOA和面向服务基础
 微服务、微任务和容器化
 服务交付生命周期和相关阶段
 服务及微服务的分析与概念化
 REST服务、Web服务及微服务的服务API设计
 Web服务及REST服务的现代服务API与契约版本控制技术
 包括面向服务原则、REST约束和SOA模式(包括3种新模式)的最新附录
本书对应用架构师、企业架构师、软件开发人员以及任何有兴趣了解或负责设计与实现现代、面向服务解决方案的IT专业人士来说,都是不可或缺的参考指南。

译者序

面向服务的架构(Service-Oriented Architecture)是企业软件的一种主流架构,它是一个组件模型,将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
作为一名IT从业者,翻译只是我自己的兴趣,当初接受出版社的邀请来翻译本书,原因主要有以下几个方面:第一,本书讲述的内容正好是行业热门技术所趋向,而且很重要,在没有翻译这本书前,我已经从事了这方面的工作很多年;第二,作者Thomas Erl颇具威望,他创作的书籍已获得IBM、甲骨文、英特尔等很多主要IT机构高级成员的认可;第三,我非常愿意在SOA领域尽自己的绵薄之力。翻译本书自然就成为我所期望的一项工作,但毕竟没有受过完善的翻译培训,加之中英文表述之间的差异,在翻译过程中食洋不化在所难免,译文中必然存在不少问题,读者或多或少会遭遇一些阅读不适,所以,我诚恳地欢迎读者批评指正,并提出宝贵意见。
本书作者Thomas Erl是加拿大知名作家,Arcitura教育创始人,在SOA领域做出了巨大贡献,也是Prentice Hall Service Technology Series from Thomas Erl系列图书的编辑,他的书籍已成为国际畅销书,他的100多篇文章和访谈也已在许多出版物中出版过,包括《华尔街日报》和《CIO杂志》。能够有机会翻译这位SOA技术大咖的书,我也倍感荣幸。本书内容主要分为三个部分:第一部分为基本原理,主要介绍了面向服务,对面向服务、面向服务架构和服务与微服务层次的理解;第二部分为面向服务的分析与设计,分别讲述了Web服务、REST服务与微服务的分析建模和服务API及契约设计;第三部分为附录部分,主要包括一些原理及模式参考。书中探讨了SOA概念背后的核心内涵,即从本质上通过复用、松耦合、互操作等机制来提高软件质量、加快软件研发效率、使研发出来的产品能够相互集成并灵活适应变化。对关注SOA技术的读者,希望本书能够给你们带来帮助和启发。
在翻译本书的过程中,中西方文化差异和书中一些晦涩的表达偶尔也让我困惑,有的专业名词是否翻译,如何进行翻译等都值得深究。通过请教一些国外的朋友,我学到了一些尚未触及的专业术语,同时也对SOA有了更多的理解。待全书翻译完成,我对作者的表达自然而然也产生了一些共鸣。尽管自己在这个行业从业多年,但还是有一些专业术语需要斟酌,在翻译过程中,也翻阅了不少业界资料,在此感谢与我一起翻译的同事李多对本书翻译所做的贡献,也非常感谢机械工业出版社华章分社的编辑关敏和唐晓琳在翻译过程中表现出来的热心、耐心和敬业,同她们合作,让人非常愉快,谢谢!

李东

图书目录

译者序
致谢
第1章 概述 …… 1
1.1 本书中如何使用模式 …… 2
1.2 涵盖第1版主题的系列书籍 …… 2
1.3 本书的组织形式 …… 3
1.4 原则、约束条件和设计模式 …… 4
1.5 附加信息 …… 5
第2章 案例研究背景知识 …… 7
2.1 如何应用案例研究 …… 7
2.2 案例研究背景1:Transit Line Systems, Inc. …… 7
2.3 案例研究背景2:Midwest University Association …… 7
第一部分 基本原理
第3章 理解面向服务 …… 10
3.1 面向服务简介 …… 10
3.1.1 业务自动化中的服务 …… 11
3.1.2 服务是能力的集合 …… 12
3.1.3 面向服务是一种设计范式 …… 13
3.1.4 面向服务的设计原则 …… 15
3.2 面向服务所解决的问题 …… 16
3.2.1 竖井式应用架构 …… 16
3.2.2 大量的浪费 …… 18
3.2.3 缺乏效率 …… 18
3.2.4 企业膨胀 …… 19
3.2.5 产生复杂的基础设施和错综复杂的企业架构 …… 19
3.2.6 系统间集成成为永恒的挑战 …… 20
3.2.7 面向服务的需求 …… 20
3.2.8 增加大量可复用解决方案逻辑 …… 21
3.2.9 削减应用个性化业务逻辑 …… 21
3.2.10 削减业务逻辑的总量 …… 22
3.2.11 本征互操作性 …… 22
3.3 面向服务对企业的影响 …… 23
3.3.1 面向服务和“应用”的概念 …… 23
3.3.2 面向服务和“集成”的概念 …… 24
3.3.3 服务组合 …… 25
3.4 面向服务计算的目的和优势 …… 26
3.4.1 增强本征互操作性 …… 27
3.4.2 增强联合 …… 28
3.4.3 增加供应商多元化选择 …… 29
3.4.4 同步提升业务与技术领域 …… 30
3.4.5 提高投资回报率 …… 31
3.4.6 提高组织的业务敏捷性 …… 32
3.4.7 减少IT成本 …… 34
3.5 面向服务的4个支撑点 …… 34
3.5.1 团队合作 …… 36
3.5.2 教育 …… 36
3.5.3 纪律 …… 36
3.5.4 平衡范围 …… 37
第4章 理解面向服务架构 …… 39
4.1 SOA的4个特性 …… 40
4.1.1 业务驱动 …… 40
4.1.2 供应商中立 …… 41
4.1.3 企业中心化 …… 42
4.1.4 组合中心化 …… 44
4.1.5 设计优先级 …… 45
4.2 SOA的4种常见类型 …… 46
4.2.1 服务架构 …… 47
4.2.2 服务组合架构 …… 50
4.2.3 服务目录架构 …… 55
4.2.4 面向服务的企业架构 …… 58
4.3 面向服务和SOA的最终结果 …… 58
4.4 SOA项目和生命周期 …… 60
4.4.1 方法论和项目交付的策略 …… 62
4.4.2 SOA项目阶段 …… 62
4.4.3 SOA项目采用的计划 …… 65
4.4.4 服务目录分析 …… 65
4.4.5 面向服务分析 (服务建模) …… 66
4.4.6 面向服务设计(服务契约) …… 68
4.4.7 服务逻辑设计 …… 69
4.4.8 服务开发 …… 69
4.4.9 服务测试 …… 69
4.4.10 服务部署和维护 …… 71
4.4.11 服务使用和监控 …… 71
4.4.12 服务发现 …… 72
4.4.13 服务版本控制和退役 …… 72
4.4.14 项目阶段和组织角色 …… 72
第5章 理解服务与微服务的层次 …… 74
5.1 服务层次简介 …… 74
5.1.1 服务模型和服务层次 …… 74
5.1.2 服务和候选服务能力 …… 76
5.2 分解业务问题 …… 76
5.2.1 功能分解 …… 76
5.2.2 服务封装 …… 76
5.2.3 不可知上下文 …… 76
5.2.4 不可知能力 …… 79
5.2.5 功能抽象 …… 79
5.2.6 实体抽象 …… 80
5.2.7 非不可知上下文 …… 80
5.2.8 微任务抽象和微服务 …… 81
5.2.9 流程抽象和任务服务 …… 81
5.3 构建面向服务的解决方案 …… 84
5.3.1 面向服务和服务组合 …… 84
5.3.2 能力组合和能力再组合 …… 84
5.3.3 逻辑集中与服务规范化 …… 90
第二部分 面向服务的分析与设计
第6章 Web服务及微服务的分析与建模 …… 94
6.1 Web服务建模过程 …… 94
6.1.1 步骤1:分解业务流程(使之成为细粒度操作) …… 95
6.1.2 步骤2:过滤不适操作 …… 98
6.1.3 步骤3:定义候选实体服务 …… 99
6.1.4 步骤4:识别特定流程逻辑 …… 101
6.1.5 步骤5:应用面向服务 …… 102
6.1.6 步骤6:识别候选服务组合 …… 102
6.1.7 步骤7:分析处理需求 …… 103
6.1.8 步骤8:定义候选公共服务 …… 104
6.1.9 步骤9:定义候选微服务 …… 105
6.1.10 步骤10:应用面向服务 …… 106
6.1.11 步骤11:修订候选服务组合 …… 106
6.1.12 步骤12:修订候选能力分组 …… 106
第7章 REST服务及微服务的分析与建模 …… 107
7.1 REST服务建模过程 …… 107
7.1.1 步骤1:分解业务流程(使之成为细粒度操作) …… 109
7.1.2 步骤2:滤掉不适操作 …… 109
7.1.3 步骤3:定义候选实体服务 …… 110
7.1.4 步骤4:识别特定流程逻辑 …… 112
7.1.5 步骤5:识别资源 …… 113
7.1.6 步骤6:将服务能力与资源和方法相关联 …… 114
7.1.7 步骤7:应用面向服务 …… 116
7.1.8 步骤8:识别候选服务组合 …… 117
7.1.9 步骤9:分析处理需求 …… 118
7.1.10 步骤10:定义候选公共服务(并且关联资源和方法) …… 119
7.1.11 步骤11:定义候选微服务(并且关联资源和方法) …… 121
7.1.12 步骤12:应用面向服务 …… 121
7.1.13 步骤13:修订候选服务组合 …… 121
7.1.14 步骤14:修改资源定义和候选能力分组 …… 122
7.2 附加因素 …… 123
7.2.1 统一契约建模和REST服务目录建模 …… 123
7.2.2 REST约束条件和统一契约建模 …… 125
7.2.3 REST服务能力粒度 …… 125
7.2.4 资源与实体 …… 126
第8章 Web服务的服务API与契约设计 …… 128
8.1 服务模型设计关注点 …… 129
8.1.1 实体服务设计 …… 129
8.1.2 公共服务设计 …… 130
8.1.3 微服务设计 …… 131
8.1.4 任务服务设计 …… 131
8.2 Web服务设计指南 …… 140
8.2.1 应用命名标准 …… 140
8.2.2 应用合适的服务契约API粒度 …… 141
8.2.3 将Web服务的操作设计成原生可扩展的 …… 143
8.2.4 考虑采用模块化WSDL文档 …… 143
8.2.5 慎用命名空间 …… 144
8.2.6 使用SOAP文档和Literal属性值 …… 145
第9章 REST服务及微服务的服务API与契约设计 …… 147
9.1 服务模型设计关注点 …… 147
9.1.1 实体服务设计 …… 148
9.1.2 公共服务设计 …… 148
9.1.3 微服务设计 …… 149
9.1.4 任务服务设计 …… 150
9.2 REST服务设计指南 …… 155
9.2.1 统一服务契约设计关注点 …… 155
9.2.2 设计和标准化方法 …… 155
9.2.3 设计和标准化HTTP报头 …… 157
9.2.4 设计和标准化HTTP响应码 …… 158
9.2.5 自定义响应码 …… 160
9.2.6 设计媒介类型 …… 162
9.2.7 设计媒介类型模式 …… 163
9.2.8 复杂方法设计 …… 164
9.2.9 无状态复杂方法 …… 166
9.2.10 状态复杂方法 …… 171
第10章 Web服务及REST服务的服务API与契约版本控制 …… 176
10.1 版本控制的基本要素 …… 176
10.1.1 Web服务版本控制 …… 176
10.1.2 REST服务版本控制 …… 177
10.1.3 粒度的精细与粗糙限制 …… 177
10.2 版本控制和兼容性 …… 178
10.2.1 后向兼容 …… 178
10.2.2 前向兼容 …… 180
10.2.3 兼容性变更 …… 182
10.2.4 非兼容性变更 …… 183
10.3 REST 服务兼容性关注点 …… 184
10.4 版本标识符 …… 186
10.5 版本控制策略 …… 188
10.5.1 严格策略(新变更,新契约) …… 188
10.5.2 弹性策略(后向兼容) …… 189
10.5.3 松散策略(反向和前向兼容) …… 189
10.5.4 策略总结 …… 190
10.6 REST服务版本控制关注点 …… 190
第三部分 附录
附录A 面向服务原则参考 …… 194
附录B REST约束条件参考 …… 199
附录C SOA设计模式参考 …… 203
附录D 注释版SOA声明 …… 220

教学资源推荐
作者: 刘建舟 徐承志 陈荆亮 吴奕 编著 邵雄凯 主审
作者: 刘博 董学文 等编著
作者: 贾伯琪 顾为兵 苏仕华 张四海 何克东 编著
作者: [美]埃里克 S. 罗伯茨(Eric S. Roberts) 著
参考读物推荐
作者: [印] R.纳热瓦拉·拉奥(R. Nageswara Rao)著
作者: 新设计团队 著