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.
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