Difference between revisions of "Common NetMsg Exchanges"

From BRL-CAD
(list initial connect pattern)
 
(4 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 Handshake==
+
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 Handshake.
 
 
 
===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]].
 

Latest revision as of 14:25, 28 March 2011

This whole page needs to be redone with flow charts!

Initial handshake:

  • Server sends [GS Remote Nodename Set]
  • Client sends [GS Remote Nodename Set]
  • Client sends [NewSessionReqMsg] (login/passwd)
  • Server sends [SessionInfoMsg] (uuid of session)

Now ready to process