|
|
# Overview
|
|
|
|
|
|
Dynamic Condition Response (DCR) Choreographies extend the concept of DCR graphs [REF] to specify the behaviour of communicating parties, providing a declarative, event-based, and stateful approach to modeling workflows in a (implicitly) decentralized context.
|
|
|
Dynamic Condition Response (DCR) Choreographies extend the concept of DCR graphs to specify the behaviour of communicating parties, providing a declarative, event-based, and stateful approach to the specification of workflows within a swarm application
|
|
|
|
|
|
A DCR choreography defines messages, and data, exchanged between different actors as well as control-flow constraints, beyond basic data dependencies, that represent the system’s business logic. In addition, it enables the representation of both events and constraints in a visual and intuitive manner, providing a high-level abstraction that is both human-readable and machine-executable.
|
|
|
A specification reflects the intended global behaviour of the swarm, defining messages (and data) exchanged between swarm participants, together with control-flow constraints (beyond basic data dependencies) enforcing the system’s business logic. Both messages and constraints are associated to (stateful) events. Swarm participants drive the workflow by executing events, thereby updating their internal state and triggering communication with other participants.
|
|
|
|
|
|
DCR Choreographies enable the modeling of complex behaviour, going beyond simple state machines, allowing for an expressive, flexible and extendable programming language that can be used to design the application layer of swarms in decentralised and dynamic environments.
|
|
|
A DCR choreography defines messages, and data, exchanged between different actors as well as control-flow constraints, beyond basic data dependencies, that represent the system’s business logic. The language supports both graphical and textual representation, the two being interchangeable, providing a high-level abstraction that is both intuitive and human-readable, as well as machine-executable.
|
|
|
|
|
|
By leveraging DCR Choreographies, the TaRDIS toolkit can support more intricate workflows that go beyond simple state machines, allowing for an expressive, flexible and extendable programming language that can be used to design the application layer of swarms in decentralised and dynamic environments.
|
|
|
|
|
|
# Examples
|
|
|
An Energy Community is a network of local consumers and producers that efficiently share energy resources. In these communities, "prosumers" can both produce and consume energy. Below, we present two examples applied to the described use case.
|
|
|
# Modeling with DCR Choreographies
|
|
|
An _Energy Community_ describes a network/swarm designed to promote the efficient trading of energy resources. In these communities, distributed nodes, dubbed "_prosumers_", describe swarm participants that produce and/or consume energy. Below, we illutraste the use of DCR Choreographies to model two scenarios from the described use case.
|
|
|
|
|
|
[Simple EDP Use Case](DCR Choreographies/Simple EDP Use Case)
|
|
|
|
... | ... | |