| | 68 | The NodeHandler will then wait for ACKs from the NodeAgent, which will be received through the |
| | 69 | TCP socket. The communication server, after a pre-defined interval, will repeatedly send the |
| | 70 | command till it receives an ACK confirming receipt of a previously sent message from all the |
| | 71 | intended nodes. Only after all the NodeAgents have confirmed successful receipt of the |
| | 72 | command, will the NodeHandler proceed with sending the next command. |
| | 73 | |
| | 74 | }}} |
| | 75 | |
| | 76 | '''R.5:''' |
| | 77 | {{{ |
| | 78 | The communication layer will be a separate server that is running the reliable multicast |
| | 79 | protocol. It will also handle all TCP socket related functions. The IPC mechanism between this |
| | 80 | server and the NodeHandler will be implemented using pipes. When the NodeHandler wants to send |
| | 81 | a message to the NodeAgent, this message will be piped to the server which will then send the |
| | 82 | message using multicast. Again, when a message is received from the NodeAgent by this server, |
| | 83 | it will pipe this message to the NodeHandler. |
| | 84 | }}} |
| | 85 | |
| | 86 | '''R.6:''' |
| | 87 | {{{ |
| | 88 | The communication layer will keep track of whether all the NodeAgents have confirmed receipt |
| | 89 | of a message sent from the NodeHandler. Till all ACKs confirming message receipt have been |
| | 90 | received, it will keep resending the message. Once all confirmations have been received, it |
| | 91 | will request the NodeHandler to send the next message. The server will not pipe the |
| | 92 | individual ACKs and heartbeats to the NodeHandler. |
| | 93 | }}} |
| | 94 | |
| | 95 | '''R.7:''' |
| | 96 | {{{ |
| | 97 | The communication server will not pipe the heartbeats from the NodeAgents to the NodeHandler. |
| | 98 | Instead, it will keep track of these messages on a per-node basis and on detecting a breakdown |
| | 99 | in communication; it will pipe a message to the NodeHandler to issue a “HANDLER_RETRY” message. |
| | 100 | }}} |
| | 101 | |
| | 102 | '''R.8:''' |
| | 103 | {{{ |
| | 104 | To send a message to the NodeAgent, the NodeHandler will pipe this message to the |
| | 105 | communication server. This message will contain information that will inform the server |
| | 106 | whether to send the message to all the nodes or to a subset group of nodes. |
| | 107 | |
| | 108 | |
| | 109 | }}} |
| | 110 | |
| | 111 | '''R.9:''' |
| | 112 | {{{ |
| | 113 | All issues relating to scaling impacts on the decision to use TCP will be thoroughly |
| | 114 | investigated. |