Jolie (Java Orchestration Language Interpreter Engine
) is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
for developing
distributed applications based on
microservices
A microservice architecture – a variant of the service-oriented architecture structural style – is an architectural pattern that arranges an application as a collection of loosely-coupled, fine-grained services, communicating through ligh ...
. In the
programming paradigm
Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms.
Some paradigms are concerned mainly with implications for the execution model of the language, s ...
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
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
sockets to local in-memory communications between
processes
A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic.
Things called a process include:
Business and management
*Business process, activities that produce a specific se ...
.
Jolie is currently supported by an
interpreter implemented in the
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
language, which can be run in multiple operating systems including
Linux-based operating systems,
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
, and
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
.
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,
and it is also used for teaching at some universities.
The Jolie open source project was started by
Fabrizio Montesi Fabrizio is an Italian first name, from the Latin word "Faber" meaning "smith" and may refer to:
* Fabrizio Barbazza (born 1963), Italian Formula One driver
* Fabrizio Barca (born 1954), Italian politician
* Fabrizio Brienza (born 1969), Italian mo ...
in 2006, as part of his studies at the
University of Bologna
The University of Bologna ( it, Alma Mater Studiorum – Università di Bologna, UNIBO) is a public research university in Bologna, Italy. Founded in 1088 by an organised guild of students (''studiorum''), it is the oldest university in continuo ...
. The project initially began as an implementation of the SOCK
process calculus
In computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems. Process calculi provide a tool for the high-level description of interactions, communications, and ...
, a formal model proposed by Claudio Guidi et al. at the University of Bologna
inspired by the
CCS process calculus and the
WS-BPEL
The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL (Business Process Execution Language), is an OASIS standard executable language for specifying actions within business processes with web services. Proces ...
programming language. Jolie extends SOCK with support for, e.g., tree-like data structures (inspired by
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
, but with a syntax resembling that of
C and
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
), message types, typed session programming, integration with
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
,
code mobility
In distributed computing, code mobility is the ability for running programs, code or objects to be migrated (or moved) from one machine or application to another. This is the process of moving mobile code across the nodes of a network as opposed ...
,
application containment, and web programming.
A complete list of the project contributors is available at.
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
The Web Services Business Process Execution Language (WS-BPEL), commonly known as BPEL (Business Process Execution Language), is an OASIS standard executable language for specifying actions within business processes with web services. Proces ...
as it offers a concise (C-like) syntax for accessing XML-like data structures.
References
External links
*
*{{GitHub, jolie/jolie
Programming languages