Integrating Remote Invocations with Asynchronism and Cooperative Multitasking

In this paper we argue that it is possible to couple the advantages of programming with the well-known abstraction of RPC with asynchronous programming models adequate for wide-area programming environments such as grids. We discuss how some programming language features can help create different programming abstractions over a basic asynchronous invocation primitive. The paper also discusses how coroutines (cooperative multitasking) can be used to allow computation to proceed while a client is waiting for the result of a remote invocation, avoiding the pitfalls of programming with threads.

[1]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[2]  Akinori Yonezawa,et al.  Object-oriented concurrent programming ABCL/1 , 1986, OOPLSA '86.

[3]  W. Keith Edwards,et al.  Core Jini , 1999 .

[4]  Amy L. Murphy,et al.  LIME: Linda meets mobility , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Sergei Gorlatch,et al.  Future-Based RMI: Optimizing Compositions of Remote Method Calls on the Grid , 2003, Euro-Par.

[6]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[7]  Marvin Theimer,et al.  Cooperative Task Management Without Manual Stack Management , 2002, USENIX Annual Technical Conference, General Track.

[8]  Manuel Serrano,et al.  Scheme fair threads , 2004, PPDP '04.

[9]  Henry Lieberman,et al.  Concurrent object-oriented programming in Act 1 , 1987 .

[10]  Roberto Ierusalimschy,et al.  Coroutines in Lua , 2004 .

[11]  Mitchell Wand,et al.  Trampolined style , 1999, ICFP '99.

[12]  O. J. Dahl,et al.  Simula Begin , 1979 .

[13]  Robbert van Renesse,et al.  Reliable Distributed Computing with the Isis Toolkit , 1994 .

[14]  Gruia-Catalin Roman,et al.  A Lightweight Coordination Middleware for Mobile Computing , 2004, COORDINATION.

[15]  Umar Saif,et al.  Communication primitives for ubiquitous systems or RPC considered harmful , 2001, Proceedings 21st International Conference on Distributed Computing Systems Workshops.

[16]  Roberto Ierusalimschy,et al.  Programming in Lua , 2003 .

[17]  Sun Microsystems,et al.  RPC: Remote Procedure Call Protocol specification , 1988, RFC.

[18]  Andrew S. Tanenbaum,et al.  A Critique of the Remote Procedure Call Paradigm , 1988 .

[19]  Roberto Ierusalimschy,et al.  LuaTS - A Reactive Event-Driven Tuple Space , 2003, J. Univers. Comput. Sci..

[20]  David E. Culler,et al.  SEDA: an architecture for well-conditioned, scalable internet services , 2001, SOSP.

[21]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[22]  Nicholas Carriero,et al.  How to write parallel programs: a guide to the perplexed , 1989, CSUR.

[23]  Eric A. Brewer,et al.  USENIX Association Proceedings of HotOS IX : The 9 th Workshop on Hot Topics in Operating Systems , 2003 .

[24]  Roberto Ierusalimschy,et al.  ALua: flexibility for parallel programming , 2002, Comput. Lang. Syst. Struct..