
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.
In Proceedings RTRTS 2010, arXiv:1009.3982
formal analysis, FOS: Computer and information sciences, Computer Science - Logic in Computer Science, rewriting logic semantics, Computer Science - Programming Languages, distributed implementation, maude, QA75.5-76.95, 004, Logic in Computer Science (cs.LO), real-time maude, Orc, Computer Science - Distributed, Parallel, and Cluster Computing, Electronic computers. Computer science, QA1-939, Distributed, Parallel, and Cluster Computing (cs.DC), Mathematics, Programming Languages (cs.PL)
formal analysis, FOS: Computer and information sciences, Computer Science - Logic in Computer Science, rewriting logic semantics, Computer Science - Programming Languages, distributed implementation, maude, QA75.5-76.95, 004, Logic in Computer Science (cs.LO), real-time maude, Orc, Computer Science - Distributed, Parallel, and Cluster Computing, Electronic computers. Computer science, QA1-939, Distributed, Parallel, and Cluster Computing (cs.DC), Mathematics, Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 10 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
