Distributed communication in ML

We present our experience in implementing a group communication toolkit in Objective Caml, a dialect of the ML family of programming languages. We compare the toolkit both quantitatively and qualitatively to a predecessor toolkit which was implemented in C. Our experience shows that using the high-level abstraction features of ML gives substantial advantages. Some of these features, such as automatic memory management and message marshalling, allowed us to concentrate on those pieces of the implementation which required careful attention in order to achieve good performance. We conclude with a set of suggested changes to ML implementations.

[1]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[2]  Peter Lee,et al.  A Network Protocol Stack in Standard ML , 2001, High. Order Symb. Comput..

[3]  P. T. Barry,et al.  Abstract syntax notation-one (ASN.1) , 1992 .

[4]  Mark Garland Hayden,et al.  The Ensemble System , 1998 .

[5]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[6]  Philip Wadler,et al.  A practical subtyping system for Erlang , 1997, ICFP '97.

[7]  MLDavid B. MacQueenAT Reeections on Standard Ml , 1992 .

[8]  Jozsef A. Toth Specification of an object to object protocol in Abstract Syntax Notation One (ASN.1) , 1990, IEA/AIE '90.

[9]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[10]  Giancarlo Succi,et al.  Implementations of Logic Programming Systems , 2012, Springer US.

[11]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[12]  Hugo Krawczyk,et al.  A Security Architecture for the Internet Protocol , 1999, IBM Syst. J..

[13]  Silvano Maffeis,et al.  Adding Group Communication and Fault-Tolerance to CORBA , 1995, COOTS.

[14]  Peter Lee,et al.  Signatures for a network protocol stack: a systems application of Standard ML , 1994, LFP '94.

[15]  Xavier Leroy The objective caml system release 3 , 2001 .

[16]  Edoardo Biagioni A structured TCP in standard ML. , 1994, SIGCOMM 1994.

[17]  Larry L. Peterson,et al.  RPC in the x-Kernel: evaluating new design techniques , 1989, SOSP '89.

[18]  Christoph Kreitz Formal Reasoning about Communication Systems I: Embedding ML into Type Theory. , 1997 .

[19]  Barry Hayes Finalization in the Collector Interface , 1992, IWMM.

[20]  Jon Postel,et al.  Transmission Control Protocol , 1981, RFC.