History

The JOLIE project started in March 2006, when Fabrizio Montesi began his bachelor thesis. The theoretical basis of the project, however, can be traced back to early 2005, when Claudio Guidi began his PhD thesis, so let us start our story from there.

 

A theoretical framework kind to software engineers

Claudio's research focused on the creation of a new, service-oriented process algebra, which is now known as SOCK: Service-Oriented Computing Kernel. The aim of this work was to retain the benefits of a mathematical framework (e.g. the ability to make formal proofs on programs encoded with it) and to offer a syntax and semantics suited to modeling complex service-oriented architectures.

Modeling complex architectures in a human-comprehensible way with a process algebra isn't an easy task. Shifting towards helping engineers and programmers requires introducing statements and structures that are usually avoided in mathematical frameworks such as SOCK, because they make it larger and making mathematical proofs on it results to be more difficult.

To contain the framework complexity problem, SOCK was split in three different semantic layers: the first for the behaviour of a single session, the second for session management and the third for network communications between services. Doing that meant splitting complexity, too: to add a new feature to SOCK, most of the times you need to concentrate on only one of its layers.

 

From theory to technology

It was at the "Polo scientifico-didattico di Cesena", University of Bologna (Italy), that Claudio and Fabrizio met. As a calculus designed for exploring problems and modeling solutions within the service-oriented paradigm, SOCK was naturally prone to be the backend theory for a service-oriented programming language. Fabrizio took the challenge to make this happen.

The first version of JOLIE was born during those days. Its initial syntax was heavily inspired to that of SOCK and other service-oriented technologies, it supported just a small and simple ad-hoc protocol and it could just handle simple data types such as strings or integers. But it worked, and people could start experimenting truly service-oriented applications by writing just a few lines of code. Fabrizio released the first version of JOLIE as an open-source project, by registering it to sourceforge.net and making the first JOLIE web site.

From there, JOLIE grew bigger and bigger. Having industrial and open-source working experience backgrounds, Fabrizio made his mission to merge the good parts of the different worlds (academic, industrial and open-source) in the subsequent versions of JOLIE: extendibility, stability, virtualization, simplicity, communication protocol and medium independency, openness to standard and customized technologies and so on... the list is still growing day by day.

Making complex experiments with JOLIE highlighted both the importance for the language to have a backend theory and the importance for a process algebra to have an implemented language using its theory. Whenever a complex issue was encountered, JOLIE could be used to gain experience and data about it. Then, SOCK would be used for studying a solution and mathematically test it. The solution would then be transposed in the JOLIE language, maintaining its mathematical properties. A successfull circle!

Today, JOLIE is a powerful framework providing a full-fledged and easy to use service-oriented programming language, an open-source and plug-in based codebase and a set of support libraries for interacting with a lot of other technologies.

 

Join us!

JOLIE is continuously being researched and extended. The JOLIE codebase is engineered with the intent of being easy to extend and modify, so you can contribute by coding or doing other activities (like writing documentation, discussing in the mailing list, translating documentation, signalling bugs..). And if you have questions, just ask us in the mailing list or in the #jolie irc channel on freenode.net, we would be happy to help!