Scaling Database Languages to Higher-Order Distributed Programming

We describe the Tycoon approach to scale the successful notion of a uniform, type-safe persistent object store to communication-intensive applications and applications where long-term activities are allowed to span multiple autonomous network sites. Exploiting stream-based data, code and thread exchange primitives we present several distributed programming idioms in Tycoon. These programming patterns range from client-server communication based on polymorphic higher-order remote procedure calls to migrating autonomous agents that are bound dynamically to network resources present at individual network nodes. Following Tycoon’ s add-on approach, these idioms are not cast into built-in syntactic forms, but are expressed by characteristic programming patterns exploiting communication primitives encapsulated by library functions. Moreover, we present a novel form of binding support for ubiquitous resources which drastically reduces communication trafficfor modular distributed applications.

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

[2]  David S. Munro On the integration of concurrency, distribution and persistence , 1994 .

[3]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[4]  Luca Cardelli. Amber Combinators and Functional Programming Languages , 1985, Lecture Notes in Computer Science.

[5]  Luca Cardelli,et al.  Typeful Programming , 1989, Formal Description of Programming Concepts.

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

[7]  Richard C. H. Connor,et al.  Persistence and Type Abstraction Revisited , 1990, POS.

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

[9]  Florian Matthes,et al.  System Construction in the Tycoon Environment: Architectures, Interfaces and Gateways , 1993 .

[10]  Miguel Mira da Silva,et al.  Automating Type-safe RPC , 1995, RIDE-DOM.

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

[12]  Francis Wai,et al.  Distributed PS-algol , 1989, POS.

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

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

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

[16]  Alan Dearle,et al.  Octopus: A Reflective Language Mechanism for Object Manipulation , 1993, DBPL.

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

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

[19]  John R. Corbin The Art of Distributed Applications , 1991, Sun Technical Reference Library.

[20]  Ronald Morrison,et al.  On the Classification of Binding Mechanisms , 1990, Inf. Process. Lett..

[21]  John Rosenberg,et al.  A Remote Execution Mechanism For Distributed Homogeneous Stable Stores , 1992, DBPL.

[22]  Val Tannen,et al.  Proceedings of the Fifth International Workshop on Database Programming Languages , 1995 .

[23]  Florian Matthes,et al.  Security as an Add-On Quality in Persistent Object Systems , 1994, East/West Database Workshop.

[24]  Robin Milner,et al.  Definition of standard ML , 1990 .