Jolie (programming language)

{{Infobox programming language

| name = Jolie

| logo = File:JolieProgrammingLanguageLogo.png

| logo caption =

| screenshot = File:JolieGreeter.png

| screenshot caption =

| paradigms = Microservices, SOA

| family =

| designer = {{plainlist|

  • Claudio Guidi
  • Fabrizio Montesi

}}

| developer = Fabrizio Montesi

| released = {{start date and age|2006|07|31}}

| latest release version = 1.11.0

| latest release date = {{start date and age|2023|05|24}}

| latest preview version =

| latest preview date =

| typing =

| scope =

| programming language = Java

| discontinued =

| platform = Java

| operating system =

| license = LGPLv2

| file ext = .ol, .iol, .jap

| file format =

| website = {{URL|https://www.jolie-lang.org/}}

| implementations =

| dialects =

| influenced by =

| influenced =

}}

Jolie (Java Orchestration Language Interpreter Engine{{cite conference |last1=Montesi |first1=Fabrizio |last2=Guidi |first2=Claudio |last3=Lucchi |first3=Roberto |last4=Zavattaro |first4=Gianluigi |title=JOLIE: a Java Orchestration Language Interpreter Engine |url=http://www.cs.unibo.it/cguidi/Publications/Coorg06.pdf |series=ENTCS |volume=181 |year=2007 |pages=19–33 |issn=1571-0661 |doi=10.1016/j.entcs.2007.01.051 |citeseerx=10.1.1.408.2052}}) is an open-source{{cite web |title=Jolie Project |url=http://sourceforge.net/projects/jolie/ |website=SourceForge}} programming language for developing distributed applications based on microservices. In the programming paradigm proposed with Jolie, each program is a service that can communicate with other programs by sending and receiving messages over a network. Jolie supports an abstraction layer that allows services to communicate using different mediums, ranging from TCP/IP sockets to local in-memory communications between processes.{{cite thesis |last=Montesi |first=Fabrizio |title=Jolie: a Service-oriented Programming Language |year=2010 |publisher=University of Bologna |url=http://amslaurea.unibo.it/1226/}}{{cite book |last1=Montesi |first1=Fabrizio |last2=Guidi |first2=Claudio |last3=Zavattaro |first3=Gianluigi |chapter=Service-Oriented Programming with Jolie |year=2014 |editor-last1=Bouguettaya |editor-first1=Athman |editor-last2=Sheng |editor-first2=Quan Z. |editor-last3=Daniel |editor-first3=Florian |title=Web Services Foundations |pages=81–107 |doi=10.1007/978-1-4614-7518-7_4 |isbn=978-1-4614-7517-0}}

Jolie is currently supported by an interpreter implemented in the Java language, which can be run in multiple operating systems including Linux-based operating systems, OS X, and Windows.{{cite web |title=Jolie Programming Language |url=http://jolie-lang.org/}} The language comes with formal semantics, meaning that the execution of Jolie programs is mathematically defined. For this reason, Jolie is used in research for the investigation of language-based techniques for the development of distributed systems,{{cite web |title=Chor Programming Language |url=http://chor-lang.org/}} and it is also used for teaching at some universities.{{cite web |title=Jolie Programming Language - Academia |url=http://jolie-lang.org/academia.html }}

The Jolie open source project was started by Fabrizio Montesi in 2006, as part of his studies at the University of Bologna. The project initially began as an implementation of the SOCK process calculus, a formal model proposed by Claudio Guidi et al. at the University of Bologna{{cite conference |last1=Guidi |first1=Claudio |last2=Lucchi |first2=Roberto |last3=Gorrieri |first3=Roberto |last4=Busi |first4=Nadia |last5=Zavattaro |first5=Gianluigi |title=SOCK: A Calculus for Service Oriented Computing |conference=ICSOC'06 |series=LNCS |volume=4294 |year=2006 |pages=327–338 |issn=0302-9743 |doi=10.1007/11948148_27 |citeseerx=10.1.1.102.6297}}{{cite thesis |last1=Guidi |first1=Claudio |year=2007 |title=Formalizing languages for service oriented computing |doi=10.6092/unibo/amsdottorato/373}} inspired by the CCS process calculus and the WS-BPEL programming language. Jolie extends SOCK with support for, e.g., tree-like data structures (inspired by XML, but with a syntax resembling that of C and Java), message types, typed session programming, integration with Java and JavaScript, code mobility, application containment, and web programming.{{cite conference |last1=Montesi |first1=Fabrizio |title=Process-aware web programming with Jolie |year=2013 |conference=SAC'13 |pages=761–763 |doi=10.1145/2480362.2480507 |arxiv=1410.3712}}{{cite journal

| last = Montesi

| first = Fabrizio

| title = Process-aware Web Programming with Jolie

| journal = Science of Computer Programming

| year = 2016

| volume = 130

| pages = 69–96

| arxiv = 1410.3712

| doi = 10.1016/j.scico.2016.05.002

}} A complete list of the project contributors is available at.{{cite web |title=Jolie Programming Language - About Jolie |url=http://jolie-lang.org/about_jolie.html}}

The project is currently maintained by Fabrizio Montesi and its evolution is driven by Fabrizio Montesi and Claudio Guidi.

Since it supports the orchestration of web services, Jolie is an alternative to XML-based orchestration languages such as WS-BPEL as it offers a concise (C-like) syntax for accessing XML-like data structures.

References

{{reflist}}