208,178 research outputs found
AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications
We present AIOCJ, a framework for programming distributed adaptive
applications. Applications are programmed using AIOC, a choreographic language
suited for expressing patterns of interaction from a global point of view. AIOC
allows the programmer to specify which parts of the application can be adapted.
Adaptation takes place at runtime by means of rules, which can change during
the execution to tackle possibly unforeseen adaptation needs. AIOCJ relies on a
solid theory that ensures applications to be deadlock-free by construction also
after adaptation. We describe the architecture of AIOCJ, the design of the AIOC
language, and an empirical validation of the framework.Comment: Technical Repor
Regular Expression Matching and Operational Semantics
Many programming languages and tools, ranging from grep to the Java String
library, contain regular expression matchers. Rather than first translating a
regular expression into a deterministic finite automaton, such implementations
typically match the regular expression on the fly. Thus they can be seen as
virtual machines interpreting the regular expression much as if it were a
program with some non-deterministic constructs such as the Kleene star. We
formalize this implementation technique for regular expression matching using
operational semantics. Specifically, we derive a series of abstract machines,
moving from the abstract definition of matching to increasingly realistic
machines. First a continuation is added to the operational semantics to
describe what remains to be matched after the current expression. Next, we
represent the expression as a data structure using pointers, which enables
redundant searches to be eliminated via testing for pointer equality. From
there, we arrive both at Thompson's lockstep construction and a machine that
performs some operations in parallel, suitable for implementation on a large
number of cores, such as a GPU. We formalize the parallel machine using process
algebra and report some preliminary experiments with an implementation on a
graphics processor using CUDA.Comment: In Proceedings SOS 2011, arXiv:1108.279
Static Trace-Based Deadlock Analysis for Synchronous Mini-Go
We consider the problem of static deadlock detection for programs in the Go
programming language which make use of synchronous channel communications. In
our analysis, regular expressions extended with a fork operator capture the
communication behavior of a program. Starting from a simple criterion that
characterizes traces of deadlock-free programs, we develop automata-based
methods to check for deadlock-freedom. The approach is implemented and
evaluated with a series of examples
On the Expressiveness of Intensional Communication
The expressiveness of communication primitives has been explored in a common
framework based on the pi-calculus by considering four features: synchronism
(asynchronous vs synchronous), arity (monadic vs polyadic data), communication
medium (shared dataspaces vs channel-based), and pattern-matching (binding to a
name vs testing name equality). Here pattern-matching is generalised to account
for terms with internal structure such as in recent calculi like Spi calculi,
Concurrent Pattern Calculus and Psi calculi. This paper explores intensionality
upon terms, in particular communication primitives that can match upon both
names and structures. By means of possibility/impossibility of encodings, this
paper shows that intensionality alone can encode synchronism, arity,
communication-medium, and pattern-matching, yet no combination of these without
intensionality can encode any intensional language.Comment: In Proceedings EXPRESS/SOS 2014, arXiv:1408.127
Ontology-based composition and matching for dynamic cloud service coordination
Recent cross-organisational software service offerings, such as cloud computing, create higher integration needs.
In particular, services are combined through brokers and mediators, solutions to allow individual services to collaborate and their interaction to be coordinated are required. The need to address dynamic management - caused by cloud and on-demand environments - can be addressed through service coordination based on ontology-based composition and matching techniques. Our solution to composition and matching utilises a service coordination space that acts as a passive infrastructure for collaboration where users submit requests that are then selected and taken on by providers. We discuss the information models and the coordination principles of such a collaboration environment in terms of an ontology and its underlying description logics. We provide ontology-based solutions for structural composition of descriptions and matching between requested and provided services
Dynamic Choreographies - Safe Runtime Updates of Distributed Applications
Programming distributed applications free from communication deadlocks and
races is complex. Preserving these properties when applications are updated at
runtime is even harder. We present DIOC, a language for programming distributed
applications that are free from deadlocks and races by construction. A DIOC
program describes a whole distributed application as a unique entity
(choreography). DIOC allows the programmer to specify which parts of the
application can be updated. At runtime, these parts may be replaced by new DIOC
fragments from outside the application. DIOC programs are compiled, generating
code for each site, in a lower-level language called DPOC. We formalise both
DIOC and DPOC semantics as labelled transition systems and prove the
correctness of the compilation as a trace equivalence result. As corollaries,
DPOC applications are free from communication deadlocks and races, even in
presence of runtime updates.Comment: Technical Repor
- âŠ