Service Oriented Computing and Applications

, Volume 9, Issue 3–4, pp 285–309 | Cite as

Location-independent routing in process network overlays

  • Mads Dam
  • Karl PalmskogEmail author
Special Issue Paper


In distributed computing, location transparency—the decoupling of objects from their physical location—is desirable in that it can simplify application development and enables efficient resource allocation. Many systems for location transparency are built on TCP/IP. We argue that addressing mobile objects in terms of temporary hosts may not be the best design decision. Object migration makes it necessary to use dedicated routing infrastructures, e.g., location servers, to deliver inter-object messages. This incurs high costs in terms of complexity, overhead, and latency. Here, we defer object overlay routing to a networking layer, by replacing TCP/IP with a location-independent routing scheme which directs messages to destinations determined by flat identifiers instead of IP addresses. Consequently, messages are delivered directly to objects, instead of possibly out-of-date locations. We explore the scheme using a small object-based language with asynchronous message passing, similar to Core Erlang. We provide a standard, network-oblivious operational semantics of this language, and a network-aware semantics which accounts for many aspects of distribution and routing. The main result is that program execution on top of an abstract network of processing nodes connected by asynchronous point-to-point communication channels preserves network-oblivious behavior in a sound and fully abstract way, in the sense of contextual equivalence. This is a novel and strong result for such a low-level model. Previous work has addressed distributed implementations only for fully connected TCP underlays, where contextual equivalence is typically too strong, due to the need for locking to resolve preemption arising from mobility.


Network protocols Distributed systems Routing  Object mobility 



We thank the anonymous reviewers of the paper, and its previous version, for their comments and suggestions. We also thank our colleagues in the HATS project for useful discussions.


  1. 1.
    Abadi DJ (2009) Data management in the cloud: limitations and opportunities. IEEE Data Eng Bull 32(1):3–12Google Scholar
  2. 2.
    Arnold K (2000) The Jini specification, 2nd edn. Addison-Wesley Longman, BostonGoogle Scholar
  3. 3.
    Awerbuch B, Peleg D (1995) Online tracking of mobile users. J ACM 42(5):1021–1058MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Barham P, Dragovic B, Fraser K, Hand S, Harris T, Ho A, Neugebauer R, Pratt I, Warfield A (2003) Xen and the art of virtualization. In: Proceedings of the 19th ACM symposium on operating systems principles, SOSP ’03. ACM, New York, NY, USA, pp 164–177Google Scholar
  5. 5.
    Bettini L, Bono V, De Nicola R, Ferrari G, Gorla D, Loreti M, Moggi E, Pugliese R, Tuosto E, Venneri B (2003) The Klaim project: theory and practice. In: Priami C (ed) Global computing, programming environments, languages, security, and analysis of systems, Lecture Notes in Computer Science, vol 2874. Springer, Berlin, pp 88–150Google Scholar
  6. 6.
    Bishop S, Fairbairn M, Norrish M, Sewell P, Smith M, Wansbrough K (2005) Rigorous specification and conformance testing techniques for network protocols, as applied to TCP, UDP, and sockets. In: Proceedings of the 2005 conference on applications, technologies, architectures, and protocols for computer communications, SIGCOMM ’05. ACM, New York, NY, USA, pp 265–276Google Scholar
  7. 7.
    Bonwick J (2007) Rampant layering violation? Retrieved 18 Feb 2014
  8. 8.
    Caesar M, Condie T, Kannan J, Lakshminarayanan K, Stoica I (2006) ROFL: routing on flat labels. ACM SIGCOMM Comput Commun Rev 36(4):363–374CrossRefGoogle Scholar
  9. 9.
    Cardelli L, Gordon AD (1998) Mobile ambients. In: Nivat M (ed) Foundations of software science and computation structures, Lecture Notes in Computer Science, vol 1378. Springer, Berlin, pp 140–155Google Scholar
  10. 10.
    Carlsson R (2001) An introduction to Core Erlang. In: Proceedings of the PLI’01 Erlang workshopGoogle Scholar
  11. 11.
    Caromel D, Henrio L, Serpette BP (2009) Asynchronous sequential processes. Inf Comput 207(4):459–495MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Chandra TD, Toueg S (1996) Unreliable failure detectors for reliable distributed systems. J ACM 43(2):225–267MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Clavel M, Durán F, Eker S, Lincoln P, Martí-Oliet N, Meseguer J, Quesada JF (2002) Maude: specification and programming in rewriting logic. Theor Comput Sci 285(2):187–243CrossRefzbMATHGoogle Scholar
  14. 14.
    Conchon S, Le Fessant F (1999) Jocaml: mobile agents for objective-caml. In: Agent systems and applications, 1999 and third international symposium on mobile agents. Proceedings. First international symposium on, pp 22–29. IEEEGoogle Scholar
  15. 15.
    Dam M, Palmskog K (2013) Efficient and fully abstract routing of futures in object network overlays. In: Proceedings of the 2013 workshop on programming based on actors, agents, and decentralized control, AGERE! ’13. ACM, New York, NY, USA, pp 49–60Google Scholar
  16. 16.
    Demmer MJ, Herlihy MP (1998) The arrow distributed directory protocol. In: Kutten S (ed) Distributed computing, Lecture Notes in Computer Science, vol 1499. Springer, Berlin, pp 119–133Google Scholar
  17. 17.
    Douglis F, Ousterhout J (1991) Transparent process migration: design alternatives and the sprite implementation. Softw Pract Exp 21(8):757–785CrossRefGoogle Scholar
  18. 18.
    Field J, Varela CA (2005) Transactors: a programming model for maintaining globally consistent distributed state in unreliable environments. In: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL ’05. ACM, New York, NY, USA, pp 195–208Google Scholar
  19. 19.
    Fournet C, Gonthier G, Levy JJ, Maranget L, Rémy D (1996) A calculus of mobile agents. In: Montanari U, Sassone V (eds) CONCUR ’96: concurrency theory, Lecture Notes in Computer Science, vol 1119. Springer, Berlin, pp 406–421Google Scholar
  20. 20.
    Havelka D, Schulte C, Brand P, Haridi S (2005) Thread-based mobility in Oz. In: Roy P (ed) Multiparadigm programming in Mozart/Oz, Lecture Notes in Computer Science, vol 3389. Springer, Berlin, pp 137–148Google Scholar
  21. 21.
    Henrio L, Huet F, István Z (2013) Multi-threaded active objects. In: De Nicola R, Julien C (eds) Coordination models and languages, Lecture Notes in Computer Science, vol 7890. Springer, Berlin, pp 90–104Google Scholar
  22. 22.
    Jacobson V, Smetters DK, Thornton JD, Plass MF, Briggs NH, Braynard RL (2009) Networking named content. In: Proceedings of the 5th international conference on emerging networking experiments and technologies, CoNEXT ’09. ACM, New York, NY, USA, pp 1–12Google Scholar
  23. 23.
    Jeffrey A, Rathke J (2005) Contextual equivalence for higher-order pi-calculus revisited. Log Methods Comput Sci 1(1), paper 4. doi: 10.2168/LMCS-1(1:4)2005
  24. 24.
    Jennings B, Stadler R (2014) Resource management in clouds: survey and research challenges. J Netw Syst Manag 1–53. doi: 10.1007/s10922-014-9307-7
  25. 25.
    Johnsen EB, Hähnle R, Schäfer J, Schlatte R, Steffen M (2012) ABS: a core language for abstract behavioral specification. In: Aichernig BK, de Boer FS, Bonsangue MM (eds) Formal methods for components and objects, Lecture Notes in Computer Science, vol 6957. Springer, Berlin, pp 142–164Google Scholar
  26. 26.
    Johnsen EB, Owe O, Yu IC (2006) Creol: a type-safe object-oriented model for distributed concurrent systems. Theor Comput Sci 365(1–2):23–66MathSciNetCrossRefzbMATHGoogle Scholar
  27. 27.
    Johnsen EB, Schlatte R, Tapia Tarifa SL (2012) A formal model of object mobility in resource-restricted deployment scenarios. In: Arbab F, Ölveczky PC (eds) Formal aspects of component software, Lecture Notes in Computer Science, vol 7253. Springer, Berlin, pp. 187–204Google Scholar
  28. 28.
    Jul E, Levy H, Hutchinson N, Black A (1988) Fine-grained mobility in the Emerald system. ACM Trans Comput Syst 6(1):109–133Google Scholar
  29. 29.
    Klein G, Elphinstone K, Heiser G, Andronick J, Cock D, Derrin P, Elkaduwe D, Engelhardt K, Kolanski R, Norrish M, Sewell T, Tuch H, Winwood S (2009) seL4: formal verification of an OS kernel. In: Proceedings of the ACM SIGOPS 22nd symposium on operating systems principles, SOSP ’09. ACM, New York, NY, USA, pp 207–220Google Scholar
  30. 30.
    Lienhardt M, Schmitt A, Stefani JB (2007) Oz/K: a kernel language for component-based open programming. In: Proceedings of the 6th international conference on Generative programming and component engineering, GPCE ’07. ACM, New York, NY, USA, pp 43–52Google Scholar
  31. 31.
    Marinos I, Watson RNM, Handley M (2013) Network stack specialization for performance. In: Proceedings of the twelfth ACM workshop on hot topics in networks, HotNets-XII. ACM, New York, NY, USA, pp 9:1–9:7Google Scholar
  32. 32.
    Mechitov K, Razavi R, Agha G (2007) Architecture design principles to support adaptive service orchestration in WSN applications. ACM SIGBED Rev 4(3):37–42CrossRefGoogle Scholar
  33. 33.
    Milner R, Parrow J, Walker D (1992) A calculus of mobile processes, I and II. Inf Comput 100(1):1–40, 41–77Google Scholar
  34. 34.
    Nestmann U, Fuzzati R, Merro M (2003) Modeling consensus in a process calculus. In: Amadio R, Lugiez D (eds) CONCUR 2003—concurrency theory, Lecture Notes in Computer Science, vol 2761. Springer, Berlin, pp 399–414. doi: 10.1007/978-3-540-45187-7_26
  35. 35.
    Palmskog K (2014) Towards correct and efficient program execution in decentralized networks: programming languages, semantics, and resource management. Ph.D. thesis, KTH Royal Institute of TechnologyGoogle Scholar
  36. 36.
    Palmskog K, Dam M, Lundblad A, Jafari A (2013) ABS-NET: fully decentralized runtime adaptation for distributed objects. In: Carbone M, Lanese I, Lafuente AL, Sokolova A (eds) Proceedings 6th interaction and concurrency experience, Florence, Italy, 6th June 2013, electronic proceedings in theoretical computer science, vol 131. Open Publishing Association, pp 85–100Google Scholar
  37. 37.
    Papazoglou MP, Traverso P, Dustdar S, Leymann F (2008) Service-oriented computing: a research roadmap. Int J Coop Inf Syst 17(02):223–255CrossRefGoogle Scholar
  38. 38.
    Parrow J, Sjödin P (1996) Designing a multiway synchronization protocol. Comput Commun 19(14):1151–1160CrossRefGoogle Scholar
  39. 39.
    Pierce BC, Turner DN (2000) Pict: A programming language based on the pi-calculus. In: Plotkin G, Stirling C, Tofte M (eds) Proof, language and interaction: essays in honour of Robin Milner. MIT Press, Cambridge, MA, USA, pp 455–494Google Scholar
  40. 40.
    Pitts AM (2011) Howe’s method for higher-order languages. In: Sangiorgi D, Rutten JJMM (eds) Advanced topics in bisimulation and coinduction, Cambridge tracts in theoretical computer science, vol 52, Chap 5. Cambridge University Press, Cambridge, pp 197–232Google Scholar
  41. 41.
    Sangiorgi D, Kobayashi N, Sumii E (2011) Environmental bisimulations for higher-order languages. ACM Trans Program Lang Syst 33(1):5:1–5:69Google Scholar
  42. 42.
    Schaefer I, Hähnle R (2011) Formal methods in software product line engineering. IEEE Comput 44(2):82–85Google Scholar
  43. 43.
    Schäfer J (2010) A programming model and language for concurrent and distributed object-oriented systems. Ph.D. thesis, University of KaiserslauternGoogle Scholar
  44. 44.
    Sewell P, Wojciechowski PT, Unyapoth A (2010) Nomadic pict: programming languages, communication infrastructure overlays, and semantics for mobile computation. ACM Trans Program Lang Syst 32(4):12:1–12:63CrossRefGoogle Scholar
  45. 45.
    Singla A, Godfrey PB, Fall K, Iannaccone G, Ratnasamy S (2010) Scalable routing on flat names. In: Proceedings of the 6th international conference on emerging networking experiments and technologies, CoNEXT ’10. ACM, New York, NY, USA, pp 20:1–20:12Google Scholar
  46. 46.
    Skeen D, Stonebraker M (1983) A formal model of crash recovery in a distributed system. IEEE Trans Softw Eng 9(3):219–228CrossRefGoogle Scholar
  47. 47.
    Smolka G (1995) The definition of Kernel Oz. In: Podelski A (ed) Constraint programming: basics and trends, Lecture Notes in Computer Science, vol 910. Springer, Berlin, pp 251–292Google Scholar
  48. 48.
    van Steen M, Hauck FJ, Ballintijn G, Tanenbaum AS (1998) Algorithmic design of the globe wide-area location service. Comput J 41(5):297–310CrossRefzbMATHGoogle Scholar
  49. 49.
    Tanenbaum A (2002) Computer networks, 4th edn. Prentice Hall Professional Technical Reference, Upper Saddle RiverGoogle Scholar
  50. 50.
    Wang WJ, Varela CA (2006) Distributed garbage collection for mobile actor systems: the pseudo root approach. In: Chung YC, Moreira J (eds) Advances in grid and pervasive computing, Lecture Notes in Computer Science, vol 3947. Springer, Berlin, pp 360–372Google Scholar
  51. 51.
    Wei Y, Blake M (2010) Service-oriented computing and cloud computing: challenges and opportunities. IEEE Internet Comput 14(6):72–75CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London 2014

Authors and Affiliations

  1. 1.School of Computer Science and CommunicationKTH Royal Institute of TechnologyStockholmSweden

Personalised recommendations