"This book is organized around three aspects of distributed systems: networks middleware tools, and applications. The authors introduce the network issues and high level connection tools in the initial chapters of the book. The abstractions and the implementations of several middleware for distributed computing are described over following chapters of the book, which constitute the bulk of core foundational topics. Going further, the authors discuss P2P, coordinated architectures, and advanced middleware for building large modern distributed applications spread over six chapters. Very large distributed systems rely on Intelligent and autonomous behavior of its components. In this context, the authors present distributed knowledge management and distributed multi-agent systems in the final chapters of the book."--