Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T TaRDIS-DCR
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Departamento de Informática
  • Research
  • TaRDISTaRDIS
  • WP3
  • TaRDIS-DCR
  • Wiki
  • Dcr choreographies
  • Simple EDP Use Case

Simple EDP Use Case · Changes

Page history
Update Simple EDP Use Case authored Oct 21, 2024 by Nuno Fernandes's avatar Nuno Fernandes
Hide whitespace changes
Inline Side-by-side
DCR-Choreographies/Simple-EDP-Use-Case.md
View page @ 3e9688e9
# Overview
In this scenario, the Orchestrator (role asigned to a swarm participant managing the Energy Community), requests Prosumers to provide information on how much energy they estimate to produce/consume in an upcoming time window, for the purpose of computing energy requirements across the Community and updating its records accordingly.
In this scenario, the Orchestrator (role asigned to a swarm participant managing the Energy Community) requests Prosumers to provide information on how much energy they estimate to produce/consume within an upcoming time window, for the purpose of monitoring energy requirements across the Community.
```ruby
# roles
......@@ -33,18 +33,18 @@ gpf1 -->+ acc
gpf0 -->+ acc
acc -->% acc
```
In this case, there are two roles, Prosumer (P) and Orchestrator (O), both parameterize with an id, _e.g:_ `P(1), O(0)`.
In this case, there are two roles, Prosumer (P) and Orchestrator (O), both parameterised with an id, _e.g._, `P(1), O(0)`.
> **NOTE**: The roles are defined in the first lines of the process and are used to identify the prosumers in the process. The role `Z` is a dummy role used to define the security lattice and information flow of all the events in the process.
> **NOTE**: The roles are defined in the first lines of the process and are used to identify the prosumers in the process. The role `Z` is a dummy role used to define the security lattice and information flow control (IFC) of all the events in the process. For the sake of simplicity, we ignore IFC in this example.
---
The process comprises the following event representing the orchestrator information (computation event).
The process comprises the following event representing the orchestrator's information (computation event).
```ruby
(oInfo:Info) (Z;Z) ['Manager'] [O(0)]
```
To emulate the intended behavior, the Orchestrator (`O(0)`) sends a request (`rpf`) to all prosumers (`P(0)`,` P(1)`) asking for their production forecasts. Each prosumer responds with their forecast (`gpf_0`, `gpf_1`), and the Orchestrator updates the energy accounting records (`acc`).
> **NOTE**: The event `acc` is local, meaning that is only available for `O(0)`, who updates the community's energy records.
To emulate the intended behavior, the Orchestrator (`O(0)`) sends a request (`rpf`) to all prosumers (`P(0)`,` P(1)`) asking for their production forecasts. Each prosumer responds with their forecast (`gpf_0`, `gpf_1`), and the Orchestrator updates the Community's accounting records (`acc`).
> **NOTE**: The event `acc` is local, meaning that is only available for `O(0)` which is effectively responsible for updating the Community's energy records.
```ruby
(rpf:requestProductionForecast) (Z;Z) [? ] [O(0) -> P(0), P(1)]
......
Clone repository
  • DCR Choreographies
    • EDP Use Case
    • Simple EDP Use Case
  • Prototype
  • Home