|
|
(2 intermediate revisions by one other user not shown) |
Line 1: |
Line 1: |
− | {{DesignDocument}}
| + | This whole page needs to be redone with flow charts! |
| | | |
− | ==Application Interconnect Connect==
| + | Initial handshake: |
− | 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.
| + | * Server sends [GS Remote Nodename Set] |
| + | * Client sends [GS Remote Nodename Set] |
| + | * Client sends [NewSessionReqMsg] (login/passwd) |
| + | * Server sends [SessionInfoMsg] (uuid of session) |
| | | |
− | ===Main Sequence===
| + | Now ready to process |
− | # 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.
| |
− | | |
− | | |
− | ==Application 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 Application Interconnect 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]].
| |
− |
| |
− |
| |
− | | |
− | ==Application Interconnect 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.
| |