Technical Use Cases

 In

Revision for “Technical Use Cases” created on 29 June 2016 @ 18:46:49

Title
Technical Use Cases
Content
<h1>Overview</h1>This page captures a number of key technical use cases, and shows how the various platform services and client application components interact to realise these.<h1>Launch Experience</h1>[wsd theme="default"] <pre># https://www.websequencediagrams.com/ Title Launch and Start Experience (Intrahome TV + Comp) # v0p01 19-May-2016 jawalke2@cisco.com participant Origin/CDN as CDN participant Timeline participant Layout participant TV Client as TV participant Companion as comp note over TV: HbbTV app is running note over TV: Service endpoints discovered via service registry TV-&gt;+Layout: CreateContext (deviceId, caps) Layout--&gt;-TV: contextId note over comp: CSA is running note over comp: Service endpoints discovered via service registry note over comp,TV: DIAL Device discovery, app2app enabled... comp-&gt;+TV: getContext() TV--&gt;-comp: contextId comp-&gt;Layout: JoinContext(contextId, deviceId, caps) TV-&gt;+Layout: LoadDMApp (contextId, DMAppSpec) Layout-&gt;Layout: loadLayoutReqs(url) Layout-&gt;Timeline: createTimeline (contextId) Layout-&gt;+Timeline: loadDMAppTimeline(contextId, DMAppSpec) Timeline-&gt;-Timeline: loadTimelineDoc(url) Timeline--&gt;Layout: dmappId Layout--&gt;TV: dmappId Layout--&gt;-comp: dmappId note over Layout,TV: Client initiates websocket connection... note over Layout,comp: Client initiates websocket connection... note left of CDN Assume DMApp has media dmapc(s) defined for t=0 (e.g. video players) end note loop foreach dmapc Timeline--&gt;+Layout: initComponent(contextId, dmappId, componentId, initParams) end Layout-&gt;Layout: evaluateLayout() Layout-&gt;+comp: layoutUpdate(dmapcLayoutList) Layout-&gt;+TV: layoutUpdate(dmapcLayoutList) TV&lt;-&gt;CDN: Fetch dmapc(s) + media objects TV-&gt;TV: Instantiate Video Player dmapc TV-&gt;TV: createMediaSynchroniser() TV-&gt;TV: initMediaSynchroniser(dmap mediaObject, timelineSelector) TV-&gt;TV: enableInterDeviceSync(callback) TV-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;Timeline: dmapcStatus(contextId, dmappId, componentId, status) comp&lt;-&gt;CDN: Fetch dmapc(s) + media objects comp-&gt;comp: Instantiate Media Player dmapc comp-&gt;comp: initSyncServiceClient(css_cii_url, dmapc mediaObjectList, correlations...) comp-&gt;comp: enableSynchronisation(callbacks...) comp-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;-Timeline: dmapcStatus(contextId, dmappId, componentId, status) note left of CDN dmapc(s) report status back to Layout/Timeline (critical / non-critcal error management) end note note over Timeline: when all dmapc ready, play from t=0 loop foreach dmapc Timeline--&gt;+Layout: startComponent(contextId, dmappId, componentId, presTime) end Layout-&gt;comp: layoutUpdate(dmapcLayoutList) Layout-&gt;-TV: layoutUpdate(dmapcLayoutList) </pre> [/wsd][wsd theme="default"] <pre># https://www.websequencediagrams.com/ Title Launch and Start Experience (Intrahome TV only) # v0p01 28-June-2016 jawalke2@cisco.com participant Origin/CDN as CDN participant Timeline participant Layout participant TV Client as TV note over TV: HbbTV app is running note over TV: Service endpoints discovered via service registry TV-&gt;+Layout: CreateContext (deviceId, caps) Layout--&gt;-TV: contextId TV-&gt;+Layout: LoadDMApp (contextId, DMAppSpec) Layout-&gt;Layout: loadLayoutReqs(url) Layout-&gt;Timeline: createTimeline (contextId) Layout-&gt;+Timeline: loadDMAppTimeline(contextId, DMAppSpec) Timeline-&gt;-Timeline: loadTimelineDoc(url) Timeline--&gt;Layout: dmappId Layout--&gt;-TV: dmappId note over Layout,TV: Client initiates websocket connection... note left of CDN Assume DMApp has media dmapc(s) defined for t=0 (e.g. video players) end note loop foreach dmapc Timeline--&gt;+Layout: initComponent(contextId, dmappId, componentId, initParams) end Layout-&gt;Layout: evaluateLayout() Layout-&gt;+TV: layoutUpdate(dmapcLayoutList) TV&lt;-&gt;CDN: Fetch dmapc(s) + media objects TV-&gt;TV: Instantiate Video Player dmapc TV-&gt;TV: createMediaSynchroniser() TV-&gt;TV: initMediaSynchroniser(dmap mediaObject, timelineSelector) TV-&gt;TV: enableInterDeviceSync(callback) TV-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;-Timeline: dmapcStatus(contextId, dmappId, componentId, status) note left of CDN dmapc(s) report status back to Layout/Timeline (critical / non-critcal error management) end note note over Timeline: when all dmapc ready, play from t=0 loop foreach dmapc Timeline--&gt;+Layout: startComponent(contextId, dmappId, componentId, presTime) end Layout-&gt;-TV: layoutUpdate(dmapcLayoutList) </pre> [/wsd]<h1>Add Companion Device</h1>[wsd theme="default"] <pre># https://www.websequencediagrams.com/ Title Add Companion Device (Intrahome TV only) # v0p01 19-May-2016 jawalke2@cisco.com participant Origin/CDN as CDN participant Timeline participant Layout participant TV Client as TV participant Companion as comp note over TV,comp: HbbTV app and CSA are running note over TV,comp: Service endpoints discovered via service registry note over comp,TV: DIAL Device discovery, app2app enabled... note over Timeline,comp: DMApp is running (see 'Launch and Start Experience (Intrahome TV only)') comp-&gt;+TV: getContext() TV--&gt;-comp: contextId comp-&gt;Layout: JoinContext(contextId, deviceId, caps) Layout-&gt;Layout: evaluateLayout() note over Layout: some dmapc's migrate to CSA...Layout-&gt;+TV: layoutUpdate(dmapcLayoutList) TV-&gt;Layout: saveDmapcState(contextId, dmappId, componentId) note over Layout,TV: Tear down timeline sync... TV-&gt;TV: remove Dmapc TV-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;Timeline: dmapcStatus(contextId, dmappId, componentId, status)Layout-&gt;+comp: layoutUpdate(dmapcLayoutList) comp&lt;-&gt;CDN: Fetch dmapc(s) + media objects comp-&gt;comp: Instantiate dmapc comp-&gt;Layout: restoreDmapcState(contextId, dmappId, componentId) Layout-&gt;comp: dmapcState note over Layout,comp: Re-establish timeline sync... comp-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;-Timeline: dmapcStatus(contextId, dmappId, componentId, status) </pre> [/wsd] <h1>User Initiates Layout Change</h1>[wsd theme="default"] <pre># https://www.websequencediagrams.com/ Title User Initiates Layout Change (Intrahome TV + Comp) # v0p01 29-June-2016 jawalke2@cisco.com participant Origin/CDN as CDN participant Timeline participant Layout participant TV Client as TV participant Companion as comp note over TV,comp: HbbTV app and CSA are running note over TV,comp: Service endpoints discovered via service registry note over Timeline,comp: DMApp is running (see 'Launch and Start Experience')note over Layout,comp: Move component from TV to companion... comp--&gt;+Layout: moveComponent(contextId, dmappId, componentId, targetDeviceId) Layout-&gt;Layout: evaluateLayout()Layout-&gt;+TV: layoutUpdate(dmapcLayoutList) TV-&gt;Layout: saveDmapcState(contextId, dmappId, componentId) note over Layout,TV: Tear down timeline sync... TV-&gt;TV: remove Dmapc TV-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;Timeline: dmapcStatus(contextId, dmappId, componentId, status)Layout-&gt;+comp: layoutUpdate(dmapcLayoutList) comp&lt;-&gt;CDN: Fetch dmapc(s) + media objects comp-&gt;comp: Instantiate dmapc comp-&gt;Layout: restoreDmapcState(contextId, dmappId, componentId) Layout-&gt;comp: dmapcState note over Layout,comp: Re-establish timeline sync... comp-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;-Timeline: dmapcStatus(contextId, dmappId, componentId, status) </pre> [/wsd]<h1>Timeline Event</h1>[wsd theme="default"] <pre># https://www.websequencediagrams.com/ Title Timeline Events (Intrahome TV + Comp) # v0p01 19-May-2016 jawalke2@cisco.com participant Origin/CDN as CDN participant Timeline participant Layout participant TV Client as TV participant Companion as comp note over TV,comp: HbbTV app and CSA are running note over TV,comp: Service endpoints discovered via service registry note over Timeline,comp: DMApp is running (see 'Launch and Start Experience') loop foreach timeline event note left of CDN Event adds additional media dmapc(s)... end note Timeline--&gt;+Layout: initComponent(contextId, dmappId, componentId, initParams) Layout-&gt;Layout: evaluateLayout() Layout-&gt;+comp: layoutUpdate(dmapcLayoutList) Layout-&gt;+TV: layoutUpdate(dmapcLayoutList) TV&lt;-&gt;CDN: Fetch dmapc(s) + media objects TV-&gt;TV: Instantiate Media Player dmapc TV-&gt;TV: addMediaObject(new dmapc mediaObject, timelineSelector, correlerationTimestamp) TV-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;Timeline: dmapcStatus(contextId, dmappId, componentId, status) Timeline--&gt;Layout: startComponent(contextId, dmappId, componentId, presTime) Layout-&gt;TV: layoutUpdate(dmapcLayoutList) comp&lt;-&gt;CDN: Fetch dmapc(s) + media objects comp-&gt;comp: Instantiate Media Player dmapc comp-&gt;comp: addMediaObject(new dmapc mediaObject, timelineSelector, correlerationTimestamp) comp-&gt;-Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;-Timeline: dmapcStatus(contextId, dmappId, componentId, status) Timeline--&gt;Layout: startComponent(componentId, presTime) Layout-&gt;comp: layoutUpdate(dmapcLayoutList) end </pre> [/wsd]<h1>Tear Down Experience</h1>[wsd theme="default"] <pre># https://www.websequencediagrams.com/ Title Tear Down Experience (Intrahome TV + Comp) # v0p01 19-May-2016 jawalke2@cisco.com participant Origin/CDN as CDN participant Timeline participant Layout participant TV Client as TV participant Companion as comp note over TV,comp: HbbTV app and CSA are running note over TV,comp: Service endpoints discovered via service registry note over Timeline,comp: DMApp is running (see 'Launch and Start Experience') note left of CDN optionally stop end note TV-&gt;Timeline: play(DMAppId, 0)note left of CDN Tear down... end note TV-&gt;Layout: UnloadDMApp(dmappId, contextId) Layout-&gt;+Timeline: UnloadDMAppTimeline(dmappId, contextId) loop foreach dmapc Timeline--&gt;+Layout: stopComponent(contextId, dmappId, componentId, presTime) end Layout-&gt;Layout: evaluateLayout() Layout-&gt;+comp: layoutUpdate(empty) Layout-&gt;+TV: layoutUpdate(empty) loop foreach removed dmapc TV-&gt;TV: removeMediaObject(dmapc mediaObject) TV-&gt;Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;Timeline: dmapcStatus(contextId, dmappId, componentId, status) end TV-&gt;-TV: disableInterDeviceSync(callback) loop foreach removed dmapc comp-&gt;comp: removeMediaObject(dmapc mediaObject) comp-&gt;Layout: dmapcStatus(contextId, dmappId, componentId, status) Layout-&gt;Timeline: dmapcStatus(contextId, dmappId, componentId, status) end comp-&gt;-comp: disableSynchronisation(callbacks) TV-&gt;Layout: DestroyContext(contextId) Layout-&gt;Timeline: DestroyTimeline(contextId) </pre> [/wsd]
Excerpt
Markdown content


OldNewDate CreatedAuthorActions
29 June 2016 @ 18:46:49James Walker
29 June 2016 @ 18:40:54James Walker
29 June 2016 @ 18:40:02James Walker
29 June 2016 @ 18:37:24James Walker
29 June 2016 @ 18:34:43James Walker
29 June 2016 @ 18:32:55James Walker
29 June 2016 @ 18:19:55James Walker
8 June 2016 @ 13:59:07James Walker
8 June 2016 @ 13:54:59James Walker
2 June 2016 @ 20:56:13James Walker
2 June 2016 @ 20:53:32James Walker
2 June 2016 @ 20:53:15 [Autosave]James Walker
2 June 2016 @ 20:44:17James Walker
2 June 2016 @ 20:38:17James Walker
2 June 2016 @ 18:33:42Ian Kegel
2 June 2016 @ 18:33:31 [Autosave]Ian Kegel
2 June 2016 @ 18:30:59Ian Kegel
2 June 2016 @ 18:27:59Ian Kegel
28 April 2016 @ 13:44:53James Walker
28 April 2016 @ 13:05:24James Walker
Recent Posts
Contact Us

We're not around right now. But you can send us an email and we'll get back to you, asap.

Not readable? Change text. captcha txt

Start typing and press Enter to search