-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #236 from catenax-ng/main
New release 4.0.0
- Loading branch information
Showing
43 changed files
with
10,535 additions
and
3,785 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# \[TRI-1576\] \[CONCEPT\] Handling of assets provided by multiple Digital Twin Registries | ||
|
||
## Glossary | ||
|
||
| Abbreviation | Name | | ||
|--------------|-----------------------------| | ||
| EDC | Eclipse Dataspace Connector | | ||
| DTR | Digital Twin Registry | | ||
| DT | Digital Twin | | ||
|
||
|
||
## Out of scope | ||
This concept does not include the discovery process for EDC notifications. This will be done in a separate concept. | ||
|
||
## Scenarios | ||
|
||
IRS is not able to validate if a certain data offer is correct or outdated. IRS will take the first responding offer | ||
which is available, all other requests are disregarded after that and the responses are ignored. | ||
|
||
### EDC with multiple DTRs | ||
|
||
IRS queries all DTRs for the globalAssetId and will take the first result it gets. | ||
If none of the DTRs return a result, IRS will create a tombstone. | ||
|
||
````mermaid | ||
sequenceDiagram | ||
IRS ->> Discovery Service: Get EDCs for BPN | ||
Discovery Service ->> IRS: Return list of 1 EDC | ||
IRS ->> EDC Provider: Query for DTR contract offer | ||
EDC Provider ->> IRS: 2 DTR contract offers | ||
par Query DTR 1 | ||
IRS ->> EDC Provider: Negotiate contract | ||
IRS ->> DTR 1: Query for DT | ||
DTR 1 ->> IRS: no DT | ||
and Query DTR 2 | ||
IRS ->> EDC Provider: Negotiate contract | ||
IRS ->> DTR 2: Query for DT | ||
DTR 2 ->> IRS: DT | ||
end | ||
```` | ||
|
||
### Multiple EDCs with one DTR | ||
|
||
IRS starts a contract negotiation for all registry contract offers in parallel and queries the DTRs for all successful | ||
negotiations. | ||
The first registry which responds with a DT will be the one used by IRS. | ||
|
||
````mermaid | ||
sequenceDiagram | ||
IRS ->> Discovery Service: Get EDCs for BPN | ||
Discovery Service ->> IRS: Return list of 3 EDCs | ||
par Catalog Request to EDC 1 | ||
IRS ->> EDC Provider 1: Query for DTR contract offer | ||
EDC Provider 1 ->> IRS: No offer | ||
and Catalog Request to EDC 2 | ||
IRS ->> EDC Provider 2: Query for DTR contract offer | ||
EDC Provider 2 ->> IRS: No offer | ||
and Catalog Request to EDC 3 | ||
IRS ->> EDC Provider 3: Query for DTR contract offer | ||
EDC Provider 3 ->> IRS: DTR contract offer | ||
IRS -> EDC Provider 3: Negotiate contract | ||
IRS ->> DTR: Query for DT | ||
DTR ->> IRS: DT | ||
end | ||
```` | ||
|
||
### One EDC with one DTR | ||
|
||
Only one EDC found for BPN and the catalog only contains one offer for the DTR. | ||
IRS will use this registry and will create a tombstone if no DT could be found for the globalAssetId. | ||
|
||
````mermaid | ||
sequenceDiagram | ||
IRS ->> Discovery Service: Get EDCs for BPN | ||
Discovery Service ->> IRS: Return list of 1 EDC | ||
IRS ->> EDC Provider 3: Query for DTR contract offer | ||
EDC Provider 3 ->> IRS: DTR contract offer | ||
IRS -> EDC Provider 3: Negotiate contract | ||
IRS ->> DTR: Query for DT | ||
DTR ->> IRS: DT | ||
```` | ||
|
||
### Multiple EDCs with multiple DTRs | ||
|
||
IRS starts a contract negotiation for all the registry offers. | ||
|
||
````mermaid | ||
sequenceDiagram | ||
IRS ->> Discovery Service: Get EDCs for BPN | ||
Discovery Service ->> IRS: Return list of 3 EDCs | ||
par Catalog Request to EDC 1 | ||
IRS ->> EDC Provider 1: Query for DTR contract offer | ||
EDC Provider 1 ->> IRS: No offer | ||
and Catalog Request to EDC 2 | ||
IRS ->> EDC Provider 2: Query for DTR contract offer | ||
EDC Provider 2 ->> IRS: DTR contract offer | ||
IRS -> EDC Provider 2: Negotiate contract | ||
IRS ->> DTR: Query for DT | ||
DTR ->> IRS: DT | ||
and Catalog Request to EDC 3 | ||
IRS ->> EDC Provider 3: Query for DTR contract offer | ||
EDC Provider 3 ->> IRS: DTR contract offer | ||
IRS -> EDC Provider 3: Negotiate contract | ||
IRS ->> DTR: Query for DT | ||
DTR ->> IRS: No DT | ||
end | ||
```` | ||
|
||
### Multiple EDCs with no DTRs | ||
|
||
IRS starts a contract negotiation for all the registry offers and creates a tombstone since no DTR could be discovered. | ||
|
||
````mermaid | ||
sequenceDiagram | ||
IRS ->> Discovery Service: Get EDCs for BPN | ||
Discovery Service ->> IRS: Return list of 3 EDCs | ||
par Catalog Request to EDC 1 | ||
IRS ->> EDC Provider 1: Query for DTR contract offer | ||
EDC Provider 1 ->> IRS: No offer | ||
and Catalog Request to EDC 2 | ||
IRS ->> EDC Provider 2: Query for DTR contract offer | ||
EDC Provider 2 ->> IRS: No offer | ||
and Catalog Request to EDC 3 | ||
IRS ->> EDC Provider 3: Query for DTR contract offer | ||
EDC Provider 3 ->> IRS: No offer | ||
end | ||
IRS ->> IRS: Tombstone | ||
```` | ||
|
||
## Special Scenarios | ||
|
||
### Same DT in multiple DTRs | ||
|
||
IRS will use all registries to query for the globalAssetId and takes the first result which is returned. | ||
If no DT could be found in any of the DTRs, IRS will create a tombstone. | ||
|
||
### Multiple DTs (with the same globalAssetId) in one DTRs | ||
|
||
IRS uses the /query endpoint of the DTR to get the DT id based on the globalAssetId. If more than one id is present for | ||
a globalAssetId, IRS will use the first of the list. | ||
|
||
````mermaid | ||
sequenceDiagram | ||
IRS ->> DTR: /query for globalAssetId | ||
DTR ->> IRS: return list of two results | ||
IRS ->> IRS: use first | ||
```` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
64 changes: 64 additions & 0 deletions
64
...rams/irs-recursive/ess-bottom-up/activity/1_incident_scenario_ess-bottom_up-activity.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
@startuml | ||
skinparam monochrome true | ||
skinparam shadowing false | ||
skinparam defaultFontName "Architects daughter" | ||
title "ESS Bottom-Up from Incident Level" | ||
|
||
|
||
| OEM - IRS Incident Tier Level | | ||
start | ||
:Incident BPNS is identified; | ||
:Get all AAS for from dDTR; | ||
note left | ||
Requesting all AAS from dDTR | ||
end note | ||
if(aas.isEmpty?) then (yes) | ||
stop | ||
endif | ||
|
||
: Filter for asPlanned twins (aas); | ||
note left | ||
semanticId/ | ||
["type"="ExternalReference"]/ | ||
keys["type"="GlobalReference"]/ | ||
["value".contains("SingleLevelBomAsPlanned")] | ||
SingleLevelBomAsPlanned (only downwards supported!!) | ||
end note | ||
if(twinsAsPlanned.isEmpty?) then (yes) | ||
stop | ||
endif | ||
|
||
: Extract and collect globalAssetIds for own twins (AsPlanned); | ||
: Request batch call for globalAssetIds | ||
POST /ess/customers/investigations/orders; | ||
|
||
: Filter for incident BPNS | ||
in PartSiteInformationAsPlanned; | ||
|
||
if(!twin.contains(incidentBpns)) then (no) | ||
: skip twin; | ||
else (yes) | ||
: add twin; | ||
endif | ||
|
||
: ValidityPeriodChecker in own aas; | ||
if(timestamp is in validity period) then (yes) | ||
note left | ||
PartAsPlanned.validityPeriod.validFrom | ||
>= validityTimestamp | ||
>= PartAsPlanned.validityPeriod.validTo | ||
end note | ||
: add twin; | ||
else (no) | ||
: skip twin; | ||
endif | ||
|
||
|
||
: Determining relationships one | ||
tier level upwards; | ||
|
||
: aggregateBPNLs Aggregate bpns numbers for each bpnl; | ||
: increment hops count for each twin ; | ||
stop | ||
|
||
@enduml |
20 changes: 20 additions & 0 deletions
20
docs/src/uml-diagrams/irs-recursive/ess-bottom-up/ess-customer-notifications-submodel.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
@startuml | ||
skinparam monochrome true | ||
skinparam shadowing false | ||
skinparam defaultFontName "Architects daughter" | ||
|
||
entity Customers { | ||
businessPartnerNumberLegalEntity : string | ||
} | ||
entity CustomerParts{ | ||
globalAssetId : string | ||
} | ||
entity Sites{ | ||
businessPartnerNumberSite : string | ||
} | ||
|
||
Customers "0..*" - "1..*" CustomerParts | ||
|
||
CustomerParts "0..*" - "1..*" Sites | ||
|
||
@enduml |
36 changes: 36 additions & 0 deletions
36
docs/src/uml-diagrams/irs-recursive/ess-bottom-up/ess_bottom_upnumber_of_hops.puml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
@startuml | ||
skinparam defaultFontName "Architects daughter" | ||
skinparam monochrome true | ||
skinparam shadowing false | ||
skinparam spacing 100 | ||
skinparam linetype ortho | ||
skinparam nodesep 250 | ||
skinparam ranksep 250 | ||
|
||
|
||
Incident_Tier3 : hop 0 | ||
Customer_Tier2 : hop 1 | ||
Customer_Tier1 : hop 2 | ||
OEM: hop 3 | ||
|
||
Incident_Tier3 : | ||
Customer_Tier2 : | ||
Customer_Tier1 : | ||
OEM : | ||
Incident_Tier3 : | ||
Customer_Tier2 : | ||
Customer_Tier1 : | ||
OEM : | ||
Incident_Tier3 : | ||
Customer_Tier2 : | ||
Customer_Tier1 : | ||
OEM : | ||
|
||
|
||
[*] -r-> Incident_Tier3 | ||
Incident_Tier3 -r-> Customer_Tier2 : increment hop++ (hop=0+1) | ||
Customer_Tier2 -r-> Customer_Tier1 : increment hop++ (hop=1+1) | ||
Customer_Tier1 -r-> OEM : increment hop++ (hop=2+1) | ||
|
||
|
||
@enduml |
Oops, something went wrong.