Jolie(Java Orchestration Language Interpreter Engine [ 1 ])は、マイクロサービスに基づいた分散アプリケーションを開発するためのオープンソース[ 2 ]プログラミング言語です。Jolieで提案されているプログラミングパラダイムでは、各プログラムはネットワークを介してメッセージを送受信することで他のプログラムと通信できるサービスです。Jolie は、 TCP/IPソケットからプロセス間のローカル イン メモリ通信まで、さまざまな媒体を使用してサービスが通信できるようにする抽象化レイヤーをサポートしています。[ 3 ] [ 4 ]
Jolieは現在、Java言語で実装されたインタプリタによってサポートされており、 Linuxベースのオペレーティングシステム、OS X、Windowsなど複数のオペレーティングシステムで実行できます。[ 5 ]この言語には形式意味論が備わっており、Jolieプログラムの実行は数学的に定義されています。このため、Jolieは分散システムの開発のための言語ベースの技術を調査する研究で使用されており、[ 6 ]また、一部の大学では教育にも使用されています。[ 7 ]
Jolie オープンソース プロジェクトは、Fabrizio Montesiがボローニャ大学での研究の一環として 2006 年に開始しました。このプロジェクトは当初、ボローニャ大学の Claudio Guidi らがCCSプロセス計算とWS-BPELプログラミング言語に触発されて提案した形式モデルである SOCKプロセス計算の実装として始まりました[ 8 ] [ 9 ]。Jolie は、SOCK を拡張し、例えば、ツリー状のデータ構造 ( XMLに触発されていますが、構文はCやJavaに似ています)、メッセージ型、型付きセッション プログラミング、 JavaやJavaScriptとの統合、コード モビリティ、アプリケーション コンテインメント、Web プログラミングなどをサポートしています。[ 5 ] [ 10 ] [ 11 ]プロジェクト貢献者の完全なリストは、次の場所で入手できます。[ 12 ]
このプロジェクトは現在ファブリツィオ・モンテシによって維持管理されており、その発展はファブリツィオ・モンテシとクラウディオ・グイディによって推進されている。
JolieはWebサービスのオーケストレーションをサポートしているため、XMLライクなデータ構造にアクセスするための簡潔な(C言語のような)構文を提供し、 WS-BPELなどのXMLベースのオーケストレーション言語の代替となる。