Executable choreography: Difference between revisions

Content deleted Content added
Declining submission: nn - Submission is about a topic not yet shown to meet general notability guidelines (be more specific if possible) (AFCH 0.9)
Sreak-Tuis (talk | contribs)
No edit summary
 
(36 intermediate revisions by 17 users not shown)
Line 1:
{{AFC submission|d|nn|u=Damiancatalin|ns=118|decliner=The Mighty Glen|declinets=20180614224734|ts=20180614072420}} <!-- Do not remove this line! -->
 
{{Short description|Computing design principle}}
[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.]
'''Executable choreography''' represents a decentralized form of [[Service composability principle|service composition]], involving the cooperation of several individual entities. It is an 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|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|pages=243–253}}</ref>
 
Executable choreographies are actual codes created to encode system behavior from a global point of view. The behavior of the main entities in a system is given in a single program. Choreographies enhance the quality of software, as they behave like executable  blueprints of how communicating systems should behave and offer a concise view of the message flows enacted by a system.
By 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:'''
 
== Executable vs. non-executable choreography ==
* '''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.  
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|date=March 2011|title=Choreography and Orchestration using Business Process Execution Language for SOA with Web Services|journal=IJCSI International Journal of Computer Science Issues|volume=8|issue=2|pages=224–232|url=http://www.ijcsi.org/}}</ref>
* '''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.
 
* '''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.
[[Service choreography]] is a global description of the participating services, which is defined by the 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}}</ref>
* '''Choreographic smart contract''' - a subtype of serverless choreographies, a choreography that use  as input and outputs only data from PrivateSky’s blockchains.
 
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}}</ref> present the choreography as a more formal model to describe contracts between autonomous entities (generally distinct organisations) participating in a composition of 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}}</ref> 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" <ref>{{Citation|last1=Besana|first1=Paolo|title=On the Move to Meaningful Internet Systems: OTM 2009|date=2009|volume=5870|pages=373–380|series=Lecture Notes in Computer Science|publisher=Springer Berlin Heidelberg|language=en|doi=10.1007/978-3-642-05148-7_26|isbn=9783642051470|last2=Barker|first2=Adam|chapter=An Executable Calculus for Service Choreography |url=http://www.adambarker.org/papers/coopis09.pdf|citeseerx=10.1.1.525.2508}}</ref> or "An executable choreography framework for dynamic service-oriented architectures".<ref>{{Cite book|last1=Akkawi|first1=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=2006 IEEE Aerospace Conference |chapter=An Executable Choreography Framework for Dynamic Service-Oriented Architectures |pages=1–13|language=en-US|doi=10.1109/aero.2006.1656059|isbn=978-0780395459|year=2006|s2cid=34895834}}</ref> Few of these approaches have also had a practical impact, often at the level of articles or, at the very least, [[Service choreography#Research Projects on Choreographies|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 ===
Executable choreographies are a more general concept and 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,<ref>{{Cite web|url=http://www.choreos.eu|title=ChoreOS}}</ref> the Chor programming language,<ref>{{Cite web|url=http://www.chor-lang.org/|title=Chor Programming Language}}</ref> the web service modeling in the "Choreographing Web Services" <ref>{{Cite journal|last1=Barker|first1=Adam|last2=Walton|first2=Christopher D.|last3=Robertson|first3=David|date=2004|title=Choreographing Web Services|journal=IEEE Transactions on Services Computing|volume=2|issue=2|pages=152–166|doi=10.1109/tsc.2009.8|s2cid=15816522|issn=1939-1374}}</ref> of some aspects related to the composition of web services using pi-calculus.<ref>{{Citation|last1=Besana|first1=Paolo|title=On the Move to Meaningful Internet Systems: OTM 2009|date=2009|volume=5870|pages=373–380|series=Lecture Notes in Computer Science|publisher=Springer Berlin Heidelberg|language=en|doi=10.1007/978-3-642-05148-7_26|isbn=9783642051470|last2=Barker|first2=Adam|chapter=An Executable Calculus for Service Choreography |url=http://www.adambarker.org/papers/coopis09.pdf|citeseerx=10.1.1.525.2508}}</ref> The verifiable term was introduced to highlight the possibility of verifying [[swarm communication]]. The explicit presence of the execution ___location idea leads to the possibility of developing verification algorithms as can be seen in the article "Levels of privacy for e-Health systems in the cloud era".<ref>{{Cite journal|date=2015|title=Levels of Privacy for e-Health systems in the cloud era|url=https://aisel.aisnet.org/cgi/viewcontent.cgi?article=1089&context=isd2014|journal=24th International Conference on Information Systems Development|pages=1–10}}</ref>
 
=== Encrypted choreographies ===
Encrypted cryptography supposes that, in addition to verification, they offer higher-level solutions for advanced cryptographic methods without the need for programmers to become cryptography specialists. Distributed applications could be built from subsystems that allow identification or verification of architectural points that expose secret data. For example, ideally, a programming system that uses encrypted choreographs guarantees, or at least helps, minimize situations where a person (legally licensed or hacker) holds both encrypted private data and encryption keys related to the same resources. In this way, the administrators or programmers of these subsystems have fewer possibilities to perform internal attacks on privacy (the level with frequent attacks). Even if some applications can not use this approach, encrypted choreographies can minimize the security risks caused by the people inside who administer or program these systems. Thus, the number of points with discreet access to data (ideally never) is formally ensured. This form of choreography is useful to allow companies to secure by code the application of the legislation or security rules assumed.
 
The implementation of encrypted choreographies implies, for example, the existence of storage systems using cryptographic techniques with practical implementation of [[homomorphic encryption]], such as the CryptDB <ref>{{Cite book|last1=Popa|first1=Raluca Ada|last2=Redfield|first2=Catherine M. S.|last3=Zeldovich|first3=Nickolai|last4=Balakrishnan|first4=Hari|title=Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles |chapter=CryptDB: Protecting confidentiality with encrypted query processing |date=2011-10-23|pages=85–100|doi=10.1145/2043556.2043566|isbn=9781450309776|hdl=1721.1/74107|s2cid=6323154}}</ref><ref>{{Cite journal|last1=Tu|first1=Stephen|last2=Kaashoek|first2=M. Frans|last3=Madden|first3=Samuel|last4=Zeldovich|first4=Nickolai|last5=Tu|first5=Stephen|last6=Kaashoek|first6=M. Frans|last7=Madden|first7=Samuel|last8=Zeldovich|first8=Nickolai|date=2013-03-01|title=Processing analytical queries over encrypted data, Processing analytical queries over encrypted data|journal=Proceedings of the VLDB Endowment|volume=6|issue=5|pages=289, 289–300, 300|doi=10.14778/2535573.2488336|issn=2150-8097|url=https://dspace.mit.edu/bitstream/1721.1/87023/1/tu-monomi-cr-vldb13.pdf|hdl=1721.1/87023|s2cid=2187816 |hdl-access=free}}</ref> implementation from MIT. A method that can also be called a "storage, division and anonymization method" with the help of encrypted choreographies, can lead to the ideal of having total "sovereignty" (within the limits of the law) on private data was published in the article "Private Data System enabling self-sovereign storage managed by executable choreographies".<ref>{{Citation|last1=Alboaie|first1=Sinică|title=Distributed Applications and Interoperable Systems|date=2017|volume=10320|pages=83–98|series=Lecture Notes in Computer Science|publisher=Springer International Publishing|language=en|doi=10.1007/978-3-319-59665-5_6|isbn=9783319596648|last2=Cosovan|first2=Doina|chapter=Private Data System Enabling Self-Sovereign Storage Managed by Executable Choreographies |arxiv=1708.09332|s2cid=6063958}}</ref> This paper presents how choreographies anonymize and divide data in a way that ensures that data can not be copied by a single administrator or hacker that controls only one of the participating nodes. The implemented mechanisms can also include interfaces that are easy to use by programmers for advanced cryptographic methods.
 
=== Serverless choreographies ===
[[Serverless computing]] is a cloud computing model in which the cloud provider dynamically manages the allocation of computing resources. Serverless choreographies involve automating launching methods using virtualization and automation techniques.
 
The implementation of this advanced type of choreography requires the development of new business models to facilitate cloud-based application hosting without any friction related to payment, installation, etc. For example, the [[Tor (anonymity network)|Tor]] concept provides an example for such serverless systems. The best known example is [[AWS Lambda|Amazon Lambda]] which has great commercial success allowing programmers to ignore installation details and facilitate dynamic scalability of systems. Blockchains can be considered examples of serverless databases.
 
Serverless choreographies assume that cloud execution and storage is done using encrypted choreographies. Using this form of choreography, hosting companies or individuals managing physical and logical hosting infrastructure will not be able to influence hosted installation or applications. Serverless choreographies present the opportunity to develop distributed, decentralized systems and the potential to formally secure advanced privacy properties.
 
==See also==
* [[Service composability principle]]
* [[Service choreography]]
 
== References ==
<!-- Inline citations added to your article will automatically display here. See https://en.wikipedia.org/wiki/WP:REFB for instructions on how to add citations. -->
{{reflist}}
 
[[Category:Service-oriented (business computing)]]
[[Category:Web service specifications]]