Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

These objects capture protocol endpoint state. An endpoint is an entity responsible for remembering key state for a given participant in a multi-way conversation. Connections, Sessions, and Links are all endpoints. Links track all the conversational state relating to message transfer between a specific Source and Target. There can be multiple Links established simultaneously on a single Session, and multiple Sessions established simultaneously on a single Connection, therefore each Connection endpoint may contain multiple Session endpoints, and likewise each Session endpoint may contain multiple Link endpoints At any given point in time a Connection endpoint will be associated with at most one TCP Connection (see Transport).

Every endpoint object may be in one of three states: UNINIT, ACTIVE, and CLOSED. The open(), close(), and reset() methods transition the endpoint between these states as depicted in the diagram below. Each endpoint additionally tracks the last known state of the remote endpoint.

Gliffy Diagram
nameEndpoint State

Endpoint objects are created in one of two scenarios. In the most basic case the local application directly triggers creation of an endpoint object in order to initiate the given type of conversation (Connection, Session, or Link). In other cases though, the remote application might trigger the engine to internally create a Session or Link endpoint, but not a Connection endpoint. The local and last known remote endpoint state may be used to distinguish between the various scenarios. In total there are 9 possible combinations of these states described in more detail in the table below.

LocalRemoteDescription
UNINITUNINITThis would be the initial state of an endpoint that is newly created by the local application.
UNINITACTIVEThis would be the initial state of an endpoint that was created by the engine in response to actions taken by the remote application.
UNINITCLOSED 
ACTIVEUNINIT 
ACTIVEACTIVE 
ACTIVECLOSED 
CLOSEDUNINIT 
CLOSEDACTIVE 
CLOSEDCLOSED 

 

Deliveries

Gliffy Diagram
nameLink-Delivery Object Diagram

...