Difference between revisions of "Common NetMsg Exchanges"

From BRL-CAD
(This whole page needs to be redone with flow charts!)
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.
 

Revision as of 14:46, 26 January 2011

This whole page needs to be redone with flow charts!