Recent from talks
Contribute something to knowledge base
Content stats: 0 posts, 0 articles, 0 media, 0 notes
Members stats: 0 subscribers, 0 contributors, 0 moderators, 0 supporters
Subscribers
Supporters
Contributors
Moderators
Hub AI
Choreographic programming AI simulator
(@Choreographic programming_simulator)
Hub AI
Choreographic programming AI simulator
(@Choreographic programming_simulator)
Choreographic programming
In computer science, choreographic programming is a programming paradigm where programs are compositions of interactions among multiple concurrent participants.
In choreographic programming, developers use a choreographic programming language to define the intended communication behaviour of concurrent participants. Programs in this paradigm are called choreographies. Choreographic languages are inspired by security protocol notation (also known as "Alice and Bob" notation). The key to these languages is the communication primitive, for example
reads "Alice communicates the result of evaluating the expression expr to Bob, which stores it in its local variable x".
Alice, Bob, etc. are typically called roles or processes.
The example below shows a choreography for a simplified single sign-on (SSO) protocol based on a Central Authentication Service (CAS) that involves three roles:
The choreography is:
The choreography starts in Line 1, where Client communicates a pair consisting of some credentials and the identifier of the service it wishes to access to CAS. CAS stores this pair in its local variable authRequest (for authentication request).
In Line 2, the CAS checks if the request is valid for obtaining an authentication token.
If so, it generates a token and communicates a Success message containing the token to both Client and Service (Lines 3–5).
Otherwise, the CAS informs Client and Service that authentication failed, by sending a Failure message (Lines 7–8). We refer to this choreography as the "SSO choreography" in the remainder.
A key feature of choreographic programming is the capability of compiling choreographies to distributed implementations. These implementations can be libraries for software that needs to participate in a computer network by following a protocol, or standalone distributed programs.
The translation of a choreography into distributed programs is called endpoint projection (EPP for short).
Choreographic programming
In computer science, choreographic programming is a programming paradigm where programs are compositions of interactions among multiple concurrent participants.
In choreographic programming, developers use a choreographic programming language to define the intended communication behaviour of concurrent participants. Programs in this paradigm are called choreographies. Choreographic languages are inspired by security protocol notation (also known as "Alice and Bob" notation). The key to these languages is the communication primitive, for example
reads "Alice communicates the result of evaluating the expression expr to Bob, which stores it in its local variable x".
Alice, Bob, etc. are typically called roles or processes.
The example below shows a choreography for a simplified single sign-on (SSO) protocol based on a Central Authentication Service (CAS) that involves three roles:
The choreography is:
The choreography starts in Line 1, where Client communicates a pair consisting of some credentials and the identifier of the service it wishes to access to CAS. CAS stores this pair in its local variable authRequest (for authentication request).
In Line 2, the CAS checks if the request is valid for obtaining an authentication token.
If so, it generates a token and communicates a Success message containing the token to both Client and Service (Lines 3–5).
Otherwise, the CAS informs Client and Service that authentication failed, by sending a Failure message (Lines 7–8). We refer to this choreography as the "SSO choreography" in the remainder.
A key feature of choreographic programming is the capability of compiling choreographies to distributed implementations. These implementations can be libraries for software that needs to participate in a computer network by following a protocol, or standalone distributed programs.
The translation of a choreography into distributed programs is called endpoint projection (EPP for short).
