We argue that objects that interact in a distributed system need to be dealt with in ways that are intrinsically different from objects that interact in a single address space. These differences are required because distributed systems require that the programmer be aware of latency, have a different model of memory access, and take into account issues of concurrency and partial failure. We look at a number of distributed systems that have attempted to paper over the distinction between local and remote objects, and show that such systems fail to support basic requirements of robustness and reliability. These failures have been masked in the past by the small size of the distributed systems that have been built. In the enterprise-wide distributed systems foreseen in the near future, however, such a masking will be impossible. We conclude by discussing what is required of both systems-level and application-level programmers and designers if one is to take distribution seriously.
Cited By
- Weisenburger P, Reinhard T and Salvaneschi G Static latency tracking with placement types Companion Proceedings for the ISSTA/ECOOP 2018 Workshops, (34-36)
- Jensen S (2017). Integrating Big Data Services Into an Undergraduate MIS Curriculum, International Journal of Systems and Service-Oriented Engineering, 7:2, (58-73), Online publication date: 1-Apr-2017.
- Alvaro P and Tymon S (2017). Abstracting the Geniuses Away from Failure Testing, Queue, 15:5, (29-53), Online publication date: 1-Oct-2017.
- Alvaro P and Tymon S (2017). Abstracting the geniuses away from failure testing, Communications of the ACM, 61:1, (54-61), Online publication date: 27-Dec-2017.
- Garnock-Jones T, Tobin-Hochstadt S and Felleisen M The Network as a Language Construct Proceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 8410, (473-492)
- Lopez P, Sanchez-Artigas M, Toda S, Cotes C and Lenton J StackSync Proceedings of the 15th International Middleware Conference, (49-60)
- Ganesan D and Lindvall M (2014). ADAM, ACM Transactions on Software Engineering and Methodology, 23:2, (1-51), Online publication date: 1-Mar-2014.
- Marinos A and Krause P Towards the web of models Proceedings of the 2010 international conference on Semantic web rules, (251-258)
- Adamczyk P and Hafiz M (2010). The Tower of Babel did not fail, ACM SIGPLAN Notices, 45:10, (947-957), Online publication date: 17-Oct-2010.
- Adamczyk P and Hafiz M The Tower of Babel did not fail Proceedings of the ACM international conference on Object oriented programming systems languages and applications, (947-957)
- Hellerstein J (2010). The declarative imperative, ACM SIGMOD Record, 39:1, (5-19), Online publication date: 27-Sep-2010.
- de Alwis B, Gutwin C and Greenberg S GT/SD Proceedings of the 1st ACM SIGCHI symposium on Engineering interactive computing systems, (265-274)
- Cook W, Tilevich E, Ibrahim A and Wiedermann B Language design for distributed objects Proceedings of the 1st International Workshop on Distributed Objects for the 21st Century, (1-4)
- Tilevich E and Smaragdakis Y (2009). J-Orchestra, ACM Transactions on Software Engineering and Methodology, 19:1, (1-40), Online publication date: 1-Aug-2009.
- Ayres J and Eisenbach S Stage Proceedings of the 2009 ICSE Workshop on Multicore Software Engineering, (25-32)
- Feldgen M and Clua O The use of CATs and case-based teaching for dealing with different levels of abstractions Proceedings of the 39th IEEE international conference on Frontiers in education conference, (1059-1065)
- Fornasier P, Webber J and Gorton I Soya Proceedings of the 10th international conference on Component-based software engineering, (227-241)
- Rellermeyer J, Alonso G and Roscoe T R-OSGi Proceedings of the 8th ACM/IFIP/USENIX international conference on Middleware, (1-20)
- Rellermeyer J, Alonso G and Roscoe T R-OSGi Proceedings of the ACM/IFIP/USENIX 2007 International Conference on Middleware, (1-20)
- Black A, Hutchinson N, Jul E and Levy H The development of the Emerald programming language Proceedings of the third ACM SIGPLAN conference on History of programming languages, (11-1-11-51)
- Lima A, Cirne W, Brasileiro F and Fireman D A case for event-driven distributed objects Proceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part II, (1705-1721)
- Vinoski S (2006). Scripting JAX-WS, IEEE Internet Computing, 10:3, (91-94), Online publication date: 1-May-2006.
- Collet R and Van Roy P Failure handling in a network-transparent distributed programming language Advanced Topics in Exception Handling Techniques, (121-140)
- Soares S, Borba P and Laureano E (2006). Distribution and persistence as aspects, Software—Practice & Experience, 36:7, (711-759), Online publication date: 1-Jun-2006.
- Parastatidis S, Woodman S, Webber J, Kuo D and Greenfield P (2006). Asynchronous Messaging between Web Services Using SSDL, IEEE Internet Computing, 10:1, (26-39), Online publication date: 1-Jan-2006.
- Foster I and Tuecke S (2005). Describing the Elephant: The Different Faces of IT as Service, Queue, 3:6, (26-29), Online publication date: 1-Jul-2005.
- MacLaren J, Allen G, Dekate C, Huang D, Hutanu A and Zhang C Shelter from the storm Proceedings of the 2005 OTM Confederated international conference on On the Move to Meaningful Internet Systems, (294-303)
- Joseph J, Ernest M and Fellenstein C (2004). Evolution of grid computing architecture and grid adoption models, IBM Systems Journal, 43:4, (624-645), Online publication date: 1-Oct-2004.
- Long B (2004). Distributed result set iterator, Journal of Parallel and Distributed Computing, 64:4, (536-545), Online publication date: 1-Apr-2004.
- Nakajima T, Oikawa S, Ishikawa H, Iwasaki K and Sugaya M Experiences with Building Distributed Middleware for Home Computing on Commodity Software Proceedings of the 24th International Conference on Distributed Computing Systems Workshops - W7: EC (ICDCSW'04) - Volume 7, (424-429)
- Vinoski S (2003). Invocation Styles, IEEE Internet Computing, 7:4, (83-85), Online publication date: 1-Jul-2003.
- Vinoski S (2003). It's Just a Mapping Problem, IEEE Internet Computing, 7:3, (88-90), Online publication date: 1-May-2003.
- Tilevich E, Urbanski S, Smaragdakis Y and Fleury M Aspectizing server-side distribution Proceedings of the 18th IEEE International Conference on Automated Software Engineering, (130-141)
- Soares S, Laureano E and Borba P Implementing distribution and persistence aspects with aspectJ Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (174-190)
- Hartwich C Flexible distributed process topologies for enterprise applications Proceedings of the 3rd international conference on Software engineering and middleware, (1-19)
- Soares S, Laureano E and Borba P (2002). Implementing distribution and persistence aspects with aspectJ, ACM SIGPLAN Notices, 37:11, (174-190), Online publication date: 17-Nov-2002.
- Papaioannou T and Edwards J (2001). Manufacturing systems integration and agility: Can mobile agents help?, Integrated Computer-Aided Engineering, 8:1, (69-80), Online publication date: 1-Jan-2001.
- Suzumura T, Matsuoka S and Nakada H A Jini-based computing portal system Proceedings of the 2001 ACM/IEEE conference on Supercomputing, (24-24)
- Plank J, Bassi A, Beck M, Moore T, Swany D and Wolski R (2001). Managing Data Storage in the Network, IEEE Internet Computing, 5:5, (50-58), Online publication date: 1-Sep-2001.
- Papaioannou T and Edwards J (2001). Building Agile Systems with Mobile Code, Autonomous Agents and Multi-Agent Systems, 4:4, (293-310), Online publication date: 1-Dec-2001.
- Cormier R, Guy E and Ruddock D (1999). Quick-tests for characterizing distributed systems, ACM SIGAPP Applied Computing Review, 7:1, (5-8), Online publication date: 1-Apr-1999.
- Holder O, Ben-Shaul I and Gazit H Dynamic layout of distributed applications in FarGo Proceedings of the 21st international conference on Software engineering, (163-173)
- Holder O and Ben-Shaul I Dynamic layout of distributed applications Proceedings of the third international workshop on Software architecture, (77-80)
- Fuggetta A, Picco G and Vigna G (1998). Understanding Code Mobility, IEEE Transactions on Software Engineering, 24:5, (342-361), Online publication date: 1-May-1998.
- Di Marzo Serugendo G, Muhugusa M and Tschudin C (1998). A survey of theories for mobile agents, World Wide Web, 1:3, (139-153), Online publication date: 15-Mar-1998.
- Blackshaw B and Ellwood J Building Distributed Enterprise OLTP Applications Proceedings of the 1st International Conference on Enterprise Distributed Object Computing, (190-196)
- Carzaniga A, Picco G and Vigna G Designing distributed applications with mobile code paradigms Proceedings of the 19th international conference on Software engineering, (22-32)
Recommendations
Computability in distributed computing: a Tutorial
What can and cannot be computed in a distributed system is a complex function of the system's communication model, timing model, and failure model. This tutorial surveys some important results about computability in the canonical distributed system ...
Distributed control and distributed computing
Distributed control algorithms strive to achieve coordination between physically distributed decision-makers and controllers in order to realize some desired behavior of a large-scale system in a fast, stable and accurate manner. However, these methods ...
Principles of distributed computing: an exciting challenge
The Distributed Computing Column covers the theory of systems that are composed of a number of interacting computing elements. These include problems of communication and networking, databases, distributed shared memory, multiprocessor architectures, ...