This sequence diagram shows the most important functions as being called
between a UIPM, UCH, and TA, with regard to opening and closing a control
session. Note that indentation reflects nesting of calls.
General remark:
- For simplicity, we assume that the UCH object itself is the
UIPMListener and TAListener. In general, these might be separate
objects.
Sequence of actions:
- A TA is loaded and registered with one or multiple targets. For details
see diagram on Target Discovery above.
- A UIPM is loaded, initialized and receives notifications on discovered
and discarded targets. For details see diagram on Target Discovery
above.
- UCH calls TA: string getTargetName(string targetId)
- UCH calls TA: string[] getSocketNames(string targetName)
- UCH calls UIPM: void targetDiscovered(string targetId)
- UIPM calls UCH: string getTargetName(string targetId)
- UIPM calls UCH: string[] getSocketNames(string targetName)
- UIPM calls UCH: string startUriService(IUIPM uipm, string scheme,
int port, boolean portIsFlexible, string basePath, boolean
basePathIsFlexible)
- UIPM calls UCH: boolean addCompatibleUI(string targetId, string[]
socketNames, string protocolShortName, string[] uris, Map
protocolInfo)
- UCH receives a request from a controller with the UIPM's base URI.
- UCH calls UIPM: controllerRequest(Object request, Object response)
- UIPM calls UCH: Map openSessionRequest(string targetId, string
socketName, Map clientProps)
- UCH calls TA: Map openSessionRequest(string targetId, string
socketName, Map clientProps)
- UCH calls TA: void sessionOpened(string targetId, string
sessionIds, string socketName, Map clientProps)
- Note on UIPM: Any kind of activities on the session may occur. See
diagram under Open Session Activities below.
- Note on UCH: UCH dispatches activities on the open session between UIPM
and TA.
- Note on TA: TA maintains open session. See diagram under Open Session
Activities below.
- UIPM calls UCH: long suspendSession(string sessionIds, long
suggestedTimeout)
- UCH calls TA: boolean suspendSessionRequest(string sessionIds)
- UCH calls TA: long sessionSuspended(string sessionIds, long
suggestedTimeout)
- Note on UIPM: No activities while the session is suspended.
- Note on UCH: No activities on suspended session.
- Note on TA: Session suspended during this time.
- UIPM calls UCH: boolean resumeSession(string sessionId)
- UCH calls TA: boolean resumeSessionRequest(string sessionIds)
- UCH calls TA: void sessionResumed(string sessionId)
- Note on TA: Session active again.
- Note on UCH: UCH dispatches activities between UIPM and TA.
- Note on UIPM: Any kind of activities on the active session.
- UIPM calls UCH: void closeSession(string sessionId)
- UCH calls TA: void sessionClosed(string sessionId)
- UIPM calls UCH: void removeCompatibleUI(string[] uris]
- UIPM calls UCH: void stopUriService(string uri)
- At some point, no target is registered anymore with the TA, and it is
unloaded. For details see diagram on Target Discovery above.
- At some point, the UIPM doesn't fit anymore for the available targets,
and it is unloaded. For details see diagram on Target Discovery above.