Executable choreography: Difference between revisions

Content deleted Content added
m edit test
version 0.1
Tags: Possible self promotion in userspace Visual edit
Line 1:
{{AFC submission|d|nn|u=Damiancatalin|ns=118|decliner=The Mighty Glen|declinets=20180614224734|ts=20180614072420}} <!-- Do not remove this line! -->
Executable choreographies represents a decentralized form of [[Service composability principle|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.<ref>{{Cite journal|first=|date=August 2015|title=Levels of Privacy for e-Health systems in the cloud era|url=http://www.math.md/files/csjm/v24-n3/v24-n3-(pp417-436).pdf|journal=24th International Conference on Information Systems Development|volume=|pages=243-253|via=}}</ref>
 
== Executable or non-executable choreography ==
[https://www.semanticscholar.org/paper/Process-Design-Requirements-Peltz/bba3aae9c34857c4eeedf05c5c69b79bf5364e6f Orchestration always represents control from one party’s perspective. This differs from choreography, which is more collaborative and allows each involved party to describe its part in the interaction.]
In almost all applications the business logic must be separated into different services. The [[Orchestration (computing)|orchestration]] represents the way that these services are organized and composed. The resulting service can be integrated hierarchically into another composition.<ref>{{Cite journal|last=|first=|date=March 2011|title=Choreography and Orchestration using Business Process Execution Language for SOA with Web Services|url=|journal=IJCSI International Journal of Computer Science Issues|volume=Vol. 8, Issue 2|pages=224-232|via=http://www.ijcsi.org/}}</ref>
 
[[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.<ref>{{Cite web|url=https://stackoverflow.com/questions/4127241/orchestration-vs-choreography|title=Orchestration vs. Choreography|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>
Byy service choreography or executable choreographies we understand the composition of two or more services in a decentralized way (uncontrolled by a single entity). Another perspective is to see the [[Orchestration (computing)|orchestration]] as a local perspective and choreography as a global perspective.'''Executable Choreographies Types:'''
 
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 <ref>{{Cite web|url=https://www.w3.org/TR/ws-cdl-10/|title=WSCDL Specification|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>, 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) <ref>{{Cite web|url=http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.pdf|title=WS-BPEL standard|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>, rule engines, etc.
* '''Verifiable choreographies''' - for the [[PrivateSky]] project all the executable choreographies are verifiable. The explicit presence of the execution ___location leads to the possibility of developing verification algorithms.  
 
* '''Encrypted choreographies''' - in addition to checking, they offer higher-level solutions for advanced cryptographic methods without the need for programmers to become specialists in cryptography.
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" <ref>{{Citation|last=Besana|first=Paolo|title=An Executable Calculus for Service Choreography|date=2009|url=https://doi.org/10.1007/978-3-642-05148-7_26|work=On the Move to Meaningful Internet Systems: OTM 2009|pages=373–380|publisher=Springer Berlin Heidelberg|language=en|doi=10.1007/978-3-642-05148-7_26|isbn=9783642051470|access-date=2018-07-16|last2=Barker|first2=Adam}}</ref> or "An executable choreography framework for dynamic service-oriented architectures" <ref>{{Cite journal|last=Akkawi|first=F.|last2=Cottenier|first2=T.|last3=Alena|first3=R.L.|last4=Fletcher|first4=D.P.|last5=Duncavage|first5=D.P.|last6=Elrad|first6=T.|title=An Executable Choreography Framework for Dynamic Service-Oriented Architectures|url=https://doi.org/10.1109/AERO.2006.1656059|journal=2006 IEEE Aerospace Conference|language=en-US|publisher=IEEE|doi=10.1109/aero.2006.1656059|isbn=078039545X}}</ref>. 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.
* '''Serverless choreographies''' - serverless execution is a cloud computing model in which the cloud provider (or cloud nodes in the blockchain situation) dynamically manages the allocation of computing resources.
 
* '''Choreographic smart contract''' - a subtype of serverless choreographies, a choreography that use  as input and outputs only data from PrivateSky’s blockchains.
== 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 ==