Dist-Orc: A Rewriting-based Distributed Implementation of Orc with Formal Analysis

Orc is a theory of orchestration of services that allows structured programming of distributed and timed computations. Several formal semantics have been proposed for Orc, including a rewriting logic semantics developed by the authors. Orc also has a fully fledged implementation in Java with functional programming features. However, as with descriptions of most distributed languages, there exists a fairly substantial gap between Orc's formal semantics and its implementation, in that: (i) programs in Orc are not easily deployable in a distributed implementation just by using Orc's formal semantics, and (ii) they are not readily formally analyzable at the level of a distributed Orc implementation. In this work, we overcome problems (i) and (ii) for Orc. Specifically, we describe an implementation technique based on rewriting logic and Maude that narrows this gap considerably. The enabling feature of this technique is Maude's support for external objects through TCP sockets. We describe how sockets are used to implement Orc site calls and returns, and to provide real-time timing information to Orc expressions and sites. We then show how Orc programs in the resulting distributed implementation can be formally analyzed at a reasonable level of abstraction by defining an abstract model of time and the socket communication infrastructure, and discuss the assumptions under which the analysis can be deemed correct. Finally, the distributed implementation and the formal analysis methodology are illustrated with a case study.

[1]  Tony Hoare,et al.  A Tree Semantics of an Orchestration Language , 2005 .

[2]  José Meseguer,et al.  Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools , 2004, IJCAR.

[3]  Peter Csaba Ölveczky,et al.  Abstraction and Completeness for Real-Time Maude , 2006, WRLA.

[4]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[5]  Colin J. Fidge,et al.  Timestamps in Message-Passing Systems That Preserve the Partial Ordering , 1988 .

[6]  J. Misra Computation Orchestration : A Basis for Wide-Area Computing , 2005 .

[7]  José Meseguer,et al.  Rewriting Logic Semantics of Orc , 2007 .

[8]  Jayadev Misra,et al.  A timed semantics of Orc , 2008, Theor. Comput. Sci..

[9]  José Meseguer,et al.  Distributed Real-Time Emulation of Formally-Defined Patterns for Safe Medical Device Control , 2010, RTRTS.

[10]  Peter Csaba Ölveczky,et al.  Semantics and pragmatics of Real-Time Maude , 2007, High. Order Symb. Comput..

[11]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[12]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[13]  Jayadev Misra,et al.  A Language for Task Orchestration and Its Semantic Properties , 2006, CONCUR.

[14]  Wil M. P. van der Aalst,et al.  Workflow Patterns , 2003, Distributed and Parallel Databases.

[15]  José Meseguer,et al.  Modular Rewriting Semantics of Programming Languages , 2004, AMAST.

[16]  José Meseguer,et al.  Reduction Semantics and Formal Analysis of Orc Programs , 2008, Electron. Notes Theor. Comput. Sci..

[17]  José Meseguer,et al.  The Rewriting Logic Semantics Project , 2006, SOS@ICALP.

[18]  Adrián Riesco,et al.  Distributed Applications Implemented in Maude with Parameterized Skeletons , 2007, FMOODS.

[19]  Peter Csaba Ölveczky,et al.  Specification of real-time and hybrid systems in rewriting logic , 2002, Theor. Comput. Sci..

[20]  Francisco Durán,et al.  A Distributed Implementation of Mobile Maude , 2007, WRLA.

[21]  Peter Csaba Ölveczky Real-Time Maude 2.3 manual , 2004 .

[22]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[23]  Albert Benveniste,et al.  Event Structure Semantics of Orc , 2007, WS-FM.

[24]  José Meseguer,et al.  Real-time rewriting semantics of orc , 2007, PPDP '07.

[25]  Jayadev Misra,et al.  The Orc Programming Language , 2009, FMOODS/FORTE.