You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sequenceDiagram
Note over CA,N1: Name "CA" is still free
participant N1 as N1.COORDINATOR
CA ->> N1: V|COORDINATOR|CA|H|SIGNIN
Note right of N1: Connection identity "IA"
Note right of N1: Stores "CA" with identity "IA"
N1 ->> CA: V|N1.CA|N1.COORDINATOR|H|ACKNOWLEDGE: Namespace is "N1"
Note left of CA: Stores "N1" as Namespace
Note over CA,N1: Name "CA" is already used
CA ->> N1: V|COORDINATOR|CA|H|SIGNIN
N1 ->> CA: V|CA|N1.COORDINATOR|H|ERROR: Name "CA" is already used.
Note left of CA: May retry with another Name
Note over CA,N1: "CA" has not send SIGNIN
Note left of CA: Wants to send a message to CB
CA ->> N1: V|N1.CB|CA|H|Content
Note right of N1: Does not know CA
N1 ->> CA: V|CA|N1.COORDINATOR|H|ERROR:I do not know you
Note left of CA: Should send a SIGNIN message
Loading
Sign out
sequenceDiagram
CA ->> N1: V|COORDINATOR|N1.CA|H|SIGNOUT
participant N1 as N1.COORDINATOR
N1 ->> CA: V|N1.CA|N1.COORDINATOR|H|ACKNOWLEDGE
Note right of N1: Removes "CA" with identity "IA"<br> from directory
Note left of CA: Shall not send any message anymore except SIGNIN
Loading
Communication with Components
sequenceDiagram
alt full name
CA ->> N1: V|N1.CB|N1.CA|H| Give me property A.
else only Component name
CA ->> N1: V|CB|N1.CA|H| Give me property A.
end
participant N1 as N1.COORDINATOR
N1 ->> CB: V|N1.CB|N1.CA|H| Give me property A.
Note left of CB: Reads property A
CB ->> N1: V|N1.CA|N1.CB|H| Property A has value 5.
N1 ->> CA: V|N1.CA|N1.CB|H| Property A has value 5.
Loading
sequenceDiagram
CA ->> N1: V|N2.CB|N1.CA|H| Give me property A.
participant N1 as N1.COORDINATOR
Note over N1,N2: N1 DEALER socket sends to N2 ROUTER
participant N2 as N2.COORDINATOR
N1 ->> N2: V|N2.CB|N1.CA|H| Give me property A.
N2 ->> CB: V|N2.CB|N1.CA|H| Give me property A.
Note left of CB: Reads property A
CB ->> N2: V|N1.CA|N2.CB|H| Property A has value 5.
Note over N1,N2: N2 DEALER socket sends to N1 ROUTER
N2 ->> N1: V|N1.CA|N2.CB|H| Property A has value 5.
N1 ->> CA: V|N1.CA|N2.CB|H| Property A has value 5.
Loading
flowchart TB
C1([N1.CA DEALER]) == "V|nR.recipient|nS.CA|H|Content" ==> R0
C0([nS.COORDINATOR DEALER]) == "V|nR.recipient|nS.CA|H|Content" ==> R0
R0[receive] == "iA|V|nR.recipient|nS.CA|H|Content" ==> CnS{nS == N1?}
CnS-->|no| RemIdent
CnS-->|yes| Clocal{CA in <br>local directory?}
Clocal -->|yes| CidKnown{iA is CA's identity<br> in directory?}
CidKnown -->|yes| RemIdent
Clocal -.->|no| E1[ERROR: Sender unknown] ==>|"iA|V|nS.CA|N1.COORDINATOR|H|ERROR: Sender unknown"| S
S[send] ==> WA([N1.CA DEALER])
CidKnown -.->|no| E2[ERROR: Name and identity do not match]==>|"iA|V|nS.CA|N1.COORDINATOR|H|ERROR: Name and identity do not match"| S
RemIdent[remove sender identity] == "V|nR.recipient|nS.CA|H|Content" ==> CnR
CnR -- "is None" --> Local
CnR{nR?} -- "== N1"--> Local
Local{recipient<br>==<br>COORDINATOR?} -- "yes" --> Self[Message for Co1<br> itself]
Self == "V|nR.recipient|nS.CA|H|Content" ==> SC([Co1 Message handling])
Local -- "no" --> Local2a{recipient in directory?}
Local2a -->|yes, with Identity iB| Local2
Local2[add recipient identity iB] == "iB|V|nR.recipient|nS.CA|H|Content" ==> R1[send]
R1 == "V|nR.recipient|nS.CA|H|Content" ==> W1([Wire to N1.recipient DEALER])
Local2a -.->|no| E3[ERROR recipient unknown<br>send Error to original sender] ==>|"V|nS.CA|N1.COORDINATOR|H|ERROR N1.recipient is unknown"|CnR
CnR -- "== N2" --> Keep
Keep[send to N2.COORDINATOR] == "V|nR.recipient|nS.CA|H|Content" ==> R2[send]
R2 == "V|nR.recipient|nS.CA|H|Content" ==> W2([Wire to N2.COORDINATOR ROUTER])
subgraph Co1 ROUTER socket
R0
end
subgraph Co1 ROUTER socket
R1
S
end
subgraph Co1 DEALER socket <br>to N2.COORDINATOR
R2
end
Loading
Coordinator-Coordinator communication
sequenceDiagram
participant r1 as ROUTER
participant d1 as DEALER
participant r2 as ROUTER
participant d2 as DEALER
Note over r1,d1: N1 Coordinator<br>at address1
Note over r2,d2: N2 Coordinator<br>at address2
Note over r1,d2: Sign in between two Coordinators
Note right of r1: shall connect<br>to address2
activate d1
Note left of d1: created with<br> name "temp-NS"
d1-->>r2: connect to address2
d1->>r2: V|COORDINATOR|N1.COORDINATOR|H|<br>CO_SIGNIN
Note right of r2: stores N1 identity
r2->>d1: V|N1.COORDINATOR|N2.COORDINATOR|H|ACK
Note left of d1: DEALER name <br>set to "N2"
d1->>r2: V|N1.COORDINATOR|N2.COORDINATOR|H|<br>Here is my local directory
Note right of r2: Updates global <br>Directory and signs <br>in to all unknown<br>Coordinators,<br>also N1
Note over d1,r2: Mirror of above sign-in procedure
activate d2
Note left of d2: created with<br>name "N1"
d2-->>r1: connect to address1
d2->>r1: V|COORDINATOR|N2.COORDINATOR|H|<br>CO_SIGNIN
Note right of r1: stores N2 identity
r1->>d2: V|N2.COORDINATOR|N1.COORDINATOR|H|ACK
Note left of d2: Name is already "N1"
d2->>r1: V|N2.COORDINATOR|N1.COORDINATOR|H|<br>Here is my local directory
Note right of r1: Updates global <br>Directory and signs <br>in to all unknown<br>Coordinators
Note over r1,d2: Sign out between two Coordinators
Note right of r1: shall sign out from N2
d1->>r2: CO_SIGNOUT
Note right of r2: removes N1 identity
d2->>-r1: CO_SIGNOUT
Note right of r1: removes N2 identity
deactivate d1
Loading
The text was updated successfully, but these errors were encountered:
Mermaid diagrams for #38
ROUTER socket
Sign in
Sign out
Communication with Components
Coordinator-Coordinator communication
The text was updated successfully, but these errors were encountered: