Abstract
Beginning with the earliest assembly languages, programming even simple centralised and sequential applications was very cumbersome. Major advances in computing came with the adoption of programming languages that promoted the use of machine independent data abstractions like sets, arrays, and records, as well as control abstractions like while, ifand repeat. With the arrival of parallel machines and multi-threading, the need for additional abstractions that factor out the difficulty of concurrent computing has driven several research activities. These activities resulted in new abstractions like semaphores, monitors and rendez-vous. Not very long ago, these abstractions used to sit beside programming languages in the form of libraries, e.g., concurrency libraries in C++. They have now been integrated as first class citizens into modern programming languages, e.g., through synchronised methods in Java. Despite the many decades of research in distributed computing, abstractions for programming distributed applications are still lacking. Currently, the only abstraction that is of a relatively wide use in distributed programming is the RPC (Remote Procedure Call) [13.1]. Surprisingly enough, RPC actually aims at hiding distribution: the goal of RPC is to make an invocation of a remote object looks like the invocation of a local object. This illusion is however broken when the remote object is located on a machine that crashes or that becomes inaccessible because of a link failure [13.2].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. Birell and B. Nelson. Implementing Remote Procedure Call. ACM Transactions on Computer Systems, February 1984.
K. Birman and R. van Renesse. RPC Considered Inadequate. In Reliable Distributed Computing with the Isis Toolkit. K. Birman and R. van Renesse (eds). IEEE Computer Society Press. 1994.
R. Boichat, P. Dutta, S. Frolund and R. Guerraoui. Deconstructing Paxos. DSC-EPFL Tech-Report 2001-06.
T. Chandra and S. Toueg. Unreliable Failure Detectors for Reliable Distributed Systems. Journal of the ACM, 43(2), March 1996.
T. Chandra, V. Hadzilacos and S. Toueg. The Weakest Failure Detector for Solving Consensus. Journal of the ACM, 43(4), July 1996.
T. Chandra, V. Hadzilacos and S. Toueg. On the Impossibility of Group Membership.ACM Symposium on Principles of Distributed Computing (PODC), 1996.
G. Chockler and D. Malkhi. Active Disk Paxos with Infinitely Many Processes.ACMSymposium on Principles of Distributed Computing (PODC), 2002.
R. De Prisco, B. Lampson and N. Lynch. Revisiting the Paxos Algorithm. Theoretical Computer Science, 243(1–2), 2000.
P. Dutta, S. Frolund, R. Guerraoui and B. Pochon. An Effiicient Lightweight Universal Construction in a MessagePassing System. International Symposium on Distributed Computing (DISC), Springer Verlag (LNCS), 2002.
P. Dutta and R. Guerraoui. The Inherent Price of Indulgence. ACM Symposium on Principles of Distributed Computing (PODC), 2002.
C. Dwork, N. Lynch and L. Stockmeyer. Consensus in the Presence of Partial Synchrony. Journal of the ACM, 35 (2), 1988.
M. Fischer, N. Lynch and M. Paterson. Impossibility of Distributed Consensus with One Faulty Process. Journal of the ACM, 32(2), 1985.
S. Frolund and R. Guerraoui.X-ability: A Theory of Replication. Distributed Computing, 14:231–249, 2001.
E. Gafni and L. Lamport. Disk Paxos. International Symposium on Distributed Computing (DISC), Springer Verlag (LNCS), 2000.
R. Guerraoui. What object-oriented distributed programming does not have to be, and what it may be. Informatik 2, 1999.
R. Guerraoui. Indulgent Algorithms. ACM Symposium on Principles of Distributed Computing (PODC), 2000.
R. Guerraoui and A. Schiper. The Generic Consensus Service. IEEE Transactions on Software Engineering, 27 (1), 2001.
M. Herlihy. Wait-Free Synchronisation. ACM Transactions on Programming Languages and Systems, 13 (1), 1991.
C. Hewitt. Viewing Control Structures as Patterns of Passing Messages. Artificial Intelligence, (8), 1977.
L. Lamport. The Part-Time Parliament. ACM Transactions on Computer Systems, 16 (2), 1998.
B. Liskov and R. Scheifier. Guardians and Actions: Linguistic Support for Robust Distributed Programs. ACM Symposium on Principles of Programming Languages (POPL), February 1986.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Guerraoui, R. (2003). Dissecting Distributed Computations. In: Schiper, A., Shvartsman, A.A., Weatherspoon, H., Zhao, B.Y. (eds) Future Directions in Distributed Computing. Lecture Notes in Computer Science, vol 2584. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-37795-6_13
Download citation
DOI: https://doi.org/10.1007/3-540-37795-6_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00912-2
Online ISBN: 978-3-540-37795-5
eBook Packages: Springer Book Archive