ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Opis: reliable distributed systems in OCaml
Full text PdfPdf (781 KB)
Source
Types In Languages Design And Implementation archive
Proceedings of the 4th international workshop on Types in language design and implementation table of contents
Savannah, GA, USA
SESSION: Session 2 table of contents
Pages: 65-78  
Year of Publication: 2009
ISBN:978-1-60558-420-1
Authors
Pierre-Évariste Dagand  École Normale Supérieure Cachan-Bretagne, Rennes, France
Dejan Kostić  École Polytechnique Fédérale de Lausanne, Lausanne, Switzerland
Viktor Kuncak  École Polytechnique Fédérale de Lausanne, Lausanne, Switzerland
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 63,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1481861.1481870
What is a DOI?

ABSTRACT

Concurrency and distribution pose algorithmic and implementation challenges in developing reliable distributed systems, making the field an excellent testbed for evaluating programming language and verification paradigms. Several specialized domain-specific languages and extensions of memory-unsafe languages were proposed to aid distributed system development. We present an alternative to these approaches, showing that modern, higher-order, strongly typed, memory safe languages provide an excellent vehicle for developing and debugging distributed systems.

We present Opis, a functional-reactive approach for developing distributed systems in Objective Caml. An Opis protocol description consists of a reactive function (called event function) describing the behavior of a distributed system node. The event functions in Opis are built from pure functions as building blocks, composed using the Arrow combinators. Such architecture aids reasoning about event functions both informally and using interactive theorem provers. For example, it facilitates simple termination arguments.

Given a protocol description, a developer can use higher-order library functions of Opis to 1) deploy the distributed system, 2) run the distributed system in a network simulator with full-replay capabilities, 3) apply explicit-state model checking to the distributed system, detecting undesirable behaviors, and 4) do performance analysis on the system. We describe the design and implementation of Opis, and present our experience in using Opis to develop peer-to-peer overlay protocols, including the Chord distributed hash table and the Cyclon random gossip protocol. We found that using Opis results in high programmer productivity and leads to easily composable protocol descriptions. Opis tools were effective in helping identify and eliminate correctness and performance problems during distributed system development.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
J. Armstrong. Making reliable distributed systems in the presence of software errors. PhD thesis, The Royal Institute of Technology, Stockholm, 2003.
 
2
G. Berry. The Foundations of Esterel. MIT Press, 2000.
 
3
4
 
5
6
7
8
 
9
10
11
 
12
 
13
 
14
G. Hager and J. Peterson. Frob: A transformational approach to the design of robot software. In ISRR, 1999.
 
15
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous data-flow programming language LUSTRE. Proceedings of the IEEE, 79(9), 1991.
 
16
 
17
 
18
 
19
P. Hudak, A. Courtney, H. Nilsson, and J. Peterson. Arrows, robots, and functional reactive programming. In Advanced Functional Programming, volume 2638 of LNCS, 2002.
 
20
21
22
23
 
24
 
25
26
27
 
28
 
29
30
31
32
 
33
 
34
35
 
36
R. Paterson. The Fun of Programming. Palgrave, 2003.
 
37
J. H. Reppy. Higher-Order Concurrency. Technical Report TR92-1852, Cornell Univ, Ithaca, NY, 1992.
 
38
39
40
 
41
S. Voulgaris, D. Gavidia, and M. Steen. Cyclon: Inexpensive membership management for unstructured p2p overlays. Journal of Network and Systems Management, 13, 2005.
 
42
S. Voulgaris and M. van Steen. Epidemic-style management of semantic overlays for content-based searching. In EuroPar, 2005.
 
43
MLDonkey, the p2p client for Linux/Unix/Windows. http://mldonkey.sourceforge.net/.


Collaborative Colleagues:
Pierre-Évariste Dagand: colleagues
Dejan Kostić: colleagues
Viktor Kuncak: colleagues