Skip to content

Commit

Permalink
Digital Twin Graph
Browse files Browse the repository at this point in the history
  • Loading branch information
ashbeitz committed May 10, 2024
1 parent b7a4580 commit 951fa26
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions docs/design/modules/digital_twin_graph/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
- [Introduction](#introduction)
- [Architecture](#architecture)
- [Identifiers](#identifiers)
- [Provider Contract](#provider-contract)
- [Operations](#operations)

## <a name="introduction">Introduction</a>
Expand Down Expand Up @@ -44,6 +45,50 @@ A digital twin may be decomposed into digital twin entities. Each digital twin e

The provider ID is the identifier for a Digital Twin Provider. The provider ID must be universally unique and it is up to the provider to ensure this. The provider id may be associated with multiple instance IDs.

## <a name="provider-contract">Provider Contract</a>

The provider operations that will initally be supported by the digital twin graph are: Get, Set and Invoke.

Providers that want to participate in the digital twin graph, will need to do the following:
<ul>
<li>Provide the async_rpc's Request interface with an ask operation that will use a targeted payload that has the following:
<ul>
<li>Get:
<ul>
<li>instance_id: set to the the target's instance ID</li?>
<li>member_path: is optional; if it is empty, then it means the entire entity; if it is not empty, then it targets a specific member</li?>
<li>operation: set to "Get"</li>
<li>payload: is not required</li>
</ul>
</li>
<li>Set:
<ul>
<li>instance_id: set to the the target's instance ID</li>
<li>member_path: is optional; if it is empty, then it means the entire entity; if it is not empty, then it targets a specific member</li>
<li>operation: set to "Set"</li>
<li>payload: the value</li>
</ul>
<li>Invoke:
<ul>
<li>instance_id: set to the the target's instance ID</li>
<li>member_path: the name of command to invoke</li>
<li>operation: set to "Invoke"</li>
<li>payload: the command's request payload</li>
</ul>
</li>
</ul>
<li>Return the result from a provider operation to the aync_rpc's Response interface using with the answer operation that has a payload that has the following:
<ul>
<li>Get: The value of the target.
</li>
<li>Set: The payload is not required.
</li>
<li>Invoke: The command's response payload.
</li>
</li>
</ul>
</ul>

## <a name="operations">Operations</a>

The Digital Twin Graph Service will support four operations:
Expand Down

0 comments on commit 951fa26

Please sign in to comment.