The core purpose of the book is to present how security can be enhanced in distributed programming. Modern computing paradigm usually relies on the approach of distribution to several processes in order to harness computing power. However, most computer programmers for distributed programming face the most fundamental challenge of developing reliable secure distribute programs. Even in the execution of very common tasks, the authors contend that lack of fool proof techniques could result in process failure. In particular it is presented that in addition to security, reliability is an ongoing problem. Reliability is an issue because distributed programming processes are developed such that they should support other processes and there is extreme process cooperation to execute common tasks. This reliability assurance is a necessity even if other processes fail. Failures could be anywhere from a simple crash to some form of an adversarial attack that renders the systems the programs support as useless. Malicious process undertakings happen when such process servers are brought down.
It is in this context, that authors Cachin, Guerraoui, and Rodrigues (2011) present an introductory description of fundamental distributed programming abstractions. The present the abstractions along with the algorithms needed for their implementation which would allow them to withstand crashes and malicious attacks. An incremental approach is made use of by the authors when they present the content which facilitates for easier understanding. The authors firstly present the basic abstractions that could be made use of in a simple distributed environment. Secondly, the authors go on to introduce the form of abstractions that could be made use of in sophisticated and more challenging environments. For programmers who would be learning these algorithms from phase one, they would be able to follow the line of reasoning better. The abstractions are drawn from basic programming models and abstractions already in use and are applied as suited for the distributed programming environment. The chapters are sectioned so as to cover one chapter on each of these abstractions. There are chapters allotted for reliable broadcast, shared memory, consensus, extensions of consensus etc.