Jump to content

Jolie (programming language): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
refs
refs
Line 32: Line 32:
| influenced =
| influenced =
}}
}}
'''Jolie''' (Java Orchestration Language Interpreter Engine<ref name="MontesiGuidi2007">{{cite journal |last1=Montesi |first1=Fabrizio |last2=Guidi |first2=Claudio |last3=Lucchi |first3=Roberto |last4=Zavattaro |first4=Gianluigi |title=JOLIE: a Java Orchestration Language Interpreter Engine |journal=[[Electronic Notes in Theoretical Computer Science]] |volume=181 |year=2007 |pages=19–33 |issn=1571-0661 |doi=10.1016/j.entcs.2007.01.051}}</ref>) is an [[open-source software|open-source]]<ref name=joliesf>{{cite web |title=Jolie Project |url=http://sourceforge.net/projects/jolie/ |website=[[SourceForge]]}}</ref> [[programming language]] for developing [[Distributed computing|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 [[Internet protocol suite|TCP/IP]] [[Network socket|sockets]] to local in-memory communications between [[Process (computing)|processes]].<ref name=M10>{{cite book |last=Montesi |first=Fabrizio |title=Jolie: a Service-oriented Programming Language |year=2010 |publisher=University of Bologna (MSc Thesis) |url=http://amslaurea.unibo.it/1226/}}</ref><ref name="MontesiGuidi2014">{{cite journal |last1=Montesi |first1=Fabrizio |last2=Guidi |first2=Claudio |last3=Zavattaro |first3=Gianluigi |title=Service-Oriented Programming with Jolie |year=2014 |pages=81–107 |doi=10.1007/978-1-4614-7518-7_4}}</ref>
'''Jolie''' (Java Orchestration Language Interpreter Engine<ref name="MontesiGuidi2007">{{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=[[Electronic Notes in Theoretical Computer Science|ENTCS]] |volume=181 |year=2007 |pages=19–33 |issn=1571-0661 |doi=10.1016/j.entcs.2007.01.051 |id={{citeseerx|10.1.1.408.2052}}}}</ref>) is an [[open-source software|open-source]]<ref name=joliesf>{{cite web |title=Jolie Project |url=http://sourceforge.net/projects/jolie/ |website=[[SourceForge]]}}</ref> [[programming language]] for developing [[Distributed computing|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 [[Internet protocol suite|TCP/IP]] [[Network socket|sockets]] to local in-memory communications between [[Process (computing)|processes]].<ref name=M10>{{cite book |last=Montesi |first=Fabrizio |title=Jolie: a Service-oriented Programming Language |year=2010 |publisher=University of Bologna (MSc Thesis) |url=http://amslaurea.unibo.it/1226/}}</ref><ref name="MontesiGuidi2014">{{cite book |last1=Montesi |first1=Fabrizio |last2=Guidi |first2=Claudio |last3=Zavattaro |first3=Gianluigi |title=Service-Oriented Programming with Jolie |year=2014 |pages=81–107 |doi=10.1007/978-1-4614-7518-7_4}}</ref>


Jolie is currently supported by an [[interpreter (computing)|interpreter]] implemented in the [[Java (programming language)|Java]] language, which can be run in multiple operating systems including [[Linux|Linux-based]] operating systems, [[OS X]], and [[Windows]].<ref name=joliewebsite>{{cite web |title=Jolie Programming Language |url=http://jolie-lang.org/}}</ref> The language comes with [[semantics (computer science)|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,<ref name=chorwebsite>{{cite web |title=Chor Programming Language |url=http://chor-lang.org/}}</ref> and it is also used for teaching at some Universities.<ref name=jolie_academy>{{cite web |title=Jolie Programming Language - Academy |url=http://jolie-lang.org/academy.html}}</ref>
Jolie is currently supported by an [[interpreter (computing)|interpreter]] implemented in the [[Java (programming language)|Java]] language, which can be run in multiple operating systems including [[Linux|Linux-based]] operating systems, [[OS X]], and [[Windows]].<ref name=joliewebsite>{{cite web |title=Jolie Programming Language |url=http://jolie-lang.org/}}</ref> The language comes with [[semantics (computer science)|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,<ref name=chorwebsite>{{cite web |title=Chor Programming Language |url=http://chor-lang.org/}}</ref> and it is also used for teaching at some Universities.<ref name=jolie_academy>{{cite web |title=Jolie Programming Language - Academy |url=http://jolie-lang.org/academy.html}}</ref>


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<ref name=sock>{{cite web |title=SOCK: a calculus for service oriented computing |id={{citeseerx|10.1.1.102.6297}}}}</ref><ref name=guidiphd>{{cite web |title=Formalizing languages for service oriented computing |doi=10.6092/unibo/amsdottorato/373}}</ref> inspired by the [[Calculus of Communicating Systems|CCS]] process calculus and the [[Business Process Execution Language|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 (programming language)|C]] and [[Java (programming language)|Java]]), message types, typed session programming, integration with [[Java (programming language)|Java]] and [[JavaScript]], [[code mobility]], [[Application server|application containment]], and web programming.<ref name=joliewebsite /><ref name=jolieweb>{{cite web |title=Process-aware Web Programming with Jolie |id={{arxiv|1410.3712}}}}</ref> A complete list of the project contributors is available at.<ref name=joliewebcommunity>{{cite web |title=Jolie Programming Language - About Jolie |url=http://jolie-lang.org/about_jolie.html}}</ref>
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<ref name="GuidiLucchi2006">{{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=[[International Conference on Service Oriented Computing|ICSOC]]'06 |series=[[Lecture Notes in Computer Science|LNCS]] |volume=4294 |year=2006 |pages=327–338 |issn=0302-9743 |doi=10.1007/11948148_27 |id={{citeseerx|10.1.1.102.6297}}}}</ref><ref name=guidiphd>{{cite web |title=Formalizing languages for service oriented computing |doi=10.6092/unibo/amsdottorato/373}}</ref> inspired by the [[Calculus of Communicating Systems|CCS]] process calculus and the [[Business Process Execution Language|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 (programming language)|C]] and [[Java (programming language)|Java]]), message types, typed session programming, integration with [[Java (programming language)|Java]] and [[JavaScript]], [[code mobility]], [[Application server|application containment]], and web programming.<ref name=joliewebsite /><ref name=jolieweb>{{cite web |title=Process-aware Web Programming with Jolie |arxiv=1410.3712}}</ref> A complete list of the project contributors is available at.<ref name=joliewebcommunity>{{cite web |title=Jolie Programming Language - About Jolie |url=http://jolie-lang.org/about_jolie.html}}</ref>


The project is currently [[software maintainer|maintained]] by Fabrizio Montesi and its evolution is driven by Fabrizio Montesi and Claudio Guidi.
The project is currently [[software maintainer|maintained]] by Fabrizio Montesi and its evolution is driven by Fabrizio Montesi and Claudio Guidi.

Revision as of 01:03, 1 December 2015

Jolie
Designed by
  • Claudio Guidi
  • Fabrizio Montesi
DeveloperFabrizio Montesi
Stable release
1.4.1 / August 17, 2015; 8 years ago (2015-08-17)
Implementation languageJava
PlatformJava
Websitejolie-lang.org

Jolie (Java Orchestration Language Interpreter Engine[1]) is an open-source[2] 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.[3][4]

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.[5] 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,[6] and it is also used for teaching at some Universities.[7]

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[8][9] 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.[5][10] A complete list of the project contributors is available at.[11]

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

  1. ^ Montesi, Fabrizio; Guidi, Claudio; Lucchi, Roberto; Zavattaro, Gianluigi (2007). JOLIE: a Java Orchestration Language Interpreter Engine (PDF). ENTCS. Vol. 181. pp. 19–33. doi:10.1016/j.entcs.2007.01.051. ISSN 1571-0661. CiteSeerx10.1.1.408.2052.
  2. ^ "Jolie Project". SourceForge.
  3. ^ Montesi, Fabrizio (2010). Jolie: a Service-oriented Programming Language. University of Bologna (MSc Thesis).
  4. ^ Montesi, Fabrizio; Guidi, Claudio; Zavattaro, Gianluigi (2014). Service-Oriented Programming with Jolie. pp. 81–107. doi:10.1007/978-1-4614-7518-7_4.
  5. ^ a b "Jolie Programming Language".
  6. ^ "Chor Programming Language".
  7. ^ "Jolie Programming Language - Academy".
  8. ^ Guidi, Claudio; Lucchi, Roberto; Gorrieri, Roberto; Busi, Nadia; Zavattaro, Gianluigi (2006). SOCK: A Calculus for Service Oriented Computing. ICSOC'06. LNCS. Vol. 4294. pp. 327–338. doi:10.1007/11948148_27. ISSN 0302-9743. CiteSeerx10.1.1.102.6297.
  9. ^ "Formalizing languages for service oriented computing". doi:10.6092/unibo/amsdottorato/373. {{cite web}}: Missing or empty |url= (help)
  10. ^ "Process-aware Web Programming with Jolie". arXiv:1410.3712. {{cite web}}: Missing or empty |url= (help)
  11. ^ "Jolie Programming Language - About Jolie".

External links