| 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. |