On Migrating Threads

Based on the notion of persistent threads in Tycoon (Matthes and Schmidt, 1994), we investigate thread migration as a programming construct for building activity-oriented distributed applications. We first show how a straight-forward extension of a higher-order persistent language can be used to define activities that span multiple (semi-) autonomous nodes in heterogeneous networks. In particular, we discuss the intricate binding issues that arise in systems where threads are first-class language citizens that may access local and remote, mobile and immobile resources.We also describe how our system model can be understood as a promising generalization of the more static architecture of first-order and higher-order distributed object systems. Finally, we give some insight into the implementation of persistent and migrating threads and we explain how to represent bindings to ubiquitous resources present at each node visited by a migrating thread on the network to avoid excessive communication or storage costs.

[1]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[2]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

[3]  Sandra Heiler,et al.  A 'RISC' Object Model for Object System Interoperation: Concepts and Applications , 1993, GTE Laboratories Incorporated.

[4]  Butler W. Lampson,et al.  Distributed Systems - Architecture and Implementation, An Advanced Course , 1981, Advanced Course: Distributed Systems.

[5]  Ronald Morrison,et al.  Bindings persistent programming languages , 1988, SIGP.

[6]  Martín Abadi,et al.  Extensible Grammars for Language Specialization , 1993, DBPL.

[7]  Jim Gray,et al.  Notes on Data Base Operating Systems , 1978, Advanced Course: Operating Systems.

[8]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[9]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[10]  Florian Matthes,et al.  Towards a Unified Model of Untyped Object Stores: Experience with the Tycoon Store Protocol , 1996, ADBIS.

[11]  John R. Corbin The Art of Distributed Applications: Programming Techniques for Remote Procedure Calls , 1991 .

[12]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[13]  Munindar P. Singh,et al.  Agents on the Web: Mobile Agents , 1997, IEEE Internet Comput..

[14]  James E. White,et al.  Mobile Agents , 1997, Lecture Notes in Computer Science.

[15]  Peter Buneman,et al.  Types and persistence in database programming languages , 1987, CSUR.

[16]  Christina P. Lau,et al.  Object-oriented programming using SOM and DSOM , 1994 .

[17]  Christopher Strachey,et al.  Fundamental Concepts in Programming Languages , 2000, High. Order Symb. Comput..

[18]  Florian Matthes,et al.  Scaling Database Languages to Higher-Order Distributed Programming , 1995, DBPL.

[19]  Sandra Heiler,et al.  Distributed Object Management , 1992, Int. J. Cooperative Inf. Syst..

[20]  Luca Cardelli,et al.  Obliq, a language with distributed scope , 1996 .

[21]  Florian Matthes,et al.  Bulk Types: Built-In or Add-On? , 1992, DBPL.

[22]  Bill Kalsow,et al.  Some Useful Modula-3 Interfaces , 1996 .

[23]  Florian Matthes,et al.  Persistent Threads , 1994, VLDB.

[24]  Butler W. Lampson,et al.  Atomic Transactions , 1980, Advanced Course: Distributed Systems.

[25]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .

[26]  David R. Keppel,et al.  Tools and Techniques for Building Fast Portable Threads Packages , 1993 .

[27]  Eric Jul Object mobility in a distributed object-oriented system , 1990 .

[28]  Hans-Jörg Schek,et al.  Merging application-centric and data-centric approaches to support transaction-oriented multi-system workflows , 1993, SGMD.

[29]  Marc Shapiro Flexible Bindings for Fine-Grain, Distributed Objects in distributed systems , 1993 .

[30]  Richard C. H. Connor,et al.  The Napier88 Reference Manual , 1997 .

[31]  Marc Shapiro,et al.  Persistence and Migration for C++ Objects , 1989, ECOOP.

[32]  John R. Nicol,et al.  Object orientation in heterogeneous distributed computing systems , 1993, Computer.

[33]  Bill Curtis,et al.  Process modeling , 1992, CACM.