Skip to content

Research at St Andrews

A peer-to-peer middleware framework for resilient persistent programming

Research output: ResearchOther report


School/Research organisations


The persistent programming systems of the 1980s offered a programming model that integrated computation and long-term storage. In these systems, reliable applications could be engineered without requiring the programmer to write translation code to manage the transfer of data to and from non-volatile storage. More importantly, it simplified the programmer's conceptual model of an application, and avoided the many coherency problems that result from multiple cached copies of the same information. Although technically innovative, persistent languages were not widely adopted, perhaps due in part to their closed-world model. Each persistent store was located on a single host, and there were no flexible mechanisms for communication or transfer of data between separate stores. Here we re-open the work on persistence and combine it with modern peer-to-peer techniques in order to provide support for orthogonal persistence in resilient and potentially long-running distributed applications. Our vision is of an infrastructure within which an application can be developed and distributed with minimal modification, whereupon the application becomes resilient to certain failure modes. If a node, or the connection to it, fails during execution of the application, the objects are re-instantiated from distributed replicas, without their reference holders being aware of the failure. Furthermore, we believe that this can be achieved within a spectrum of application programmer intervention, ranging from minimal to totally prescriptive, as desired. The same mechanisms encompass an orthogonally persistent programming model. We outline our approach to implementing this vision, and describe current progress.


Original languageEnglish
PublisherUniversity of St Andrews
Number of pages14
StatePublished - 2006

    Research areas

  • cs.DC, Distributed, parallel, and cluster computing

Discover related content
Find related publications, people, projects and more using interactive charts.

View graph of relations

Related by author

  1. Design, implementation and deployment of state machines using a generative approach

    Kirby, G. N. C., Dearle, A. & Norcross, S. J. 2008 Architecting Dependable Systems V. de Lemos, R., Di Giandomenico, F., Gacek, C., Muccini, H. & Vieira, M. (eds.). Springer, p. 175-198 (Lecture Notes in Computer Science; vol. 5135)

    Research output: ResearchChapter

  2. Generating a family of Byzantine tolerant protocol implementations using a meta-model architecture

    Kirby, G., Dearle, A. & Norcross, S. 25 Jun 2007 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, Workshop on Architecting Dependable Systems: DSN 2007. University of Edinburgh, p. 178-183

    Research output: ResearchConference contribution

  3. Hosting Byzantine Fault Tolerant Services on a Chord ring

    Dearle, A., Kirby, G. & Norcross, S. 2007 University of St Andrews. 6 p.

    Research output: ResearchOther report

  4. A peer-to-peer infrastructure for resilient web services

    Norcross, S. J., Dearle, A., Kirby, G. N. C. & Walker, S. M. 2006 First International Workshop on Advanced Architectures and Algorithms for Internet Delivery and Applications. Colajanni, M., Bartolini, N. & Cherkasova, L. (eds.). Los Alamitos: IEEE Computer Society, p. 65-72 8 p.

    Research output: ResearchConference contribution

  5. Towards adaptable and adaptive policy-free middleware

    Dearle, A., Kirby, G., Norcross, S., Macdonald, A. & Bigwood, G. 2006 University of St Andrews. 8 p. (Technical Report; no. CS/06/3)

    Research output: ResearchOther report

ID: 5009019