This book bridges the gap between the theory of scientific application development and the theory and practice of application deployment over distributed systems. It addresses this imbalance by surveying a broad range of distributed applications and understanding their main characteristics; reviewing successful systems, tools, and middlew...