本書討論分布式控制領域中的軟件體系結構,創新性地將計算機科學中的“模式”概念引入這項研究,從主流工業實踐中甄選出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