This sequence diagram shows the most important functions as being called
between a UIPM, UCH, TDM, and TA, when a new target is being discovered and,
later, disappears again. Note that indentation reflects nesting of calls.
General remark:
- For simplicity, we assume that the UCH object itself is the
UIPMListener, TDMListener and TAListener. In general, these might be
separate objects.
Sequence of actions:
- A TDM is loaded (implementation-specific)
- UCH calls TDM: void init(ITDMListener tdmListener, Map tdmProps, Map
uchProps)
- UCH calls TDM: void startDiscovery()
- TDM now constantly looking for new and disappearing targets.
- TDM calls UCH: string targetDiscovered(Map targetProps, Map
taProps)
- TA is loaded for the target discovered. Note that the UCH may delay the
instantiation of the TA until it gets an open session request from a UIPM
for that target.
- UCH calls TA: void init(ITAListener listener, Map taProps, Map
uchProps)
- TA calls UCH: boolean setValidation(ITA ta, boolean
activate)
- UCH calls TA: void registerTarget(string targetId, Map
targetProps)
- A UIPM gets loaded when it fits the set of available targets. See
diagram on session management below for details.
- UCH calls UIPM: void init(IUIPMListener uipmListener, Map
uipmProps, Map uchProps)
- UCH calls UIPM: void targetDiscovered(string targetId)
- TDM remembers the returned targetId.
- TA representing target. See Session Management diagram below.
- TDM calls UCH: void targetDiscarded(string targetId)
- UCH calls UIPM: void targetDiscarded(string targetId)
- UIPM calls UCH: void removeUIPM(IUIPM uipm)
- UCH calls UIPM: void finalize()
- UIPM is unloaded.
- UCH calls TA: void unregisterTarget(string targetId)
- TA calls UCH: void removeTA(ITA ta)
- TA is unloaded.
- UCH calls TDM: void stopDiscovery()
- TDM calls UCH: void removeTDM(ITDM tdm)
- UCH calls TDM: void finalize()
- TDM is unloaded.