Abstract
In this paper a tuple space based co-ordination language, and a run-time system which supports it, is described. The co-ordination language is called WCL, and it is designed to support agent co-ordination over the Internet between agents which are geographically distributed. WCL uses tuple spaces as used in Linda. WCL provides a richer set of primitives than traditional tuple space based systems, and provides asynchronous and synchronous tuple space access, bulk tuple primitives, and streaming primitives which, as a whole, provide a complete framework more suited to co-ordination over the Internet compared with the Linda primitives. The primitives emphasise efficiency and location transparency (of data and agents) and this is exploited in the current run-time system used to support WCL. The run-time system described in this paper is distributed and uses location transparency and dynamic analysis of tuple space usage to migrate tuple spaces around the distributed system. Some initial experimental results are given which demonstrate the performance gains of using the tuple space migration. The paper motivates the inclusion of many of the primitives, and demonstrates how a well designed set of primitives provides performance and efficiency. The JavaSpace primitives are used as an example of how the choice of primitives can detrimentally affect the efficiency of the language, and exclude required co-ordination constructs.
Similar content being viewed by others
References
Anderson, B. and D. Shasha (1991), “Persistent Linda: Linda + Transactions + Query Processing,” In Research Directions in High-Level Parallel Programming Languages, J. Banâtre and D. Le Métayer, Eds., LNCS 574, Springer Verlag, Berlin, Germany, pp. 93–109.
Arnold, K. (1997), Private Communication.
Bosschere, K.D. and L. Wulteputte (1991), “Mutli-Prolog: Implementation on an 88000 Shared Memory Multiprocessor,” Technical Report DG 91-19, University of Ghent, Belgium.
Busi, N., R. Gorrieri and G. Zavattoro (1997), “Three Semantics of the Output Operation for Generative Communication,” In Coordination Languages and Models (Coordination'97), LNCS 1282, Springer Verlag, Berlin, Germany, pp. 205–219.
Butcher, P., A. Wood and M. Atkins (1994), “Global Synchronisation in Linda,” Concurrency: Practice and Experience 6, 6, 505–516.
Carriero, N. (1987), “Implementation of Tuple Space Machines,” PhD Dissertation, YALEU/DCS/RR-567, Yale University, New Haven, CT.
Carriero, N. and D. Gelernter (1990), How to Write Parallel Programs: A First Course, MIT Press, Cambridge, MA.
Carriero, N., D. Gelernter and L. Zuck (1994), “Bauhaus Linda,” In Object-Based Models and Languages for Concurrent Systems, P. Ciancarini, O. Nierstrasz and A. Yonezawa, Eds., LNCS 924, Springer Verlag, Berlin, Germany, pp. 66–76.
Ciancarini, P. (1991), “PoliS: A Programming Model for Multiple Tuple Spaces,” In Proceedings of the Sixth International Workshop on Sofware Specification and Design, IEEE CS Press, Los Alamitos, CA, pp. 44–51.
Ciancarini, P., A. Knoche, R. Tolksdorf and F. Vitali (1996), “PageSpace: An Architecture to Coordinate Distributed Applications on the Web,” Computer Networks and ISDN Systems 28, 7–11, 941–952.
Ciancarini, P. and D. Rossi (1997), “Jada: Coordination and Communication for Java Agents,” In Mobile Object Systems: Towards the Programmable Internet, J. Vitek and C. Tschudin, Eds., LNCS 1222, Springer Verlag, Berlin, Germany, pp. 213–228.
Douglas, A., N. Röjemo, C. Runciman and A. Wood (1996), “Astro-Gofer: Parallel Functional Programming with Co-ordinating Processes,” In Euro-Par'96, LNCS 1123, Springer Verlag, Berlin, Germany, pp. 686–693.
Douglas, A., A. Rowstron and A. Wood (1995a), “ISETL-LINDA: Parallel Programming with Bags,” Technical Report YCS 257, University of York, York, UK.
Douglas, A., A. Wood and A. Rowstron (1995b), “Linda Implementation Revisited,” In Transputer and Occam Developments, P. Nixon, Ed., Transputer and Occam Engineering Series, IOS Press, Amsterdam, The Netherlands, pp. 125–138.
Gelernter, D. (1992), Mirror Worlds, Oxford University Press, New York, NY.
Gelernter, D. and N. Carriero (1992), “Coordination Languages and Their Significance,” Communications of the ACM 35, 2, 97–107.
Gelernter, D. and L. Zuck (1997), “On what Linda is: Formal Description of Linda as a Reactive System,” In Coordination Languages and Models (Coordination'97), LNCS 1282, Springer Verlag, Berlin, Germany, pp. 187–204.
Hasselbring, W. (1994), “Prototyping Parallel Algorithms in a Set-orientated Language,” PhD Dissertation, University of Essen, Germany.
Kielmann, T. (1996), “Designing a Coordination Model for Open Systems,” In Coordination Languages and Models, Proceedings of Coordination' 96, LNCS 1061, Springer Verlag, Berlin, Germany, pp. 267–284.
Leichter, J. (1989), “Shared Tuple Memories, Shared Memories, Buses and LAN's – Linda Implementations Across the Spectrum of Connectivity,” PhD dissertation, YALEU/DCS/TR-714, Yale University, New Haven, CT.
Menezes, R. and A. Wood (1997), “Garbage Collection in Open Distributed Tuple Space Systems,” In Proceedings of 15th Brazilian Computer Networks Symposium – SBRC'97, Brazilium Computer Society, Rio de Janeiro, pp. 525–543.
Rowstron, A., A. Douglas and A. Wood (1995), “A Distributed Linda-Like Kernel for PVM,” In EuroPVM'95, Hermes, Paris, France, pp. 107–112.
Rowstron, A., S. Li and R. Stefanova (1997), “C2AS: A System Supporting Distributed Web Applications Composed of Collaborating Agents,” In Proceedings of Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, IEEE CS Press, Los Alamitos, CA, pp. 127–132.
Rowstron, A. and A. Wood (1996a), “An Efficient Distributed Tuple Space Implementation for Networks of Workstations,” In Euro-Par'96, LNCS 1123, Springer Verlag, Berlin, Germany, pp. 510–513.
Rowstron, A. and A. Wood (1996b), “Solving the Linda Multiple rd Problem,” In Coordination Languages and Models, Proceedings of Coordination' 96, LNCS 1061, Springer Verlag, Berlin, Germany, pp. 357–367.
Rowstron, A. and A. Wood (1997), “BONITA: A Set of Tuple Space Primitives for Distributed Coordination,” In Proceedings of 30th Hawaii International Conference on System Sciences, Vol. 1, Software Technology and Software, IEEE CS Press, Los Alamitos, CA, pp. 379–388.
Scientific Computing Associates (1995), Linda: User's Guide and Reference Manual, Scientific Computing Associates, New Haven, CT.
Scientific Computing Associates (1996), Paradise: User's Guide and Reference Manual, Scientific Computing Associates, New Haven, CT.
Sun Microsystems (1997), “JavaSpace(tm) Specification, Revision 0.4,” http://chatsubo.javasoft.com/.
Yuen, C., M. Feng and J. Yee (1996), “BaLinda Suite of Languages and Implementations,” Journal of Software Systems 32, 251–267.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Rowstron, A. WCL: A co-ordination language for geographically distributed agents. World Wide Web 1, 167–179 (1998). https://doi.org/10.1023/A:1019263731139
Issue Date:
DOI: https://doi.org/10.1023/A:1019263731139