本书讨论分布式控制领域中的软件体系结构,创新性地将计算机科学中的“模式”概念引入这项研究,从主流工业实践中甄选出80种实用模式,并将其组织为模式语言,为应对各类设计问题提供了成熟的解决方案。这80种模式涵盖消息模式、数据管理模式、人机界面模式和机群管理模式等,从问题到方案再到应用均清晰易读。本书适合机械工程师、设计师和管理人员阅读,也是计算机和自动控制等相关专业学生的有益参考资料。
全球化的现代工业生产对分布式控制系统提出了更高的要求,其中,软件体系结构的好坏决定着整个系统的品质,这对于并不熟悉软件设计的机械工程师是极大的挑战。《分布式控制系统设计:模式语言方法》创新性地将计算机科学领域中的“模式”概念引入机器控制系统的研究中,甄选出80种模式,为系统工程师、设计师和管理人员等提供了实用的基础知识和应用指导。《分布式控制系统设计:模式语言方法》特色
·精选主流实用模式。80种模式都根植于工业实践,并经过多番专家研讨,涵盖消息模式、数据管理模式、人机界面模式等,为应对各类问题提供了成熟的解决方案。
·从模式到模式语言。将模式组织为模式语言是应对复杂问题所必需的,书中讲解了构建语言的“语法”,但并不限于80种模式,而是鼓励读者根据设计需求不断拓展。
·易阅读的讲解方式。每种模式都采用统一的呈现格式,从问题到方案再到应用均清晰明了,并提供易于查询的“模式手册”和细节知识更为丰富的配套网站。
各种不同类型的机器已经成为现代人类社会不可缺少的部分。在过去,一般认为机器系统的设计与开发是机械工程师的事,但随着机器功能的增加和复杂性的提高,机器控制系统的设计和开发成为相对独立的领域。机器控制系统离不开软件,甚至是非常复杂的软件。软件的体系结构决定了整个系统的品质,然而,机器控制系统工程师通常缺乏软件领域的专业知识,对软件的体系结构认识得也不够充分,可以说软件系统和机器控制领域之间存在巨大的鸿沟。
现代机器结构越来越复杂,功能越来越强大,分布式控制已经成为机器控制系统必然的选择,也是近年来研究和设计人员面临的巨大挑战。如何设计好的机器控制系统软件呢?本书从一个新的角度探讨了机器控制系统设计方法的基本原理,主要讲述如何运用模式来设计面向机器的分布式控制系统。模式提供了解决特定问题的原理和思路,而不是具体的技术细节。模式对应于特定设计问题的解决方案,其源于已得到成功应用的系统,开发人员可以在设计中复制这些解决方案。
本书内容丰富,涉及许多行业和领域。书中首先介绍了分布式控制系统的特性、设计方法和面临的挑战,然后进入核心内容——作者从成功的机器系统开发中提炼出来的80种模式,包括分布模式、消息模式、事件处理模式、控制系统模态的模式、数据管理模式、处理稀缺资源的模式、软件和硬件的解耦模式、冗余模式、系统启动模式、软件更新模式、人机界面模式、高层服务模式、机群管理模式、系统配置模式等。这些模式描述了分布式控制系统设计的解决途径,对于新系统的开发和旧系统的维护具有重要的作用,形成了分布式控制系统设计的模式语言。本书最后还利用书中模式设计了一个工作机器控制系统,用实例演示了模式语言的有效性。
本书将计算机科学领域中的模式概念引入机器控制系统的研究中,内容新颖,为分布式控制系统的设计与开发提供了一种新的手段,应用前景广阔。本书面向机器控制系统设计人员、系统工程师和系统管理人员,包括高级规划人员和项目经理等。当然,本书也可以作为本领域的教学参考书。
限于时间以及译者水平,译文中难免存在不当之处,恳请读者批评指正。
译者
2017年10月于西安
维利-佩卡·埃洛兰塔(Veli-Pekka Eloranta),坦佩雷理工大学研究员,曾多次担任VikingPLoP的主席。
乔纳斯·科斯基宁(Johannes Koskillen),坦佩雷理工大学研究员,方向为软件项目管理和软件架构等。
马可·利帕宁(Marko Leppanen),坦佩雷理工大学博士后研究员,曾在芬兰的多所大学讲授模式课程。
维莱·雷约宁(Ville Reijonen),经验丰富的模式研究者,现在工业界致力于敏捷软件开发。
目 录
Designing Distributed Control Systems: A Pattern Language Approach
出版者的话
译者序
推荐序
致谢
第1章 绪论 1
1.1 为什么阅读本书 3
1.2 如何使用本书 3
1.3 与过去工作的比较 4
第2章 分布式控制系统领域 6
2.1 分布式控制系统的特性 8
2.2 通用方法和挑战 20
2.3 本领域的新趋势 35
第3章 软件体系结构和质量 47
3.1 什么是质量 47
3.2 质量属性 48
3.3 度量质量 50
3.4 外部质量和内部质量 51
第4章 关于模式 53
4.1 什么是模式 53
4.2 从模式到模式语言 56
4.3 本书中模式的故事 58
4.4 本书中使用的模式格式 60
第5章 分布式控制系统的模式语言 62
5.1 控制系统 63
5.2 看门狗 67
5.3 自检 70
5.4 强制输入值 70
5.5 错误计数器 71
第6章 分布模式 72
6.1 孤立功能 72
6.2 分布式安全 76
6.3 心跳 79
6.4 全局时间 81
第7章 消息模式 85
7.1 一对多 86
7.2 高层协议 90
7.3 消息接口 94
7.4 协议版本握手 94
7.5 消息队列 94
7.6 分类消息 97
7.7 消息信道复用 97
7.8 消息网关 97
7.9 消息向量时钟 98
7.10 唯一确认 101
第8章 事件处理模式 102
8.1 通知 102
8.2 通知级别 106
8.3 通知日志 109
8.4 预警 112
第9章 控制系统模态的模式 115
9.1 操作模态 116
9.2 安全状态 119
9.3 跛行模式 123
9.4 传感器旁路 126
9.5 无所忌惮 126
9.6 互换算法 129
第10章 数据管理模式 132
10.1 变量管理器 133
10.2 变量保护 138
10.3 变量值翻译器 140
10.4 数据状态 144
10.5 计数器 147
10.6 快照 147
第11章 处理稀缺资源的模式 151
11.1 并发执行 152
11.2 静态调度 155
11.3 分离实时 158
11.4 部分结果 162
11.5 静态资源分配 165
11.6 储物柜密钥 167
11.7 半任务 170
11.8 早期工作 173
第12章 软件和硬件的解耦模式 176
12.1 硬件抽象层 176
12.2 操作系统抽象 179
12.3 虚拟运行环境 182
第13章 冗余模式 185
13.1 1+1冗余 185
13.2 投票 188
第14章 系统启动模式 192
14.1 引导程序 192
14.2 系统启动 196
14.3 启动协商 199
第15章 软件更新模式 200
15.1 可更新软件 201
15.2 集中更新 204
15.3 无扰更新 207
第16章 人机界面模式 208
16.1 人机界面 209
16.2 人工反馈 212
16.3 两步确认 214
16.4 直立就好 217
16.5 基于任务的UI 218
16.6 基于角色的UI 219
16.7 替代操作站 221
16.8 多个操作站 225
16.9 设备提供UI 225
16.10 信标 225
16.11 HMI通知 228
16.12 操作者配置文件 228
16.13 公共外观 231
第17章 高层服务模式 235
17.1 诊断 235
17.2 黑箱 239
17.3 第三方沙箱 239
17.4 远程访问 243
17.5 动态信道选择器 246
第18章 机群管理模式 250
18.1 机群管理 250
18.2 M2M通信 254
18.3 机会委托 254
18.4 系统适配器 254
第19章 系统配置模式 255
19.1 参数 255
19.2 配置参数版本 259
19.3 基于组件的配置 259
19.4 控制系统选项 265
第20章 应用模式 268
第21章 结束语 273
附录A 质量属性表 274
附录B 模式手册 278
参考文献 289
索引 305