This sequence diagram shows the interaction between a UCH, TA and UIPM
during an open 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, initialized and a target registered (see diagram on
Target Discovery above). A session is opened (see diagram on Session
Management above).
- A UIPM is loaded, and opens a session. See diagram on Session
Management above.
Part A: UIPM asks for labels and values
- UIPM calls UCH: Map[] getResources(string sessionId, Map[] resProps)
- UCH retrieves resources from local or remote locations. Caching may
occur.
- UCH calls TA (only if dynamic resources are involved): Map[]
getDynRes(string sessionId, Map[] resProps)
- UIPM displays labels.
- UIPM calls UCH: Map getValues(string sessionId, string[] paths)
- UCH calls TA: Map getValues(string sessionId, string[] paths)
- UIPM displays values.
Part B: Target updates values
- Target changes state, triggered by some events.
- TA calls UCH: void updateValues(string[] sessionIds, string[] paths,
string[] operations, string[] values, boolean[] hasDynRes)
- UCH calls UIPM: void updateValues(string[] sessionIds, string[]
paths, string[] operations, string[] values, boolean[] hasDynRes)
- UIPM calls UCH: Map[] getResources(string sessionId, Map[]
resProps)
- UCH calls TA: Map[] getResources(string sessionId, Map[]
resProps)
- UIPM displays new values (and labels if dynamic resources are
involved).
Part C: UIPM sets values and/or invokes commands
- UIPM calls UCH: Map setValues(string sessionId, string[] paths,
string[] operations, string[] reqValues)
- UCH calls TA: Map setValuesRequest(string sessionId, boolean
isValidated, string[] paths, string[] operations, string[]
reqValues)
- UIPM displays new values triggered by the request.
Part D: Notification raised by target and acknowledged by UIPM
- Target wants to notify the user about something.
- TA sets the notification's state to "active" by calling updateValues on
UCH: void updateValues(string[] sessionIds, string[] paths, string[]
operations, string[] values, boolean[] hasDynRes)
- UCH calls UIPM: void updateValues(string[] sessionIds, string[]
paths, string[] operations, string[] values, boolean[] hasDynRes)
- UIPM displays notification to the user. If explicit
acknowledgement is requested, the UIPM prompts the user to
acknowledge. In any case, the UIPM sends an acknowledgment to the
target.
- UIPM acknowledges notification by calling setValuesRequest on
UCH: Map setValues(string sessionId, string[] paths, string[]
operations, string[] reqValues)
- UCH calls TA: Map setValues(string sessionId, string[]
paths, string[] operations, string[] reqValues)
- UIPM closes notification display.