Jump to content

Executable choreography

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Damiancatalin (talk | contribs) at 11:52, 16 July 2018 (version 0.1). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Executable choreographies represents a decentralized form of service composition, involving the cooperation of several individual entities. It is a improved form of service choreography. Executable choreographies can be intuitively seen as arbitrary complex workflows that get executed in systems belonging to multiple organisations or authorities.[1]

Executable or non-executable choreography

In almost all applications the business logic must be separated into different services. The orchestration represents the way that these services are organized and composed. The resulting service can be integrated hierarchically into another composition.[2]

Service choreography is a global description of the participating services, which is defined by exchange of messages, rules of interaction and agreements between two or more endpoints. Choreography employs a decentralized approach for service composition.[3]

In industry, the concept of choreography is generally considered to be non-executable. Standards, such as those proposed by the Web Services Choreography Description Language [4], present the choreography as a more formal model to describe contracts between autonomous entities (generally distinct organizations) participating in a composition services analyzed globally. From this perspective, the composition itself must be implemented centrally through the different orchestration mechanisms made available by companies: naive code composition or the use of specific orchestration languages and engines such as BPEL (Business Process Execution Language) [5], rule engines, etc.

In the area of academic research, the concept of executable choreography is proposed as a method of no longer having the contractual part and the actual part of code as two different artifacts that can be non-synchronized or require subjective interpretations. Examples are "An Executable Calculus for Service Choreography" [6] or "An executable choreography framework for dynamic service-oriented architectures" [7]. Few of these approaches have also had a practical impact, often at the level of articles or, at the very least, research projects. The real breakthrough of the blockchain in recent years has brought even more to the attention of the academic community and industry, the concept of "smart contract", which can be seen as a particular form of executable choreography.

Executable choreographies types

Verifiable choreographies

By definition all executable choreographies are verifiable choreographies. Executable choreographies are a more general concept and as are not necessarily verifiable choreographies if they do not use the idea of ​​a site regarded as a security context for code execution. As examples of approaches to programming using executable choreographies, we could list the European project CHOReOS [L-CHOREORS], the Chor [L-CHOR] programming language, the web service modeling in the "Choreographing Web Services" [Bark2009] of some aspects related to the composition of web services using pi-calculus [BES2009]. We introduced the verifiable term to highlight the possibility of verifying swarm choreographies. The explicit presence of the execution location idea leads to the possibility of developing verification algorithms as we have seen in the article "Levels of privacy for e-Health systems in the cloud era." [PRIV2015]. But the very code auditing by programmers about security and privacy is greatly facilitated.

References

  1. ^ "Levels of Privacy for e-Health systems in the cloud era" (PDF). 24th International Conference on Information Systems Development: 243–253. August 2015.
  2. ^ "Choreography and Orchestration using Business Process Execution Language for SOA with Web Services". IJCSI International Journal of Computer Science Issues. Vol. 8, Issue 2: 224–232. March 2011 – via http://www.ijcsi.org/. {{cite journal}}: |volume= has extra text (help); External link in |via= (help)
  3. ^ "Orchestration vs. Choreography". {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  4. ^ "WSCDL Specification". {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  5. ^ "WS-BPEL standard" (PDF). {{cite web}}: Cite has empty unknown parameter: |dead-url= (help)
  6. ^ Besana, Paolo; Barker, Adam (2009), "An Executable Calculus for Service Choreography", On the Move to Meaningful Internet Systems: OTM 2009, Springer Berlin Heidelberg, pp. 373–380, doi:10.1007/978-3-642-05148-7_26, ISBN 9783642051470, retrieved 2018-07-16
  7. ^ Akkawi, F.; Cottenier, T.; Alena, R.L.; Fletcher, D.P.; Duncavage, D.P.; Elrad, T. "An Executable Choreography Framework for Dynamic Service-Oriented Architectures". 2006 IEEE Aerospace Conference. IEEE. doi:10.1109/aero.2006.1656059. ISBN 078039545X.