Encapsulating Coordination in the Context of Distributed Systems

It has been widely agreed that writing programs for heterogeneous distributed computing is complex and difficult. Programmers are required to deal with the low-level details of synchronization, heterogeneity, and communication. The primary goal of this research is to simplify the programming by making these complexities hidden from the programmers. Thus, the programmers can focus on the computational logic. To achieve this goal, we present a coordination model where coordination plays a central role in the development of distributed systems. The model encapsulates the details of coordination, computation, and communication into layers. Each of the layers provides a set of layer interfaces to its above layer. Programmers can focus on the computation of the programs without concerning about the low-level details of synchronization and communication encapsulated in its lower layers. The model supports the development of distributed systems using a traditional high-level programming language such as C/C++ or Java on Windows and Linux.