В современных вычислениях программы нередко объединяют несколько процессов. Основная проблема, возникающая при создании таких распределенных программ, состоит в том, чтобы заставить все процессы вместе работать над решением общей задачи, даже в случае отказов некоторых из них. Данная книга содержит введение в абстракции распределенного программирования и знакомит с фундаментальными алгоритмами и их реализациями в нескольких распределенных окружениях. Перед читателем будут раскрыты важные проблемы распределенных вычислений и основные алгоритмические приемы их решения. На подробных примерах читатель сможет понять, как с помощью этих приемов конструировать распределенные приложения. Обсуждение каждой темы завершается множеством упражнений и их решений. Издание предназначено для студентов высших учебных заведений, аспирантов, а также программистов, занимающихся разработкой высоконадежных распределенных приложений.
V sovremennykh vychislenijakh programmy neredko obedinjajut neskolko protsessov. Osnovnaja problema, voznikajuschaja pri sozdanii takikh raspredelennykh programm, sostoit v tom, chtoby zastavit vse protsessy vmeste rabotat nad resheniem obschej zadachi, dazhe v sluchae otkazov nekotorykh iz nikh. Dannaja kniga soderzhit vvedenie v abstraktsii raspredelennogo programmirovanija i znakomit s fundamentalnymi algoritmami i ikh realizatsijami v neskolkikh raspredelennykh okruzhenijakh. Pered chitatelem budut raskryty vazhnye problemy raspredelennykh vychislenij i osnovnye algoritmicheskie priemy ikh reshenija. Na podrobnykh primerakh chitatel smozhet ponjat, kak s pomoschju etikh priemov konstruirovat raspredelennye prilozhenija. Obsuzhdenie kazhdoj temy zavershaetsja mnozhestvom uprazhnenij i ikh reshenij. Izdanie prednaznacheno dlja studentov vysshikh uchebnykh zavedenij, aspirantov, a takzhe programmistov, zanimajuschikhsja razrabotkoj vysokonadezhnykh raspredelennykh prilozhenij.