|
|
Line 1: |
Line 1: |
− | {{DesignDocument}}
| + | This whole page needs to be redone with flow charts! |
− | | |
− | ==Inter-Application Connect==
| |
− | This sequence of [[IBME_GeometryService#NetMsg_Class|NetMsg]] exchanges represents the communications between an external application (App M) attempting to connect to a running Geometry Service (App GS). This sequence assumes success. | |
− | | |
− | ===Main Sequence===
| |
− | # App GS waits for incoming socket requests.
| |
− | # App M creates a socket connection to App GS.
| |
− | # App GS accepts the socket connection.
| |
− | # App M and App GS are now connected at the socket level.
| |
− | # App M sends a [[RemHostNameSET]] [[IBME_GeometryService#NetMsg_Class|NetMsg]] to App GS.
| |
− | # App GS checks its RemHostName list for duplicates. '''(Alt #1)'''
| |
− | # App GS sends a [[RemHostNameSETOK]] [[IBME_GeometryService#NetMsg_Class|NetMsg]] to App M.
| |
− | # App GS sends a [[RemHostNameSET]] [[IBME_GeometryService#NetMsg_Class|NetMsg]] to App M.
| |
− | # App GS waits for App M to send a [[RemHostNameSETOK]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− | # App M sends a [[RemHostNameSETOK]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− | # App M is now connected to the Geometry Service network.
| |
− | # App M sends a [[NewSessionREQ]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− | # App GS creates a new Session.
| |
− | # App GS sends a [[NewSessionREQOK]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− | | |
− | ===Alt Sequence #1===
| |
− | :6a. App GS finds that the incoming Host is already on the HostList. Either a duplicate name, or a duplicate connection.
| |
− | :6b. App GS sends App M a [[RemHostNameSETFAIL]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− | :6c. App GS drops socket connection to App M.
| |
− | :6d. App M drops socket connection to App GS.
| |
− | | |
− | | |
− | ==Request For Geometry==
| |
− | This sequence of [[IBME_GeometryService#NetMsg_Class|NetMsg]] exchanges represents the communications between an external application (App M) as it requests Geometry from the Geometry Service (App GS). This sequence assumes success and that both App M and App GS have completed the Inter-Application Connect.
| |
− | | |
− | ===Main Sequence===
| |
− | # App M sends a [[GeometryREQ]] [[IBME_GeometryService#NetMsg_Class|NetMsg]] to App GS.
| |
− | # App GS finds the request Geometry. '''(Alt #1)'''
| |
− | # App GS sends App M a [[GeometryMANIFEST]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− | # App GS sends App M as many [[GeometryCHUNK]] [[IBME_GeometryService#NetMsg_Class|NetMsgs]] as required in order to fulfill the [[GeometryMANIFEST]].
| |
− | | |
− | ===Alt Sequence #1===
| |
− | :2a. App GS does NOT find requested Geometry.
| |
− | :2b. App GS sends App M a [[GeometryREQFAIL]] [[IBME_GeometryService#NetMsg_Class|NetMsg]].
| |
− |
| |
− |
| |
− | | |
− | ==Inter-Application Disconnect==
| |
− | This sequence of [[IBME_GeometryService#NetMsg_Class|NetMsg]] exchanges represents the communications between an external application (App M) and a Geometry Service (App GS) during a disconnect event. The disconnect event can be generated by either side as the effect will be the same. This sequence assumes success and that App M initiates the disconnect event.
| |
− | | |
− | ===Main Sequence===
| |
− | # App M prepares all data for an impending disconnect event.
| |
− | # App M sends a [[DisconnectREQ]] [[IBME_GeometryService#NetMsg_Class|NetMsgs]] to App GS.
| |
− | # App GS receives the [[DisconnectREQ]]
| |
− | # App GS prepares all of its data for an impending disconnect event.
| |
− | # App GS commands the [[IBME_GeometryService#ConnectionManager_Class|ConnectionManager]] to close the appropriate socket.
| |
− | # App M detects the closed socket.
| |
− | # App M and App GS are disconnected.
| |