Very large distributed computer systems are becoming ubiquitous. These include cloud platforms, and smart grids, to name just two examples. Unlike 'classical' distributed computer systems, these systems are very large, usually involving millions of users and tens of thousands of nodes; they are heterogeneous, often combining large data centers, mobile devices, and sensors, often managed by different organizations; and they are composites, incorporating a growing number of software and distributed services technologies provided by third parties. In spite of their phenomenal success, these systems are increasingly difficult to develop using traditional software techniques and classical distributed architectures. In this presentation, I will focus on presenting, based on some recent work, how distributed algorithms, especially through self-stabilizing mechanisms and epidemic protocols, can be a source of inspiration to provide the tools required for the design and implementation of these systems, especially when combined with software engineering approaches (components, aspects, execution models) that have proven their value for the development of complex software.
Copies / Update: Please contact me by email if you wish to obtain a copy of a paper that is not available on line.