Abstract
Network-aware computing has called for new programming languages that exploit the mobility paradigm as a basic interaction mechanism. In this paper we present X-Klaim, an experimental programming language specifically designed to program distributed systems composed of several components interacting through multiple distributed tuple spaces and mobile code. The language consists of a set of coordination primitives inspired by Linda, a set of operators for building processes borrowed from process algebras and a few classical constructs for sequential programming. X-Klaim naturally supports programming with explicit localities; these are first-class data that can be manipulated like any other data, and coordination primitives that permit controlling interactions among located processes. Via a series of examples, we show that many mobile code programming paradigms can be naturally implemented by means of the considered language.
This work has been funded by EU-FET on Global Computing, project MIKADO IST-2001-32222 and project AGILE IST-2001-32747. The funding body is not responsible for any use that might be made of the results presented here.
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
Adams, M., Coplien, J., Gamoke, R., Hanmer, R., Keeve, F., Nicodemus, K.: Fault-tolerant telecommunication system patterns. In: Vlissides, J.M., Coplien, J.O. (eds.) Pattern Languages of Program Design 2, pp. 549–562. Addison-Wesley, Reading (1996)
Arnold, K., Freeman, E., Hupfer, S.: JavaSpaces Principles, Patterns and Practice. Addison-Wesley, Reading (1999)
Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 3rd edn. Addison-Wesley, Reading (2000)
Arnold, K., O’Sullivan, B., Scheifler, R.W., Waldo, J., Wollrath, A.: The Jini Specification. Addison-Wesley, Reading (1999)
Acharya, A., Ranganathan, M., Saltz, J.: Sumatra: A Language for Resource-aware Mobile Programs. In: Vitek and Tschudin, VT 1997, pp. 111–130 (1997)
Anderson, B.G., Shasha, D.: Persistent Linda: Linda + Transactions + Query Processing. In: Banâtre, J.-P., Le Métayer, D. (eds.) Research Directions in High-Level Parallel Programming Languages 1991. LNCS, vol. 574, pp. 93–109. Springer, Heidelberg (1992)
Bettini, L., Bono, V., De Nicola, R., Ferrari, G., Gorla, D., Loreti, M., Moggi, E., Pugliese, R., Tuosto, E., Venneri, B.: The klaim project: Theory and practice. In: Priami, C. (ed.) GC 2003. LNCS, vol. 2874, pp. 88–150. Springer, Heidelberg (2003)
Bettini, L., Bono, V., Venneri, B.: Coordinating Mobile Object-Oriented Code. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 56–71. Springer, Heidelberg (2002)
Bettini, L., Bono, V., Venneri, B.: O’Klaim: a coordination language with mobile mixins. In: De Nicola, R., Ferrari, G.-L., Meredith, G. (eds.) COORDINATION 2004. LNCS, vol. 2949, pp. 20–37. Springer, Heidelberg (2004)
Bettini, L., De Nicola, R.: Translating Strong Mobility into Weak Mobility. In: Picco, G.P. (ed.) MA 2001. LNCS, vol. 2240, pp. 182–197. Springer, Heidelberg (2001)
Bettini, L., De Nicola, R., Loreti, M.: Formulae Meet Programs Over the Net: A Framework for Correct Network Aware Programming. Automated Software Engineering 11(3), 245–288 (2004); Special Issue on Distributed and Mobile Software Engineering
Bettini, L., De Nicola, R., Pugliese, R.: Klava: a Java package for distributed and mobile applications. Software – Practice and Experience 32(14), 1365–1394 (2002)
Bettini, L.: Linguistic Constructs for Object-Oriented Mobile Code Programming & their Implementations. PhD thesis, Dip. di Matematica, Università di Siena (2003), Available at http://music.dsi.unifi.it
Bouchenak, S., Hagimont, D.: Pickling Threads State in the Java System. In: Proc. of the Technology of Object-Oriented Languages and Systems, TOOLS (2000)
Bettini, L., Loreti, M., Pugliese, R.: An Infrastructure Language for Open Nets. In: Proc. of ACM SAC 2002, Special Track on Coordination Models, Languages and Applications, pp. 373–377. ACM, New York (2002)
Butcher, P., Wood, A., Atkins, M.: Global Synchronisation in Linda. Concurrency: Practice and Experience 6(6), 505–516 (1994)
Cardelli, L.: Global computation. ACM Computing Surveys 28(4es) (1996) Article 163
Cardelli, L.: Mobile computation. In: Vitek and Tschudin [VT 1997], pp. 3–6 (1997)
Cardelli, L.: Abstractions for Mobile Computation. In: Vitek and Jensen [VJ 1999], pp. 51–94 (1999)
Carriero, N., Gelernter, D.: How to Write Parallel Programs: A Guide to the Perplexed. ACM Computing Surveys 21(3), 323–357 (1989)
Carriero, N., Gelernter, D.: Linda in Context. Communications of the ACM 32(4), 444–458 (1989)
Cugola, G., Ghezzi, C., Picco, G.P., Vigna, G.: Analyzing Mobile Code Languages. In: Vitek and Tschudin [VT 1997] (1997)
Cabri, G., Leonardi, L., Zambonelli, F.: Reactive Tuple Spaces for Mobile Agent Coordination. In: Rothermel, K., Hohl, F. (eds.) MA 1998. LNCS, vol. 1477, pp. 237–248. Springer, Heidelberg (1998)
Ciancarini, P., Rossi, D.: Jada - Coordination and Communication for Java Agents. In: Vitek and Tschudin [VT 1997], pp. 213–228 (1997)
Deugo, D.: Choosing a Mobile Agent Messaging Model. In: Proc. of ISADS 2001, pp. 278–286. IEEE, Los Alamitos (2001)
De Nicola, R., Ferrari, G., Pugliese, R.: Klaim: a Kernel Language for Agents Interaction and Mobility. IEEE Transactions on Software Engineering 24(5), 315–330 (1998)
De Nicola, R., Ferrari, G., Pugliese, R.: Types as Specifications of Access Policies. In: Vitek and Jensen [VJ 1999], pp. 117–146 (1999)
De Nicola, R., Ferrari, G., Pugliese, R., Venneri, B.: Types for Access Control. Theoretical Computer Science 240(1), 215–254 (2000)
De Nicola, R., Loreti, M.: A Modal Logic for Mobile Agents. ACM Transactions on Computational Logic 5(1), 79–128 (2004)
Ford, D., Lehman, T., McLaughry, S., Wyckoff, P.: T Spaces. IBM Systems Journal, 454–474 (August 1998)
Gelernter, D.: Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7(1), 80–112 (1985)
Gelernter, D.: Multiple Tuple Spaces in Linda. In: Odijk, E., Syre, J.-C., Rem, M. (eds.) PARLE 1989. LNCS, vol. 365, pp. 20–27. Springer, Heidelberg (1989)
Harrison, C., Chess, D., Kershenbaum, A.: Mobile agents: Are they a good idea? Research Report 19887, IBM Research Division (1994)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall International, Englewood Cliffs (1985)
Hohlfeld, M., Yee, B.S.: How to Migrate Agents (1998), Available at http://www.cs.ucsd.edu/~bsy
Knabe, F.: An overview of mobile agent programming. In: Dam, M. (ed.) LOMAPS-WS 1996. LNCS, vol. 1192. Springer, Heidelberg (1997)
Korpela, E., Werthimer, D., Anderson, D., Cobb, J., Lebofsky, M.: SETI@home: Massively Distributed Computing for SETI. IEEE Computing in Science and Engineering (January 2001)
Lange, D., Oshima, M.: Programming and Deploying Java Mobile Agents with Aglets. Addison-Wesley, Reading (1998)
Milner, R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)
Picco, G.P., Murphy, A.L., Roman, G.-C.: Lime: Linda Meets Mobility. In: Garlan, D. (ed.) Proc. of the 21st Int. Conference on Software Engineering (ICSE 1999), pp. 368–377. ACM Press, New York (1999)
Park, A.S., Reichl, P.: Personal Disconnected Operations with Mobile Agents. In: Proc. of 3rd Workshop on Personal Wireless Communications, PWC 1998 (1998)
Peine, H., Stolpmann, T.: The Architecture of the Ara Platform for Mobile Agents. In: Rothermel, K., Popescu-Zeletin, R. (eds.) MA 1997. LNCS, vol. 1219, pp. 50–61. Springer, Heidelberg (1997)
Ranganathan, M., Acharya, A., Sharma, S., Saltz, J.: Network-aware Mobile Programs. In: Proc. of the USENIX Annual Technical Conf., pp. 91–103. USENIX (1997)
Sherman, A.H.: C-Linda Reference Manual. Scientific Computing Associates, Inc. (1990)
Thorn, T.: Programming Languages for Mobile Code. ACM Computing Surveys 29(3), 213–239 (1997); Also Technical Report 1083, University of Rennes IRISA
Vitek, J., Jensen, C. (eds.): Secure Internet Programming. LNCS, vol. 1603. Springer, Heidelberg (1999)
Vitek, J., Tschudin, C. (eds.): MOS 1996. LNCS, vol. 1222. Springer, Heidelberg (1997)
White, J.E.: Mobile Agents. In: Bradshaw, J. (ed.) Software Agents, AAAI Press and MIT Press (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Bettini, L., De Nicola, R. (2005). Mobile Distributed Programming in X-Klaim . In: Bernardo, M., Bogliolo, A. (eds) Formal Methods for Mobile Computing. SFM-Moby 2005. Lecture Notes in Computer Science, vol 3465. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11419822_2
Download citation
DOI: https://doi.org/10.1007/11419822_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25697-7
Online ISBN: 978-3-540-32021-0
eBook Packages: Computer ScienceComputer Science (R0)