Designing Distributed Control Systems - A PatternLanguage Approach
Buy Rights Online Buy Rights

Rights Contact Login For More Details

More About This Title Designing Distributed Control Systems - A PatternLanguage Approach


Designing Distributed Control Systems presents 80 patterns for designing distributed machine control system software architecture (forestry machinery, mining drills, elevators, etc.). These patterns originate from state-of-the-art systems from market-leading companies, have been tried and tested, and will address typical challenges in the domain, such as long lifecycle, distribution, real-time and fault tolerance. Each pattern describes a separate design problem that needs to be solved. Solutions are provided, with consequences and trade-offs. Each solution will enable piecemeal growth of the design. Finding a solution is easy, as the patterns are divided into categories based on the problem field the pattern tackles. The design process is guided by different aspects of quality, such as performance and extendibility, which are included in the pattern descriptions. The book also contains an example software architecture designed by leading industry experts using the patterns in the book. The example system introduces the reader to the problem domain and demonstrates how the patterns can be used in a practical system design process. The example architecture shows how useful a toolbox the patterns provide for both novices and experts, guiding the system design process from its beginning to the finest details. Designing distributed machine control systems with patterns ensures high quality in the final product. High-quality systems will improve revenue and guarantee customer satisfaction. As market need changes, the desire to produce a quality machine is not only a primary concern, there is also a need for easy maintenance, to improve efficiency and productivity, as well as the growing importance of environmental values; these all impact machine design. The software of work machines needs to be designed with these new requirements in mind. Designing Distributed Control Systems presents patterns to help tackle these challenges. With proven methodologies from the expert author team, they show readers how to improve the quality and efficiency of distributed control systems.


Veli-Pekka Eloranta, is a researcher at TUT. He has worked five years with the software architectures and agile methods. He is an active person in the pattern community and served in program committees of several PLoP conferences.

Marko Leppänen is a researcher at the TUT. His professional interests include software project management, agile methodologies, software architectures and patterns. Marko has been organising VikingPLoP conferences and is an active pattern enthusiast.

Johannes Koskinen is a post-doc research fellow at TUT. His research focuses on software architectures, web applications, and cloud environments. Johannes is an experienced pattern writer. In addition, he gives lectures to several universities in Finland on software architectures.

Ville Reijonen participated as researcher in the pattern collection effort between 2008 and 2010.


Foreword xvii

Acknowledgements xxi

Chapter 1 Setting the Landscape 1

Chapter 2 The Domain of Distributed Control Systems 9

Chapter 3 Software Architecture and Quality 71

Chapter 4 About Patterns 79

Chapter 5 Pattern Language for Distributed Control Systems 93

Chapter 6 Patterns for Distribution 109

Chapter 7 Messaging Patterns 129

Chapter 8 Event-Handling Patterns 155

Chapter 9 Patterns for Control System Modes 173

Chapter 10 Patterns for Data Management 199

Chapter 11 Patterns to Handle Scarce Resources 227

Chapter 12 Patterns for Decoupling Software and Hardware 263

Chapter 13 Redundancy Patterns 277

Chapter 14 Patterns for System Start-Up 287

Chapter 15 Software Update Patterns 299

Chapter 16 Human–Machine Interface Patterns 311

Chapter 17 High-Level Services Patterns 349

Chapter 18 Fleet Management Patterns 371

Chapter 19 Patterns for System Configuration 379

Chapter 20 Applying Patterns 399

Chapter 21 Concluding Remarks 407

Appendix A Quality Attribute Table 409

Appendix B Patlets 415

Glossary 433

References 439

Index of Patterns 459

Index 465