Section: New Software and Platforms
Adaptive Interaction-Oriented Choreographies in Jolie
Keyword: Dynamic adaptation
Scientific Description: AIOCJ is an open-source choreographic programming language for developing adaptive systems. It allows one to describe a distributed system as an AIOC, to generate code for each role avoiding by construction errors such as deadlocks. Furthermore, it supports dynamic adaptation of the distributed system via adaptation rules.
Functional Description: AIOCJ is a framework for programming adaptive distributed systems based on message passing. AIOCJ comes as a plugin for Eclipse, AIOCJ-ecl, allowing to edit descriptions of distributed systems written as adaptive interaction-oriented choreographies (AIOC). From interaction-oriented choreographies the description of single participants can be automatically derived. Adaptation is specified by rules allowing one to replace predetermined parts of the AIOC with a new behaviour. A suitable protocol ensures that all the participants are updated in a coordinated way. As a result, the distributed system follows the specification given by the AIOC under all changing sets of adaptation rules and environment conditions. In particular, the system is always deadlock free. AIOCJ can interact with external services, seen as functions, by specifying their URL and the protocol they support (HTTP, SOAP, ...). Deadlock-freedom guarantees of the application are preserved provided that those services do not block.
News Of The Year: In 2018 we did minor changes to AIOCJ, including the possibility of generating code only for a few roles, thus avoiding the need for deployment information for other roles.