EN FR
EN FR


Section: New Software and Platforms

JOLIE

Java Orchestration Language Interpreter Engine

Scientific Description

Jolie is a service-oriented programming language. Jolie can be used to program services that interact over the Internet using different communication protocols.

Differently from other Web Services programming languages such as WS-BPEL, Jolie is based on a user-friendly C/Java-like syntax (more readable than the verbose XML syntax of WS-BPEL) and, moreover, the language is equipped with a formal operational semantics. This language is used for the proof of concepts developed around Focus activities. For instance, contract theories can be exploited for checking the conformance of a Jolie program with respect to a given contract.

Developments in 2015: Jolie has transitioned from version 1.1 to version 1.4.1. The releases are the result of more than 400 commits with hundreds of bug fixes and enhancements. Highlights include: a new web site and documentation, a new pre-compiled installer, 2 new IDEs as plugins for the editors Sublime Text and Atom, a transition from SouceForge to GitHub, introduction of new behavioural and architectural constructs, structured support for the development of REST applications, introduction of the construct of internal services: embedded Jolie services defined directly within the embedder program (internal services offer a convenient way of reusing code as in procedural programming, without breaking the principle that such code should be easily exported to an external microservice), increased compliance with protocol standards (foremost HTTP, SSL), enhanced stability and performances. Moreover, 2015 has seen the development of Jolie Redeployment Optimiser (JRO), a tool for the automatic and optimised deployment of microservices written in Jolie. JRO uses Zephyrus, a state-of-the-art tool that automatically generates configurations starting from partial and abstract descriptions of the target application. Given the output configuration from Zephyrus, JRO interacts with Jolie Enterprise, an administrative tool for the deployment of Jolie services on remote nodes, to deploy the wanted architecture.