Results 1 -
9 of
9
A Review of the Rationale and Architectures of PJama: a Durable, Flexible, Evolvable and Scalable Orthogonally Persistent Programming Platform
, 2000
"... This paper reports on our designs, implementations and experiences with this platform and analyses the initial evidence from the experiments ..."
Abstract
-
Cited by 17 (5 self)
- Add to MetaCart
This paper reports on our designs, implementations and experiences with this platform and analyses the initial evidence from the experiments
Scaling Database Languages to Higher-Order Distributed Programming
- In Proceedings of the Fifth International Workshop on Database Programming Languages
, 1995
"... 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 ex ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
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 traffic for modular distributed applications. 1
Combining Mobile Agents with Persistent Systems: Opportunities and Challenges
, 1996
"... . In the last three years we have been working with persistence and distribution, in particular migration of higher-level objects (such as procedures) between autonomous persistent programs. In this paper we introduce persistence and the suitability of Napier88 --- the persistent system we have used ..."
Abstract
-
Cited by 9 (5 self)
- Add to MetaCart
. In the last three years we have been working with persistence and distribution, in particular migration of higher-level objects (such as procedures) between autonomous persistent programs. In this paper we introduce persistence and the suitability of Napier88 --- the persistent system we have used for our experiments --- as an agent language. We then present a few examples of opportunities and many more challenges that exist in the combination of persistence with agents. 1 Introduction The main motivation for this paper is our perception that free variables and persistence have not been properly addressed by the agent research community. Persistence is important because many of the examples presented in the agent literature include local or remote database access. Free variables are also of interest --- and unavoidable in a persistent environment --- because data and code are highly and strongly inter-connected in the persistent store. This paper is based on our experience with pers...
Semantics for Parameter Passing in a Type-complete Persistent RPC
- In Proceedings of the 16th International Conference on Distributed Computing Systems (Hong-Kong
, 1996
"... Current RPC mechanisms for persistent languages are either pass by reference --- in which case they do not scale --- or pass by copy --- in which case they duplicate objects and destroy sharing relationships. In this paper we argue that to build very large distributed persistent applications a compr ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
Current RPC mechanisms for persistent languages are either pass by reference --- in which case they do not scale --- or pass by copy --- in which case they duplicate objects and destroy sharing relationships. In this paper we argue that to build very large distributed persistent applications a compromise between these two mechanisms is needed. The ultimate goal of our research is to build a scalable persistent RPC while still maintainingobject sharing, type safety, type completeness and semantics that are readily understood by application programmers. 1 Introduction This research concerns the construction and maintenance of long-lived, large-scale, persistent applications that store and manipulate large quantities of complex inter-related data. An example is a health-care information system managing data for hospitals, patients and doctors, and their relationships with funding and regulatory agencies. These applications can be characterised by two attributes. Persistence. They need t...
Higher-order Distributed Computation over Autonomous Persistent Stores
"... The traditional approach for building distributed applications is by calling a procedure in another store using an RPC mechanism. However, an RPC requires a round-trip network delay for every call and makes each store dependent on the availability of other stores. A solution to this problem is to ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
The traditional approach for building distributed applications is by calling a procedure in another store using an RPC mechanism. However, an RPC requires a round-trip network delay for every call and makes each store dependent on the availability of other stores. A solution to this problem is to migrate the remote objects needed to the client store, and in particular the remote procedures themselves. After building an initial higher-order RPC we observed that in a persistent programming language the transitive closure of references for many objects includes large parts of the store, creating significant problems in efficiency and semantics. In this paper we present a refined programming model based on two new mechanisms: migration by substitution to avoid migrating the entire transitive closures; and persistent spaces that help with preserving object sharing both within and between stores. 1 Introduction The construction and maintenance of large-scale, long-lived persisten...
Mobility and Persistence
- in Mobile Object Systems, Lecture Notes in Computer Science
, 1997
"... . In the last three years we have been working with persistence and distribution, in particular migration of higher-level objects between autonomous persistent programs. In this chapter we introduce persistence and then present a few examples of opportunities and many more challenges that exist in t ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
. In the last three years we have been working with persistence and distribution, in particular migration of higher-level objects between autonomous persistent programs. In this chapter we introduce persistence and then present a few examples of opportunities and many more challenges that exist in the combination of persistence and mobility. 1 Introduction Mobile objects are active objects that migrate between programs. These active objects are commonly implemented as procedures, instances of classes or abstract data types, or threads. A persistent program is a program written in a language that permits to create and manipulate objects independent of their life time (see section 2). The main motivation for the research work described here is our perception that persistence has not been properly addressed by the research community studying mobile objects. Persistence is important because many of the examples for mobile object applications presented in the literature include local or re...
Programmer's Manual to Napier88/RPC 2.2
, 1995
"... A remote procedure call mechanism (RPC) is a facility which enables a process to call a procedure in another, remote process. RPC hides the complexity of communicating across a network. Perhaps due to this apparent simplicity, RPC is a popular mechanism for building distributed applications. This do ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
A remote procedure call mechanism (RPC) is a facility which enables a process to call a procedure in another, remote process. RPC hides the complexity of communicating across a network. Perhaps due to this apparent simplicity, RPC is a popular mechanism for building distributed applications. This document explains how to use an RPC mechanism built for (and in) Napier88. Contrary to most reference manuals, where the interface to the facility is described in terms of procedure descriptions, this programmer's manual shows its use by listing complete examples. We hope this approach will make it easier, even for novice Napier88 programmers, to quickly start using it successfully. Contents 1 Introduction 1 2 First Things First 2 2.1 Installation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2.2 Fundamental Concepts : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.3 Typical Usage Pattern : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3 Registerin...
Programmer's Manual to Napier88/RPC 2.2
, 1995
"... A remote procedure call mechanism (RPC) is a facility which enables a process to call a procedure in another, remote process. RPC hides the complexity of communicating across a network. Perhaps due to this apparent simplicity, RPC is a popular mechanism for building distributed applications. This do ..."
Abstract
- Add to MetaCart
A remote procedure call mechanism (RPC) is a facility which enables a process to call a procedure in another, remote process. RPC hides the complexity of communicating across a network. Perhaps due to this apparent simplicity, RPC is a popular mechanism for building distributed applications. This document explains how to use an RPC mechanism built for (and in) Napier88. Contrary to most reference manuals, where the interface to the facility is described in terms of procedure descriptions, this programmer's manual shows its use by listing complete examples. We hope this approach will make it easier, even for novice Napier88 programmers, to quickly start using it successfully. Contents 1 Introduction 1 2 First Things First 2 2.1 Installation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2.2 Fundamental Concepts : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.3 Typical Usage Pattern : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3 Registerin...
Using the Flask Architecture to Build Distributed Applications
, 1995
"... Distributed application systems have become a popular and provenly viable computing paradigm. There are a number of reasons for this such as: the geographical dispersal of information; the improved reliability of multiple computer systems; and the possibility of concurrent execution of applications. ..."
Abstract
- Add to MetaCart
Distributed application systems have become a popular and provenly viable computing paradigm. There are a number of reasons for this such as: the geographical dispersal of information; the improved reliability of multiple computer systems; and the possibility of concurrent execution of applications. As yet no single model of distribution has been pervasive and since the impact of failure semantics varies with the software architecture of applications, it is unlikely that one model will ever dominate. It is difficult to assess or even to compare the attributes of different models especially when run over the same data. This is often made more difficult in that most implementations of distributed models are closed systems with built-in protocols, failure reporting and concurrency control. The Flask architecture, presented here, takes the approach of providing a layered architecture which has the flexibility to support different models of distribution that can run over the same data. To d...

