Session-based distributed programming in Java

Raymond Hu, Nobuko Yoshida, Kohei Honda

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    89 Citations (Scopus)

    Abstract

    This paper demonstrates the impact of integrating session types and object-oriented programming, through their implementation in Java. Session types provide high-level abstraction for structuring a series of interactions in a concise syntax, and ensure type-safe communications between distributed peers. We present the first full implementation of a language and runtime for session-based distributed programming featuring asynchronous message passing, delegation, and session subtyping and interleaving, combined with class downloading and failure handling. The compilation-runtime framework of our language effectively maps session abstraction onto underlying transports and guarantees communication safety through static and dynamic session type checking. We have implemented two alternative mechanisms for performing distributed session delegation and prove their correctness. Benchmark results show session abstraction can be realised with low runtime overhead.
    Original languageEnglish
    Title of host publicationECOOP 2008 - Object-Oriented Programming - 22nd European Conference, Proceedings
    Pages516-541
    Number of pages26
    DOIs
    Publication statusPublished - 14 Aug 2008
    Event22nd European Conference on Object-Oriented Programming, ECOOP 2008 - Paphos, Cyprus
    Duration: 7 Jul 200811 Jul 2008

    Publication series

    NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Volume5142 LNCS
    ISSN (Print)0302-9743
    ISSN (Electronic)1611-3349

    Conference

    Conference22nd European Conference on Object-Oriented Programming, ECOOP 2008
    Country/TerritoryCyprus
    CityPaphos
    Period7/07/0811/07/08

    Fingerprint

    Dive into the research topics of 'Session-based distributed programming in Java'. Together they form a unique fingerprint.

    Cite this