1 Hyades Command Routing Message flow and data translation.

47
1 Hyades Command Routing Message flow and data translation

Transcript of 1 Hyades Command Routing Message flow and data translation.

Page 1: 1 Hyades Command Routing Message flow and data translation.

1

Hyades Command Routing

Message flow and data translation

Page 2: 1 Hyades Command Routing Message flow and data translation.

2

Purpose of this Presentation

• Test the sufficiency of the proposed command header format

• Demonstrate a possible message routing solution

• Prove that the solution is capable of handling complex routing– Multiple chained HCEs– Negotiated communication between agents

Page 3: 1 Hyades Command Routing Message flow and data translation.

3

Caveats• Connection between HCEs will not be supported in the

next release. It is being considered now only to establish the sufficiency of the proposed protocol.

• Command ID names referenced in this presentation may not match the actual command ID names. The names herein are for discussion purposes only.

• Names in parentheses are not intended as part of the data being stored/transmitted. These names are used only to indicate to what the IDs refer.

• The command headers shown are not complete. Only those fields needed to follow the data flow are shown.

• While “last engine ID” is shown as if it were a field in the command header, it can actually be inferred from the object sending the message, so it is actually implicit.

Page 4: 1 Hyades Command Routing Message flow and data translation.

4

Message Routing Rules (Part 1)• When a client or agent sends a command to an HCE, it will use the

IDs by which the HCE knows the components involved. As far as the client or agent knows or cares, these are the actual IDs of the components.

• When the HCE sends a command to a client or agent, it will use the IDs by which the sending HCE refers to the components involved.

• When an HCE forwards a command to another HCE, the destination ID will be the ID by which the target HCE refers to the destination component, but the source ID will be the ID by which the sending HCE refers to the source component. The “last engine ID” will be the ID by which the target HCE knows the sending HCE.

• When one HCE “reveals” another HCE to some component, the revealing HCE will give the revealed HCE the ID by which it refers to the component. The revealed HCE will add this component to its component table and its translation table for the revealing HCE.

Page 5: 1 Hyades Command Routing Message flow and data translation.

5

Message Routing Rules (Part 2)• When an HCE responds to a forwarded CID_QUERY_HCES

command, it will not include the HCE that forwarded the request in the response (because the requester already knows about that HCE).

• When an HCE forwards the results of a CID_QUERY_HCES command, it will add any HCEs it did not previously know about to its own component table and translate the HCE IDs to the IDs it uses to identify those HCEs.

• When an HCE forwards the results of any command that requests an agent ID, it will add any agent it did not previously know about to its own component table and translate the agent IDs to the IDs it uses to identify those agents.

Page 6: 1 Hyades Command Routing Message flow and data translation.

6

Example 1

Connections established

Page 7: 1 Hyades Command Routing Message flow and data translation.

7

1. Initial State, no connections

Page 8: 1 Hyades Command Routing Message flow and data translation.

8

2. Client connects to HCE-1

Page 9: 1 Hyades Command Routing Message flow and data translation.

9

3. Agent-1 connects to HCE-2

Page 10: 1 Hyades Command Routing Message flow and data translation.

10

4. Agent-2 connects to HCE-3

Page 11: 1 Hyades Command Routing Message flow and data translation.

11

5. HCE-1 connects to HCE-2

Page 12: 1 Hyades Command Routing Message flow and data translation.

12

6. HCE-2 connects to HCE-3

Page 13: 1 Hyades Command Routing Message flow and data translation.

13

Example 2

Client discovers agents

Page 14: 1 Hyades Command Routing Message flow and data translation.

14

1. Client queries HCE-1 for more HCEs

Page 15: 1 Hyades Command Routing Message flow and data translation.

15

2. HCE-1 notifies HCE-2

Page 16: 1 Hyades Command Routing Message flow and data translation.

16

3. HCE-1 replies to Client

Page 17: 1 Hyades Command Routing Message flow and data translation.

17

4. Client queries HCE-2 for Agent-1

Page 18: 1 Hyades Command Routing Message flow and data translation.

18

5. HCE-1 forwards the message to HCE-2

Page 19: 1 Hyades Command Routing Message flow and data translation.

19

6. HCE-2 replies

Page 20: 1 Hyades Command Routing Message flow and data translation.

20

7. HCE-1 updates tables, forwards the reply

Page 21: 1 Hyades Command Routing Message flow and data translation.

21

8. Client queries HCE-2 for more HCEs

Page 22: 1 Hyades Command Routing Message flow and data translation.

22

9. HCE-2 notifies HCE-3

Page 23: 1 Hyades Command Routing Message flow and data translation.

23

10. HCE-2 replies

Page 24: 1 Hyades Command Routing Message flow and data translation.

24

11. HCE-1 forwards the reply to the Client

Page 25: 1 Hyades Command Routing Message flow and data translation.

25

12. Client requests Agent-2

Page 26: 1 Hyades Command Routing Message flow and data translation.

26

13. HCE-3 replies

Page 27: 1 Hyades Command Routing Message flow and data translation.

27

14. HCE-2 updates, translates, forwards

Page 28: 1 Hyades Command Routing Message flow and data translation.

28

15. HCE-1 updates, translates, forwards

Page 29: 1 Hyades Command Routing Message flow and data translation.

29

Example 3

The Client requests a GUID from Agent-2

Page 30: 1 Hyades Command Routing Message flow and data translation.

30

1. Client send the command to HCE-1

Page 31: 1 Hyades Command Routing Message flow and data translation.

31

2. HCE-1 forwards the command to HCE-2

Page 32: 1 Hyades Command Routing Message flow and data translation.

32

3. HCE-2 forwards the command to HCE-3

Page 33: 1 Hyades Command Routing Message flow and data translation.

33

4. HCE-3 forwards the command to Agent-2

Page 34: 1 Hyades Command Routing Message flow and data translation.

34

5. Agent-2 sends a reply to HCE-3

Page 35: 1 Hyades Command Routing Message flow and data translation.

35

6. HCE-3 forwards the reply to HCE-2

Page 36: 1 Hyades Command Routing Message flow and data translation.

36

7. HCE-2 forwards the reply to HCE-1

Page 37: 1 Hyades Command Routing Message flow and data translation.

37

8. HCE-1 forwards the reply to the client

Page 38: 1 Hyades Command Routing Message flow and data translation.

38

Example 4

Client initiates communication between Agent-1 and Agent-2 using a proprietary interface

Page 39: 1 Hyades Command Routing Message flow and data translation.

39

1. Client sends Agent-2’s GUID to Agent-1

Page 40: 1 Hyades Command Routing Message flow and data translation.

40

2. Agent-1 queries HCE-2 for Agent-2 (fails)

Page 41: 1 Hyades Command Routing Message flow and data translation.

41

3. Agent-1 queries HCE-2 for more HCEs

Page 42: 1 Hyades Command Routing Message flow and data translation.

42

4. HCE-2 notifies, replies

Page 43: 1 Hyades Command Routing Message flow and data translation.

43

5. Agent-1 queries HCE-1 for Agent-2 (fails)

Page 44: 1 Hyades Command Routing Message flow and data translation.

44

6. Agent-1 queries HCE-3 for Agent-2

Page 45: 1 Hyades Command Routing Message flow and data translation.

45

7. HCE-3 replies

Page 46: 1 Hyades Command Routing Message flow and data translation.

46

8. Agent-1 sends a command to Agent-2

Page 47: 1 Hyades Command Routing Message flow and data translation.

47

Quod Erat Demonstradum