Methods and apparatuses for streaming data

A server-based method and system for secure streaming of application and user input data from communication devices to IODs, addressing the lack of control over projected content and enhancing security and efficiency.

WO2025206988A1PCT designated stage Publication Date: 2025-10-02TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/SE2024/050268
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-25
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing solutions for projecting content from a communication device to an IOD result in either full access to the IOD or visibility of user privacy information, lacking control over non-static content, which can be disadvantageous in public settings.

Method used

A server-based method and system that enables secure streaming of application data and user-related input data, allowing control over what content is projected by initiating and stopping sessions based on predefined criteria.

Benefits of technology

Enhances security and control over projected content by enabling secure streaming and session management, preventing unauthorized access and improving energy efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure SE2024050268_02102025_PF_FP_ABST
    Figure SE2024050268_02102025_PF_FP_ABST
Patent Text Reader

Abstract

A method performed by a server (120). The method comprising receiving (210) first information for initiating a first verification, upon successful first verification based at least on parts of the first information, starting (220) a session, during the session: receiving (230) application data, from a first communication device of a first user (100), related to an application running on the first communication device; executing (240) a server-based application using the application data, streaming (250) output data of the application and / or the server-based application to an input output device, IOD (130) controlled by the server, obtaining (260) user-related input data from the IOD and / or the first communication device, wherein the user-related input data is configured to update the output data; in response to obtaining at least one criterion, stopping (270) the session. Further there is a first communication device (110) related method, a server and a first communication device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHODS AND APPARATUSES FOR STREAMING DATA

[0002] TECHNICAL FIELD

[0003] The present disclosure relates to a server, a first communication device and methods performed by the server and the first communication device. Related computer programs and computer readable storage mediums are also disclosed.

[0004] BACKGROUND

[0005] The market for communication devices is driven by the desire to provide users with ever more advanced communication. Use cases such as the projection of user content onto a display unit e.g., larger screens or a seamless transfer of content between devices, seek to integrate a greater variety of projection possibilities.

[0006] For example, mirroring enables the projection and / or duplication of content associated with a communication device onto an input-output device (IOD). Mirroring comprises executing at least one application and / or operating system tools for projection and / or duplication using protocols, such as casting protocols.

[0007] Airplay. Use AirPlay with Apple devices [online], Apple 2021 [retrieved on 2024-01- 05] Retrieved from https: / / support.apple.com / en- gb / guide / deployment / dep9151c4ace / web., for example, refers to a streaming protocol used for mirroring. The Airplay streaming protocol uses multicast traffic to advertise the capabilities of services such as the Airplay capability. lODs and communication devices using Airplay for mirroring are required to be on the same Internet Protocol (IP) subnet, as multicast traffic is not routed across subnets. In addition, communication devices and / or lODs can broadcast the capabilities of services via Bluetooth or via peer-to-peer discovery. In order to provide Airplay and simultaneously offer existing Internet services, communication devices and lODs using Airplay must simultaneously switch between temporary networks and infrastructure networks.

[0008] A user terminal emulation server such as a cloudphone integrates sets of IOD devices that are proximately located to users to logically form virtualized user terminals providing communication services. A cloudphone system may be implemented to run in a cloud, wherein display units are connected to the cloud system.

[0009] WO2023208354A1 refers to a user terminal emulation server establishes a secure channel connection with a first I / O user device using a session identifier and an identifier associated with the first I / O user device to determine a first I / O user device specific key generated from a master key, the first I / O user device specific key and the session identifier being used for secure communication of messages with the first I / O user device. An indication of an I / O user interface capability of the first I / O user device is received through the secure channel connection with the first I / O user device. The user terminal emulation server communicates with the first I / O user device to use the I / O user interface capability to provide at least part of the communication service for a user.

[0010] Existing solutions for projecting content from a communication device of a user to an IOD result in either the user having full access to the IOD or the user's privacy information being visible on the IOD. In the use case of an IOD being in public, this can be disadvantageous as the owner of the IOD may wish to restrict the content visible on the IOD, where the user may wish to control the extent to which the user's privacy information is displayed. One solution in prior art provides a proprietary IOD that enables static information to be presented based on a user identity of the user, for example using a device to authenticate the user. Hence, there is a need for increased control in the projection and / or duplication of non-static content such as application data or user related input data between the communication device and the IOD.

[0011] SUMMARY

[0012] An object of the invention is to enable higher security in streaming.

[0013] A first aspect of the invention relates to a method performed by a server comprising receiving first information for initiating a first verification, upon successful first verification based at least on parts of the first information, starting a session, during the session, receiving application data, from a first communication device of a first user, related to an application running on the first communication device, executing a server-based application using the application data, streaming output data of the application and / or the server-based application to an input output device, IOD obtaining user-related input data from the IOD and / or the first communication device, wherein the user-related input data is configured to update the output data, in response to obtaining at least one criterion, stopping the session. Thereby, a disaggregated mode of the application is enabled in a secure way.

[0014] A second aspect of the invention relates to a method performed by a first communication device of a first user comprising during a session sending application data, related to an application running on the first communication device, to a server, sending, to the server and / or receiving, from the server, user-related input data; and in response to obtaining at least one criterion, initiating stopping the session. Thereby, the first communication device is enabled to disaggregate the application.

[0015] A third aspect of the invention relates to a server configured to receive first information for initiating a first verification, upon successful first verification based at least on parts of the first information, start a session, during the session: receive application data, from a first communication device of the first user, related to an application running on the first communication device, execute a server-based application using the application data, stream output data of the application and / or the server-based application to an input output device, IOD, obtain user-related input data from the IOD and / or the first communication device, wherein the user-related input data is configured to update the output data in response to obtaining at least one criterion, stop the session.

[0016] A fourth aspect of the invention relates to a server, comprising a processor and a memory, the memory containing instructions executable by the processor whereby the first server is configured to: receive first information for initiating a first verification, upon successful first verification based at least on parts of the first information, start a session, during the session: receive application data, from a first communication device of the first user, related to an application running on the first communication device, execute a server-based application using the application data, stream output data of the application and / or the server-based application to an input output device, IOD, obtain user-related input data from the IOD and / or the first communication device, wherein the user-related input data is configured to update the output data, in response to obtaining at least one criterion, stop the session.

[0017] A fifth aspect of the invention relates to a first communication device configured to: during a session: send application data, related to an application running on the first communication device, to a server, send, to the server and / or receive, from the server, user-related input data, and in response to obtaining at least one criterion, initiate stopping the session.

[0018] A sixth aspect of the invention relates to a first communication device, comprising a processor and a memory, the memory containing instructions executable by the processor whereby the first server is configured to: during a session: send application data, related to an application running on the first communication device, to a server, send, to the server and / or receive, from the server, user-related input data, and in response to obtaining at least one criterion, initiate stopping the session.

[0019] A seventh aspect of the invention relates to a computer program comprising instructions which, when executed on at least one processor of a server, cause the at least one processor of the server to carry out the method according the first aspect or any embodiment of the first aspect; and / or at least one processor of a first communication device, cause the at least one processor of the first communication device to carry out the method according to the second aspect or any embodiment of the second aspect.

[0020] An eighth aspect of the invention relates to a tangible, non-transitory-computer- readable medium comprising instructions that, when executed on at least one processor of a server, cause the at least one processor of the server to carry out the method according to the first aspect or any embodiment of the first aspect; and / or at least one processor of a first communication device, cause the at least one processor of the first communication device to carry out the method according to the second aspect or any embodiment of the second aspect. According to an embodiment of the first aspect, the method comprises obtaining the at least one criterion, wherein the at least one criterion comprises at least one of: receiving a notification to stop obtaining user-related input data, receiving a notification to stop streaming output data, receiving a notification to stop executing the server-based application, obtaining an indication that the application has been closed, obtaining an indication that a server-based application has been closed, reaching a first timer threshold, receiving a notification that a second timer threshold has been reached; and / or receiving second information for initiating a second verification, wherein the second information comprises an identity of the IOD. Thereby, the server may be triggered to stop the session when at least one criterion is met.

[0021] According to an embodiment of the first aspect, stopping the session comprises at least one of: sending, to the IOD, a notification to delete the output data, stopping the receiving of user-related input data, stopping streaming, stopping the executing of the server-based application on the server, sending, to the IOD a notification to stop sending user-related input data, sending, to the first communication device, a notification to stop sending user-related input data, sending, to the IOD, a notification that the server-based application has been closed, sending, to the first communication device, a notification that the server-based application has been closed, sending, to the first communication device, a notification that a first timer threshold has been reached, disconnecting from the IOD; and / or disconnecting from the first communication device. Thereby, the IOD and / or first communication device is enabled to be informed of stopping the session and react upon.

[0022] According to an embodiment of the first aspect, receiving the first information comprises receiving the first information from the IOD and / or from the first communication device.

[0023] According to an embodiment of the first aspect and / or the second aspect, the first information comprises at least one of: an identity of the first user, an identity of the IOD, an identity of an application session, an identity of the first communication device, user data associated to at least one configuration associated to the first user, user data associated to at least one tracked operation associated to the first user, information associated to the IOD, information associated to the first user, at least one beacon, a notification of detection of the first communication device, a notification of detection of the first user, and / or a notification of detection of the IOD. Thereby the server is enabled to verify or connect.

[0024] According to an embodiment of the first aspect, the method comprises streaming output data of the application received from the first communication device. Thereby, the server is enabled to use the output data of the application.

[0025] According to an embodiment of the first aspect, executing comprises executing at least one container of the server-based application on the server. Thereby, the server is enabled to execute the server-based application fast and secure.

[0026] In an embodiment, the container is configured to save at least a part of user-related input data, a part of the application data and / or a part of the first information until the criterion has been met or until a second timer threshold has been reached. Thereby, a part of user-related input data, a part of the application data and / or a part of the first information is accessible for future sessions to the server.

[0027] According to an embodiment of the first aspect, starting the session comprises at least one of: connecting to the IOD using at least parts of the first information and / or connecting to the first communication device using at least parts of the first information. Thereby, the server is enabled to build up a connection to the IOD and / or the first communication device using at least parts of the first information.

[0028] According to an embodiment of the first aspect, the first verification comprises verifying the first user based on the first information and / or verifying the IOD based on the first information. Thereby, the server is enabled to use the first information for verifying the first user and / or the IOD. According to an embodiment of the first aspect and / or the second aspect, the application data comprises at least one of: a user interface of the application, at least parts of an application logic related to the application, and / or at least one configuration of the application associated with the first user. Thereby, the server is enabled to configure the server-based application based on the application data.

[0029] According to an embodiment of the first aspect and / or the second aspect, the user- related input data comprises at least one of a configuration associated with the first user, output data of the application running on the first communication device, at least one tracked operation associated with the first user. Thereby, the server is enabled to update the output data based on the user-related input data continuously.

[0030] According to an embodiment of the first aspect, the method further comprises adapting output data based on at least one parameter, and / or adapting application data based on at least one parameter. Thereby, the server is enabled to securely execute the server-based application.

[0031] According to an embodiment of the first aspect, the method comprises sending, to the first communication device, an indication, that the IOD has been associated to an application session and / or sending, to the first communication device, an indication to send the application data. Thereby, the server is enabled to inform the first communication device of starting of the session and / or instruct the first communication device to send the application data.

[0032] According to an embodiment of the first aspect, the method comprises sending the user-related input data to the server-based application and / or the application. Thereby, the server-based application or the application is enabled to use user related input as input to the server-based application or the application.

[0033] According to an embodiment of the second aspect, the method further comprises obtaining the at least one criterion, wherein the at least one criterion comprises receiving a notification to stop sending user-related input data, receiving a notification that a server-based application has been closed, reaching a second timer threshold, receiving a notification that a first timer threshold has been reached, obtaining an indication that the application has been closed, obtaining an indication that a stand-by mode of the first communication device has been initiated, obtaining an inactivity of the first user. Thereby, the first communication device is enabled to trigger stopping the session, when at least one criterion is met.

[0034] According to an embodiment of the second aspect, initiating stopping the session comprises at least one of stopping sending user-related input data, sending, to the server, a notification to stop receiving user-related input data, sending, to the server, a notification to stop streaming output data, sending, to the server, a notification that a first timer threshold has been reached, sending, to the server, a notification that the application has been closed, sending, to the server, a notification to stop executing the server-based application, and / or disconnecting from the server. Thereby, the first communication device is enabled to intervene the session when at least one criterion is met.

[0035] According to an embodiment of the second aspect, the method further comprises sending, to the server, first information for initiating a first verification. Thereby, the server is enabled to verify the first communication device, the first user and / or the IOD.

[0036] According to an embodiment of the second aspect, the method further comprises streaming output data of a server-based application from the server, and streaming output data of the application to the server. Thereby, the first communication device is enabled mirror the output data displayed on the IOD and the server is enabled to intervene the output data of the application and / or stream it to the IOD.

[0037] According to an embodiment of the second aspect, the method further comprises adapting output data of the application and / or the server-based application, the application data and / or the user-related input data based on at least one parameter. Thereby, the first communication device is enabled to intervene the output data the application data and / or the user-related input data for security. According to an embodiment of the second aspect, the method further comprises receiving, from the server, an indication, from the server, that the IOD has been associated to an application session, and / or receiving, from the server, an indication to send the application data. Thereby, the server is enabled to inform the first communication device of starting of the session and / or instruct the first communication device to send the application data.

[0038] According to an embodiment of the third aspect and / or the fourth aspect, the server may be configured to perform the method according to the first aspect or any embodiment of the first aspect.

[0039] According to an embodiment of the fifth aspect and / or the sixth, the first communication device may be configured to perform the method according to the second aspect or any embodiment of the second aspect.

[0040] BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 shows schematic diagram illustrating an example of an environment

[0042] Figure 2A and 2B is a flowchart illustrating a method 200 performed by the server

[0043] Figure 3 is a flowchart illustrating a method 300 performed by the first communication device

[0044] Figures 4A to 4B are signaling diagrams of an exemplary interaction of a first embodiment between, the first user, the first communication device, the server and the IOD

[0045] Figures 5A to 5B are signaling diagrams of an exemplary interaction of a second embodiment between, the first user, the first communication device, the server, the IOD, the second user and the second communication device

[0046] Figures 6A to 6B are signaling diagrams of an exemplary interaction of a third embodiment between, the first user, the first communication device, the server and the IOD Figure 7 illustrates a block diagram illustrating embodiments of the server

[0047] Figure 8 illustrates a block diagram illustrating embodiments of the first communication device

[0048] DETAILED DESCRIPTION

[0049] Figure 1 illustrates an example of an environment in which embodiments presented herein can be applied. Figure 1 illustrates a server 120 and an input output device (IOD) 130. Optionally, the server and / or the IOD are comprised in a local area network 150 or in a communication network. The server may comprise at least one packaged computing environment such as a virtual machine or a container 140, hence just referred to as a container. The at least one container 140 may be comprised in the server 120. Figure 1 further illustrates a first communication device 110 of a first user 100 and optionally a second communication device 170 of a second user 160. Optionally, the first communication device is comprised in the local area network or in the communication network. Alternatively, the first communication device is comprised in a network different to the network the server and / or the IOD is located.

[0050] The server may be a general-purpose cloud server, a server dedicated for an application (e.g., an application server), a server dedicated for at least one type of service (e.g., a gaming server), a virtual part of at least one physical server (e.g., a virtual machine (VM)). The IOD 130 may be, for example, a screen, a sharable device, a TV, a holographic projector, a virtual reality (VR) projector, an extended reality (XR) head mounted display (HMD), a wireless device, a communication device. The IOD may comprise an input and / or output capability enabling, e.g., allocation by the first user. Optionally the IOD may comprise computational capabilities. The IOD may be in a confined space such as an enterprise environment or a retail store, or in a private environment. Alternatively, the IOD may be placed in a public environment. In a further example the IOD is controlled by the server. In an embodiment the IOD is communicatively coupled to the server. The first communication device 110 may be a monolithic device, a user equipment (UE) such as a tablet, smartphone or smart watch, a wireless device arranged, configured, and / or operable to communicate wirelessly with a network node and other communication devices.

[0051] The server is configured to start a session, receive application data from the first communication device, execute a server-based application using the application data and stream output data to an IOD. The output data may be the output data of the server-based application. The server is further configured to obtain user-related input data and stopping the session when a criterion is met. The first communication device is configured to send application data, related to an application, to the server. The first communication device may receive, from the server, user-related input data and initiate a stopping of the session when a criterion is met.

[0052] The solution presented herein addresses the above-mentioned challenge of enabling increased control, by the server and by the first communication device, when projecting and / duplicating content while enabling streaming non-static output data to the IOD.

[0053] Figures 2A and 2B is a flowchart illustrating a method 200 performed by the server 120, as shown in Figure 1 . Figure 2A and 2B are illustrated on two pages for convenience, but they are understood as one single signaling diagram. The steps of Figure 2B continue where the steps of Figure 2A end. Therefore, it is be understood that the step 230, which is shown as being a first step in Figure 2B, may be subsequent to the steps shown in Figure 2A, such as step 220, step 222 or step 224.

[0054] The method 200 comprises a first step 210, as illustrated in Figure 2A, which is receiving first information for initiating a first verification. The first information may be for initiating a first verification of the first user 100 and / or the IOD. The method further comprises a starting step 220, as illustrated in Figure 2A, wherein a session is started upon successful first verification based at least on parts of the first information. The session optionally comprises a first connection between the first communication device and the server and a second connection between the server and the IOD. In a receiving step 230, as illustrated in Figure 2B, during the session the server is receiving application data from the first communication device 110 of the first user related to an application running on the first communication device. The step 230 may be performed after step 220. The method further comprises during the session: executing 240, as illustrated in Figure 2B, a server-based application using the application data during the session and streaming 250, as illustrated in Figure 2B, output data of the application and / or the server-based application to the IOD 130. In an obtaining step 260, as illustrated in Figure 2B, during the session, user- related input data is obtained from the IOD and / or the first communication device, wherein the user-related input data is configured to update the output data. The method further comprises stopping 270, as illustrated in Figure 2B, the session, in response to obtaining at least one criterion.

[0055] The receiving step 210 may enable verifying the first user and / or the first IOD for starting a session in a starting step 220. Receiving 230 of application data may enable execution of at least parts of the application on the server. It further may enable, e.g., allowing, the first communication device to temporarily transfer application data from the first communication device to the server ensuring secure access to an IOD. Executing 240 the server-based application may enable execution of at least parts of the application running on the communication device ensuring control of the server. Streaming 250 may enable transferring of the output data of the application and / or the server-based application to the IOD. Streaming the output data may address the above-mentioned challenge of enabling increased control when projecting and / duplicating content as the steps 230 to 250 may enable the server to have control on what output data is streamed to the IOD and / or to the communication device. Obtaining 260 user-related input data, wherein the user- related input data is configured to update the output data, enables updating output data, thus streaming non-static output data to the IOD while having control of the output data. Obtaining 260 user-related input data, may enable the first user to have control on what content is streamed to the IOD by providing the user specific input data via the IOD and / or the communication device. Stopping 270 the session in response to obtaining at least one criterion may enable improved security. For example, revelation of output data streamed to the IOD associated to the first user to, e.g., the second user 160 is prevented by step 270. By step 270, an energy efficiency of the server may be improved, by e.g., disconnecting when stopping the session. Additionally operational efficiencies of the server, the communication device and / or the IOD may be improved, by e.g., disconnecting when stopping the session. Receiving 210 the first information may comprise receiving the first information from the IOD and / or from the first communication device. The first information is received using for example a Hypertext Transfer Protocol (HTTP) message via, e.g., a Transmission Control Protocol (TCP) communication, the message may be transferred using an Ethernet cable, wireless transmission, or a message via visible light communication (VLC) technology.

[0056] The first information may comprise at least of an identity of the first user, an identity of the IOD, an identity of an application session, an identity of the first communication device, information associated to the IOD, information associated to the first user, user data associated to at least one configuration associated to the first user, user data associated to at least one tracked operation associated to the first user, at least one beacon, a notification of detection of the first communication device, a notification of detection of the first user; and / or a notification of detection of the IOD.

[0057] The Identity of the IOD or the first communication device may be an Internet Protocol (IP) address, a port, a certificate, or a Uniform resource Locator (URL) pointer to the IOD. The identity of the IOD may be sent to the server by the first communication device, after capturing the identity of the IOD by e.g., scanning, by the first communication device, or by a sensor of the first communication device a quick response (QR) code associated to the IOD, such as displayed by the IOD or attached to the IOD. The QR code may comprise the identity of the IOD and information on how to connect to the server. The IOD may open at least one port in a network address translator (NAT) to obtain a globally reachable point-of-presence in a network. Alternatively, the IOD may obtain a public IP address for a NAT traversal. The port in the NAT or the public IP address may be comprised in the identity of the IOD or in the information associated to the IOD. The certificate may be a preconfigured and / or trusted certificate of the server.

[0058] The identity of the first user may be a credential of the first user, a unique identifier, a username, a token, wherein the token verifies that the first user has been authenticated and / or any other collection of attributes and values for the first user. The application session may be a session associated with the application running on the first communication device, wherein the application session is, e.g., triggered by the first user initiating starting the application on the first communication device. The identity of the application session may be a unique identifier such as a globally unique identifier or a local identifier such as a local identifier which in combination with the identifier of the server (e.g., the address of the server) becomes globally unique. The application session can be associated with a session token that gives an application, such as the application running on the first communication device or the server-based application that has the session token, permission to interact with the application session.

[0059] The application running on the first communication device may be a retail member application, a retail store application, an enterprise application, a smartphone application, a third-party application such as a third-party floor planning application, a combination of a third-party application and an enterprise application, a gaming application, or a purchase application.

[0060] A beacon corresponds to e.g., a beacon value for indicating a proximity for nearby communication devices or lODs. The beacon may be received from the IOD or the first communication device. The beacon may comprise the identity of the user, the identity of the communication device and / or the identity of the IOD. The beacon may be periodically sent, by the IOD, or by, the first communication device using for example a short-range wireless communication such as Bluetooth, near-field communication (NFC) or Radio Frequency Identification (RFID). In case the first communication device sends the at least one beacon, the IOD may determine the at least one beacon and forward the beacon to the server. In case the IOD sends the at least one beacon, the first communication device may determine the at least one beacon and forward the beacon to the server.

[0061] The notification of detection of the first user is, e.g., a notification that the first user is being in proximity to the IOD. The notification of detection of the first user may be sent by the IOD after detecting the first user, by the IOD. Detecting the first user may comprise detecting the first user via a sensor, such as a camera comprised in the IOD. In case a camera is being used, the IOD sends, to the server, data associated to the sensor for detecting the first user. In that case the server may perform an image recognition such as facial recognition or gate recognition using the data associated to the sensor. Alternatively, the IOD may perform the image recognition. The notification may comprise the identity of the first user, the identity of the IOD or the identity of the first communication device.

[0062] The notification of detection of the first communication device is, e.g., a notification that the first communication device is being in proximity to the IOD. The notification of detection of the first communication device may be send by the IOD after detecting the first communication device, by the IOD. Detecting the first communication device, may comprise detecting the first communication device via a short-range wireless communication.

[0063] The notification may comprise the identity of the first user, the identity of the IOD or the identity of the first communication device. The notification of detection of the IOD is, e.g., a notification that the IOD is being in proximity to the first communication device. The notification of detection of the IOD may be send by the first communication device to the server after detecting the IOD, by the first communication device. Detecting the IOD, may comprise detecting the IOD via a short-range wireless communication. The notification may comprise the identity of the first user, the identity of the IOD and / or the identity of the first communication device. Additionally, the notification may further include a distance or a directional measure for resolving the first communication device’s location in relation to the IOD.

[0064] The user data associated to at least one configuration associated to the first user may be privacy information or a certificate associated to the user, settings associated to the application or a unique identifier of the application running on the first communication device.

[0065] The user data associated to at least one tracked operation associated to the first user is for example a selection by the first user which first information may be accepted by the server or instructions to, e.g., verify the first user based on the user identity or by the detection of the first user. In this example the server may send to the IOD an instruction to detect the first user. The Information associated to the first user, may be an acknowledgment received from the first communication device, that the first user is verified. The information associated to the first user, may be an acknowledgment received from the IOD, that the IOD is verified.

[0066] In an example the IOD may open at least one port in the NAT to obtain a globally reachable point-of-presence in the network. Alternatively, the IOD may obtain a public IP address for the NAT traversal.

[0067] The session may comprise a first connection between the first communication device and the server and a second connection between the server and the IOD.

[0068] The first connection and the second connection are a communicative connection between the first communication device and the server, and between the server and the IOD, respectively. A communicative connection comprises for example a 5G connection or any other connection via the internet or the local area network.

[0069] The first connection may comprise a connection based on an IP packet communication flow, wherein at least one packet or at least one payload of the packet is sent. The second connection may be a connection based on streaming and / or a payload communication flow different to the communication flow of the first communication.

[0070] The first connection and the second connection may be a connection based on an IP packet communication flow, wherein at least one packet or at least one payload of the packet is sent. The first connection and / or second connection may be transport layer security (TLS), QIIIC or user datagram protocol (UDP) based connection.

[0071] In an example, in case the identity of the first user comprised in the first information is known or saved in the server or, in is associated with a container 140, such as a service instance, instance or microservice, starting 220 the session comprises executing the at least one container. Executing the at least one container may comprise selecting or starting the at least one container. Selecting the at least one container may comprise selecting the container from a set of existing containers, such as containers already started. The at least one container may be configured to save at least a part of the first information until a second timer threshold has been met or until the criterion has been met.

[0072] In an embodiment, the container is configured to save at least a part of the user- related input data, a part of the application data and / or a part of the first information until at least one criterion has been met or until a second timer threshold has been reached. The criterion refers to the criterion obtained by the server for stopping the session. The second timer threshold may be associated with a timer, wherein the timer starts when the container is started and stopped when the second timer threshold is reached.

[0073] In an embodiment, starting 220 the session comprises at least one of connecting to the IOD using at least parts of the first information and / or connecting to the first communication device using at least parts of the first information. Connecting to the IOD using at least parts of the first information, may comprise connecting using the identity of the IOD, such as the IP address, port, pointer, or ports in the NAT and / or connecting the at least one container to the IOD, wherein the container is associated to the identity of the first user or associating the at least one container to the IOD. Connecting to the first communication device using at least parts of the first information comprises sending an acknowledgment to the first communication device, that the user or the first communication device have successfully been verified, and / or receiving the acknowledgment information associated to the IOD to the server that the communication between the server and the IOD is verified. In an example connecting may comprise establishing a secure connection.

[0074] In an example, there is no need for user-related input data, i.e. , the screen is not associated to a container. The IOD may act as a traditional digital signage display that displays general content, and optionally also the QR code, e.g., in bottom corner of screen or any other location based on the graphical design of e.g., the user interface of the application or the server-based application.

[0075] The application data may be received 230 using, e.g., a HTTP based message via the first connection. In an embodiment, the application data comprises at least one of a user interface of the application, at least parts of an application logic related to the application, at least one configuration of the application associated with the first user, and / or an application identity. The at least parts of the application logic related to the application are, e.g., application code such as executable code and / or at least one application instruction. In an example the user interface is an interface of the application running on the first communication device. The at least one configuration of the application associated with the first user are, e.g., personalized settings or configurations configuring the application and / or the server-based application. In an example, a full copy of the application running on the first communication device comprised in the application data is received by the server. Instead of merely sending personal configuration and current selections of the user, the application may be fully transferred to the server by performing a serialization of the application. An application certificate may be comprised in the application data can be used to validate the identity of the application against, e.g., an allowlist of the cloud server.

[0076] In an embodiment, executing 240 comprises executing the at least one container of the server-based application on the server. In the example of the container being configured to run the server-based application, the at least one container is executed to run the server-based application.

[0077] The server-based application is an application configured to run on, e.g., the server. The server-based application may be a cloud gaming platform application, a cloud platform application, a copy of the application running on the communication device, a retail store application or a cloud-based application. The server-based application may be an exact copy of the application running on the communication device. The application data may be configured in the server-based application. Optionally, the application data is configured to modify the server-based application. Configuring the server-based application with the application data allows different versions of the application running on the first communication device to be utilized by different communication devices or to be used by a third-party application. Thus, this may enable, allowing executing, on the server, at least parts of a third-party application, such as a third-party floor planning application together with at least parts of the application running on the first communication device. The third-party application may be pre-approved by the server. The application data may be configured to synchronize an application state of the application running on the first communication device with the server-based application. Additionally, or alternatively application data is configured to, e.g., personalize the server-based application based on the application data. The application running on the first communication device may be implemented in such a way that it enables application data to be sent. Optionally, the server-based application is executed on the server directly. In an alternative example, executing the server-based application using the application data comprises selecting at least one container 140 hosted by the server or comprised in the server, a container of the at least one container or the database associated the server. Selecting may be based on the first information such as the user identity and / or the application data such as the application logic if the user identity is unknown to the server. Alternatively, if the user identity is known to the server, e.g., known to a container of the at least one container or the database, executing comprises at least one container hosted by the server or comprised in the server based on the first information and / or the application data. Knowing may comprise saving at least part of the first application and / or application data. The at least one container is configured to run the server-based application and is referred herein as the at least one container of the server-based application. Optionally, selecting or starting is done before step 230 of receiving the application data. Executing may comprise allocating, by the server, resources, such as gaming resourced to the application running on the first communication device or the serverbased application. If the server-based application is configured to be an exact copy of the application running on the first communication device, then the container may be populated with the server-based application, and the server-based application may continue to run in the same application state as the application on the first communication device. Alternatively, parts of the application are executed using the server-based application. Executing the server-based application may comprise enabling, by the server, a disaggregated mode, wherein obtaining the user related input is enabled via the first communication device and or the IOD. This may comprise connecting the at least one container to the IOD and to for example input entities of the first communication device such as a touch screen, a keyboard, a microphone, or a sensor of the first communication device. In an embodiment, the method 200 comprises adapting the application data or the output data based on the at least one parameter. Optionally, adapting the application data may be performed before executing 240 the server-based application. Adapting the output data may be performed before streaming 250 the output data. The at least one parameter may be at least one rule, e.g., for checking the validity of at least one certificate. The parameter may be pre-configured or comprised in the first information or application data. Adapting may comprise restricting the application data or output data, or allowing the execution of the server-based application using the application data. Adapting the application data may enable the server to control input, such as the application data or the user-related input data, to the server-based application running on the server (via e.g., the at least one container) to avoid a misuse of the server-based application and enable a secure execution. Adapting the output data enables the server to control the output data streamed to the IOD and optionally stream ed / forwarded to the first communication device to avoid a misuse and enable a secure execution.

[0078] Streaming 250 may be done using, e.g., a HTTP, Web Real-Time Communication (WebRTC), a Real-Time Messaging Protocol (RTMP), a Real-Time Streaming Protocol RTSP, an HTTP Live Streaming (HLS) protocol, Secure Reliable Transport (SRT) protocol, a Common Media Application Format (CMAF) via the second connection. Streaming may comprise streaming via the server-based application executed on the server.

[0079] The output data may be the user interface of the application, or the server-based application, a media stream, or content associated to the application or the serverbased application, wherein the output data is configured to be displayed on the IOD.

[0080] In an example the output data is continuously streamed, from the server to the IOD, until the at least one criterion has met. Optionally the output data is continuously streamed additionally from the server to the first communication device, during the session. Streaming output data to the IOD and / or the first communication device may comprise forwarding the output data. Optionally, when streaming output data to the IOD and / or the first communication device the output data sent to the IOD is different to the output data sent to the first communication device. In an example the output data of the application streamed from the first communication device in step 242 is forwarded to the IOD. Alternatively, output data of the server-based application may be forwarded to the first communication device, wherein forwarding comprises forwarding from the server-based application to the first communication device or to the application running on the first communication device. The example enables mirroring the output data streamed to the IOD to first communication device or the output data streamed from the first communication device to the IOD.

[0081] Obtaining 260 user-related input data may comprise receiving or obtaining via the IOD. In an example receiving comprises using, e.g., a HTTP based message via the first connection. User-related input data may be obtained via, e.g., the user interface of the application by the first communication device or the user interface of the server-based application by the IOD or using a sensor of the first communication device and / or of the IOD, such as a camera, user-related input data Once, the first communication device and / or the IOD obtains such user-related input data, the first communication device and / or the IOD may send the user-related input data to the server. The server may obtain the user-related input data by receiving the user- related input data from the first communication device and / or the IOD.

[0082] In an embodiment the user-related input data comprises at least one of a configuration associated with the first user, output data of the application running on the first communication device and / or a tracked operation associated with the first user.

[0083] The configuration associated with the first user may be at least one personalized selection, at least one personalized setting, a certificate, or a configuration configuring the application and / or the server-based application. The word personalized is herein used to describe anything user specific or specific to a group of users. The configuration associated with the first user may be static or dynamic. Dynamic may refer herein to changeable configuration during the session, wherein static may be a configuration being consistent during the session.

[0084] The tracked operation associated with the first user may be any tracked interaction the user has with the IOD and / or the first communication device. The tracked interaction may be at least one of a selection, a moving of a cursor, input in a keyboard comprised in the IOD and / or the first communication device, input in a microphone of the first IOD and / or the first communication device, such as voice input, input in a device connected to the IOD and / or the first communication device such as a gaming controller, a keyboard, a gesture detection device or gait recognition device such as a three-dimensional (3D) scanner using, e.g., lidar for determining gestures of the first user connected to the server-based application; touching of a touchscreen comprised in the IOD and / or the first communication device, or gestures of the first user captured by a camera of the IOD and / or the first communication device.

[0085] The output data of the application running on the first communication device may be, the user interface of the application or the content associated to the application. The output data of the application running on the first communication device may be configured to update the output data of the server-based application.

[0086] The user-related input data may be configured to change visuals / skins of the game (e.g., camouflage colored view for war game, favorite hockey team logo for hockey game etc.), modifying the layout of the user interface to have a personalized type of buttons track pads etc. depending on the game and its requirements (some games might need fewer buttons than others etc.) and / or generating force feedback via a sensor of the first communication device with haptic capabilities. Optionally, the user- related input data may be configured to update the output data, updating comprises optionally performing a step 262.

[0087] In an embodiment, stopping 270 the session comprises at least one of: sending, to the IOD, a notification to delete the output data, stopping the receiving of user- related input data, stopping streaming, stopping the executing of the server-based application on the server, sending, to the IOD a notification to stop sending user- related input data, sending, to the first communication device, a notification to stop sending user-related input data, sending, to the IOD, a notification that the serverbased application has been closed, sending, to the first communication device, a notification that the server-based application has been closed, sending, to the first communication device, a notification that a first timer threshold of the server has been reached, disconnecting from the IOD, and / or disconnecting from the first communication device. Sending may comprise sending via e.g., a HTTP based message via the first connection or the second connection.

[0088] The notification to delete the output data comprises, e.g., an instruction to stop displaying the output data of the application and / or the server-based application on the IOD, delete the output data of the application and / or the server-based application or to delete user-related input data. Additionally, the notification may comprise an instruction to disconnect from the IOD. Sending a notification to delete the output data to the IOD may provide the user with means to ensure that no output data is displayed upon meeting the at least one criterion as the access is, e.g., terminated.

[0089] Stopping the receiving of user-related input data may comprise to block any incoming user-related input data, to disconnect from the IOD and / or the first communication device to stop receiving, or to sending user-related input data to the application and / or the server-based application.

[0090] Stopping streaming may comprise stopping streaming the output data of the serverbased application and / or the application to the IOD and / or the first communication device.

[0091] Stopping the executing of the server-based application on the server may comprise stopping and / or releasing the at least one container and / or sending a current state of the server-based application to the application. Sending the current state may enable the first communication device to resume execution of the application based on the current state. Alternatively stopping the executing of the server-based application may comprise stop running the server-based application on the server. The user- related input data, identity of the first user, information about the first user and / or the application data may be deleted from the server or the at least one container. The server or the at least one container may save at least parts of: the user-related input data, identity of the first user, information about the first user and / or the application data until a third timer threshold of the server is met. A timer may be running on the server, starting when the execution of the server-based application is stopped and stopping when the third timer threshold is reached. The saved at least parts of the user-related input data, identity of the first user, information about the first user and / or the application data may be used for a future execution of the server-based application, wherein the server-based application is associated with at least parts of: the user-related input data, identity of the first user, information about the first user and / or the application data. The at least parts of the user-related input data, identity of the first user, information about the first user and / or the application data may be saved without stopping of the execution of the server-based application for future use associated to the at least parts of the user-related input data, identity of the first user, information about the first user and / or the application data.

[0092] Sending, to the IOD, a notification to stop sending user-related input data may enable the IOD to, e.g.: stop the interactive user interface and instead display a generic / non-user-specific graphical representation of the user interface, or stop obtaining user-related input data or display a warning in the user interface on the IOD that the IOD will be disconnected from the server and / or the first communication device will be disconnected from the server in case of no user-related input data is obtained until the first timer threshold or third timer threshold, is reached. The notification may comprise an instruction to stop obtaining user-related input data, and / or to display the warning, to disconnect from the server and / or to delete user- related input data.

[0093] Sending, to the first communication device, a notification to stop sending user- related input data may enable the first communication device to, e.g.: stop the interactive user interface and instead display the generic / non-user-specific graphical representation of the user interface, or stop obtaining user-related input data or display a warning in the user interface on the first communication device that the IOD will be disconnected from the server and / or the first communication device will be disconnected from the server in case of no user-related input data is obtained until the first timer threshold or third timer threshold is reached. The notification may comprise an instruction to stop obtaining user-related input data, and / or to display the warning, to disconnect from the server and / or to delete user-related input data.

[0094] The notification that the server-based application has been closed sent to the IOD is configured to instruct the IOD to stop displaying the output data of the application and / or the server-based application, or the user interface or disconnecting from the server. Closing the server-based application may comprise stop executing the server-based application. Sending the notification may be performed upon stopping executing the server-based application. The notification that the server-based application has been closed may be a notification that the server-based application has been stopped to be executed.

[0095] The notification that the server-based application has been closed sent to the first communication device is configured to instruct the first communication device to disconnect from the server, to stop displaying the output data of the server-based application or the user interface of the server-based application. Closing the serverbased application may comprise stop executing the server-based application.

[0096] Sending the notification be performed upon stopping executing the server-based application.

[0097] The notification that the first timer threshold has been reached may be configured to instruct the first communication device to disconnect from the server and / or to delete output data of the server-based application.

[0098] Disconnecting from the first communication device may comprise detaching from the application session running on the first communication device.

[0099] The server-based application may detach the application session and keep the connection to the first communication device until a second criterion has been met.

[0100] Referring to figure 2A, which illustrates an optional step 212, which comprises verifying the first user based on the first information; and / or verifying the IOD based on the first information. The step 212 may enable a secure connection between the server and the first communication device and / or the server and the IOD. Step 212 may be performed between step 210 and 220. The method 200 may comprise an optional step 222, which comprises associating, to an identity of the session application, at least one of an identity of the first user, the identity of the IOD, the IOD and / or an identity of the first communication device. Step 222 may be performed between step 220 and 230. Claim 14 The method 200 may comprise the optional step 224, which comprises sending, to the first communication device, an indication, that the IOD has been associated to an application session and / or sending, to the first communication device, an indication to send the application data. Step 224 may enable the first communication device to be informed that the first verification was successful and a second connection to the IOD has been established for enabling sending, by the first communication device, application data. Step 224 may be performed between step 220 and 230, before or after step 222.

[0101] Referring to Figure 2B, the method 200 may comprise an optional step 242, comprises streaming output data of the application received from the first communication device. The step 242 may enable obtaining output data of the application running on the first communication device and streaming the output data of the application to the IOD. The step 242 may be performed after step 240 and before step 250. Alternatively, it may be performed continuously during the session. Clai 15 The method 200 may comprise an optional step 262, which comprises sending the user-related input data to the server-based application and / or the application. The step 262 enables updating the output data of the server-based application and / or the application. The step 262 may be performed after step 260 and before step 270. Alternatively, it may be performed continuously during the session. Claim 2 The method 200 may comprise an optional step 264, which comprises obtaining at least one criterion, wherein the at least one criterion comprises at least one of receiving a notification to stop obtaining user-related input data, receiving a notification to stop streaming output data, receiving a notification to stop executing the server-based application, obtaining an indication that the application has been closed, obtaining an indication that a server-based application has been closed, reaching the first timer threshold, receiving a notification that the second timer threshold has been reached, and / or receiving second information for initiating a second verification, wherein the second information comprises an identity of the IOD. The step 264 may be performed after step 260 and before step 270.

[0102] Alternatively, it may be performed after step 262. The step 222 to a step 264 may be performed to during the session.

[0103] Verifying 212 may comprise verifying, using the first information, that the user and / or the first IOD have been successfully authenticated. Alternatively, verifying comprises authenticating the first user and / or the IOD using the first information. Authenticating may comprise using a multi-factor authentication. Authenticating the first user may further comprise authenticating using a first factor such as the credentials of the first user and a second factor such as a biometric factor, e.g., fingerprint or face of the first user using optionally, e.g., a camera or sensor of the first communication device or the IOD.

[0104] Verifying the IOD comprises authenticating the IOD based on verifying a certificate or via notifying the first communication for authorizing the IOD by the first user. The first user may acknowledge the authorization of the IOD via the first communication device, wherein the first communication device obtains the acknowledgement of authorization from the IOD and wherein the first communication device sends the acknowledgment of authorization to the server. Receiving the acknowledgment may be comprised in verifying. Alternatively, verifying the IOD may comprise sending, by the server, after receiving the identity of the IOD by the server, a TLS or QIIIC connection establishment request to the IOD. The IOD may display a unique identifier and / or a fully qualified domain name (FQDN) of a certificate, such as the certificate preconfigured in the IOD comprised in the identity of the IOD. The first communication device may obtain an acknowledgment of the unique identifier and / or the FQDN of the first user, wherein the first user acknowledges the displayed unique identifier and / or the FQDN via the application running on the first communication device. The acknowledgment of the unique identifier and / or the FQDN comprises the unique identifier and / or the FQDN. The first communication device sends the unique identifier and / or the FQDN to the server. The server receives the unique identifier and / or the FQDN and sends the unique identifier and / or the FQDN to the IOD. The IOD verifies the unique identifier and / or FQDN by verifying or checking if it is the same unique identifier and / or FQDN displayed. In case the unique identifier and / or the FQDN is the same as the displayed, the IOD acknowledges the first verification by sending, to the server, an acknowledgment information associated to the IOD that the communication between the server and the IOD is verified. The server receives the acknowledgment information associated to the IOD, wherein verifying the IOD comprises receiving the acknowledgment information.

[0105] Verifying the first user based on the first information may comprise verifying the first communication device based on the first information. Verifying may comprise linking the identity of the first user to the identity of the first communication device. Linking may comprise mapping a request of the first user to an account of the first user. Linking may be performed by the first communication device, wherein the server received the information associated to the first user, such as an acknowledgment that the first user is verified. Optionally, linking may be performed by a third-party device.

[0106] Verifying the first user and / or the IOD may comprise verifying that an identity of the first user, an identity of the first communication device, and / or the identity of the IOD has been authenticated. The server may check whether the identity of the first user is valid by verifying that the identity of the first user has been authenticated, e.g. by the first communication device having send the token, or the server may check the credentials such as a username and password of the user, wherein first communication device obtained the credentials via the application. In an example, verifying the IOD comprises, checking that identity of the IOD is registered and authenticated to the server and / or the local area network. In case the first verification fails, the server may send a notification to the IOD and or the first communication device that the first verification is not successful.

[0107] Associating 222 may comprise adding an entry to a database or registry that the server is connected to the IOD and to the first communication device. The database or register records which IOD of a set of lODs has a connection associated with which device and / or which container.

[0108] The indication that to send application data may comprise an acknowledgment of the secure first connection, the secure second connection or first verification, and / or a request to send application data. The indication is sent 224 for example using, e.g., a HTTP based message via the first connection.

[0109] Streaming 242, from the first communication device, output data of the application may be done using, e.g., a HTTP, WebRTC, RTMP, RTSP, HLS protocol, SRT protocol, CMAF via the first connection.

[0110] Sending 262 the user-related input data to the server-based application and / or the application comprises in an example using, e.g., a TCP, QUIC, UDP, RTP or RTCP based message via the first communication. Sending the user-related input data to the server-based application and / or the application may comprise inputting the user- related input data into the server-based application and / or the application and processing the user-related input data in the server-based application and / or the application. The output data of the application and / or the server-based application may be updated based on the processing and / or the inputting.

[0111] Sending the user-related input data to the server-based application and / or the application may comprise updating the server-based application or the application based on the user-related input data.

[0112] In an example, the method comprises streaming the output data updated based on the user-related input data. Optionally streaming the output data updated based on the user-related input data comprises adapting the output data.

[0113] Obtaining 264 a criterion may comprise using, e.g., a TCP, QIIIC, UDP, RTP or RTCP based message via the first connection or the second connection. A criterion may be obtaining an interruption of connection or disconnection from the IOD and / or the first communication device. The disconnection or interruption of connection by switching off the IOD and / or the first communication device.

[0114] Receiving a notification to stop obtaining user-related input data, to stop streaming output data and / or to stop executing the server-based application may comprise receiving from the IOD and / or the first communication device, may be based on obtaining by the IOD and / or the first communication device that the first user is moving away from the IOD, or may be based on the first communication device obtaining a stand-by mode of the communication device has been initiate. The lOD / the first communication device may obtain an instruction of the first user to stop obtaining user-related input data. The instruction can be triggered, for example, by the user revoking interactive use of the IOD, e.g., via the user interface of the application or the server-based application, or by using an end button on the IOD or on the first communication device. Obtaining that the first user is moving away may be detected by using a short-range wireless network such as NFC, Radio Frequency Identification (RFID) or Bluetooth by the IOD and / or the first communication device, e.g., using a beacon. It may be alternatively or additionally measured by using the sensor, such as the camera, of the IOD. The camera of the IOD may detect the proximity of the first user by its physical presence. Obtaining a stand-by-mode comprises that the application has been put into a background mode, that a screensaver has been activated or that the first communication device is not in active usage by measuring with a sensor of the first communication device, such as a inertial measurement unit (IMU) that the first communication device has been, e.g. put into a pocket or a handbag, or that a touch sensor of the first communication device indicates a position or a grip of the first communication device or that a light sensor of the first communication device indicates that a casing of the first communication device has been closed. Alternatively, the first communication may obtain an inactivity of the first user may comprise detection that the application is not actively used such as determining no user related input. The inactivity of the first user may occur if the user does not provide any input or the application is running in background mode. The stand-by mode may comprise, e.g., the screensaver, the closing, the not active usage based on the measurement. The notification to stop obtaining user-related input data, receiving the notification to stop streaming output data and / or the notification to stop executing the server-based application may be sent by the first communication device / and or the IOD. Obtaining the notification to stop executing the server-based application may comprise the first user request closing the server-based application by, e.g., interacting with the user interface of the server-based application and / or the application, by using e.g., a quit button. This example may be comprised in a gaming scenario, wherein the server-based application is a gaming application.

[0115] The server may continue streaming the output data of the application and / or the server-based application after receiving a notification to stop obtaining user-related input data until the second criterion of the at least one criterion is met. The second criterion may be a third timer threshold, a threshold of signal strength of the short wireless network signal between the first communication device and the IOD, receiving a notification to stop updating the application data or any other of the at least one criterion is met. The user interface displayed on the IOD or on the first communication device, may be grayed-out and / or a countdown may be displayed on the IOD and / or on the first communication device until the second criterion is met. Obtaining an indication that the application has been closed may comprise obtaining an indication that there is no output data of the application received. Obtaining the indication may comprise measuring no more output data of the application until, e.g., the first or the third timer threshold is exceeded. Obtaining may comprise measuring a connection failure to the first communication device. A connection failure is measured based on the first communication device is disconnecting to the server. Obtaining may comprise receiving the notification that the application has been closed from the first communication device, wherein the notification may be based on the first communication device obtaining the indication that the application running on the first communication device has been closed comprises the first user closing the application running on the first communication device by interacting with the user interface of the server-based application and / or the application, by using e.g., a quit button on the IOD or on the first communication device. In an example the application has been closed by the first user on the first communication device.

[0116] Obtaining the indication that the server-based application has been closed comprises obtaining a disconnection or stop from or of the at least one container.

[0117] The notification that the second timer threshold has been reached may be received from the first communication device and / or the IOD. A timer may be running on the first communication device or on the server wherein the timer starts or restarts each time when receiving application data, user-related input data and / or output data of the application or obtaining user-related input data by the first communication device and stops when the first, second, or third timer threshold is reached. The first timer threshold, second timer threshold and / or third timer threshold may be for example 10 second to one minute, a time duration dependent the type of the output data, application data and / or the user-related input data, and / or, a time duration indicative of the first users previous / historical interaction with the first communication device..

[0118] The second information for initiating a second verification, wherein the second information comprises an identity of the IOD, may be received from a second communication device of a second user or the IOD. In an example the second user, instead of the first user, interacts with the IOD. The second verification may comprise a verification of the second user. The second information may comprise an identity of the second user, an identity of the IOD, an identity of a second application session, an identity of the second communication device, user data associated to at least one configuration associated to the second user, user data associated to at least one tracked operation associated to the second user, information associated to the IOD, information associated to the second user, at least one beacon associated to the second user, a notification of detection of the second communication device, a notification of detection of the second user, and / or a notification of detection of the IOD.

[0119] Figure 3 is a flowchart illustrating a method 300 performed by the first communication device 110 of the first user 100. The method comprises a step 310 of sending application data related to an application running on the first communication device, to the server 120 during the session. The method further comprises sending 320, to the server and / or receiving 330, from the server, user-related input data. In an initiating step 340, stopping the session is initiated in response to obtaining at least one criterion.

[0120] The sending step 310 may enable the server of to execute the server-based application based on the application data. The step 310 further may enable the configuration of the server-based application or a seamless transfer of a copy of the application running on the first communication device. The sending 320 and / or receiving 330 steps address the challenge of enabling adapting content, which is streamed, by the server, to the IOD 130 and / or the first communication device. Advantageously the first communication device may update the application running using received user-related input data. Step 330 may be performed additionally or alternatively to step 320. Initiating 340 stopping the session in response to obtaining at least one criterion enables triggering of stopping the session by the server.

[0121] In an embodiment, the method 300 comprises adapting the user-related input data, the application data, or the output data based on at least one parameter. Adapting the user-related input data may be performed before step sending 320, to the server, user-related input data. Adapting the application data may be performed before sending the application data in step 310. Adapting the output data may be performed before a step 314 or 320. Adapting may be restricting the output data. The at least one parameter may be at least one rule, e.g., for checking the validity of at least one certificate. The parameter may be pre-configured or comprised in the first information. Adapting may comprise restricting the user related input, application data or output data. Adapting may enable the first communication device to control output to avoid a misuse of the server-based application or the application and enable a secure execution. Adapting the output data enables the first communication to control the output data streamed to the IOD or the server and optionally stream ed / forwarded from the first communication device to avoid a misuse e.g., enable a secure display of output data or mirroring and enable a secure execution e.g., enable a secure display of output data or mirroring on the IOD.

[0122] Receiving 330 user-related input data may comprise, receiving by the application and updating the application based on the user-related input data; and wherein sending user-related input data comprises, sending by the application. Receiving, from the server, user-related input data may comprise inputting the user-related input data into the application and processing the user-related input data in the application. The output data of the application may be updated based on the processing and / or the inputting.

[0123] Initiating 340 stopping the session comprises at least one of stopping sending user- related input data, sending, to the server, a notification to stop receiving user-related input data, sending, to the server, a notification to stop streaming output data, sending, to the server, a notification that a second timer threshold has been reached, sending, to the server, a notification that the application has been closed, sending, to the server, a notification to stop executing the server-based application, and / or disconnecting from the server.

[0124] Stopping the sending of user-related input data may comprise to stop sending user- related input data to the server. Optionally stopping may comprise disconnecting from the server, and / or stopping obtaining user-related input data. Stopping obtaining user-related input data may comprise closing the application and / or displaying a message in the user interface of the application on the first communication device, wherein the message comprises a notification that the stopping of the session has been initiated. Referring to figure 3, which illustrates an optional step 302, which comprises obtaining, by the first communication device, at least a part of the first information. Step 302 may be performed before step 310. Claim 19 The method 300 may comprise an optional step 304, which comprises sending, to the server, first information for initiating a first verification. Step 304 enables the server to verify the first user, the first communication device and / or the IOD. Step 304 may be performed before 310 and optionally after 302. Claim 25 The method 300 may comprise an optional step 306, which comprises receiving, from the server, an indication that the IOD has been associated to an application session and / or receiving, from the server, an indication to send the application data. Step 306 enables the first communication device to start sending application data, and / or to be notified that the session has been started. The step 306 may be performed before step 310. Claim 21 The method 300 may comprise an optional step 312, which comprises streaming output data of a server-based application from the server. Step 312 enables the first communication device to for example display a synchronized or mirrored output data on the first communication device from the server to the first communication device and to the IOD. Step 312 may be optionally performed after step 310 or may be continuously performed during the session. The method 300 may comprise an optional step 314, which comprises streaming output data of the application to the server. Step 312 may be optionally performed after step 310 and before 320 or may be continuously performed during the session. In an example the sequence of 312 and 314 is reversed. The method 300 may comprise an optional step 316, which comprises obtaining the user-related input data. Step 316 may enable the first communication device to determine e.g., configurations associated to the first user for sending it to the server. Claim 17 The method 300 may comprise an optional step 332, which comprises obtaining the at least one criterion, wherein the at least one criterion comprises, receiving the notification to stop sending user- related input data, receiving the notification that a server-based application has been closed, reaching a second timer threshold, receiving the notification that the first timer threshold has been reached, obtaining the indication that the application has been closed, obtaining the indication that a stand-by mode of the first communication device has been initiated, obtaining an inactivity of the first user. The steps 306 to 340 may be performed during the session.

[0125] Obtaining 302 at least a part of the first information, may comprise scanning, by the first communication device, or by a sensor of the first communication device, the QR code, associated to the IOD; obtaining the identity of the first user; receiving a beacon, from the IOD; detecting the IOD and / or determining user data associated to at least one configuration associated to the first user. Determining may be performed via the application running in the first communication device or via pre-configured information on the first communication device. Optionally or alternatively obtaining comprises receiving information associated to the first user. The first user may initiate the obtaining 302 by providing the identity of the first user to the application. Alternatively, the first user may only provide the identity of the first user to the application when registering to use the application. In that case the identity of the first user may be stored with the application. Hence, next time the first user wishes to use the or any other IOD, the application already has the identity of the first user and the first user may not provide the identity of the first user again.

[0126] Streaming 312 from the server may comprise displaying the output data on the first communication device. The application running on the first communication device may be paused. The output data streamed from the server may be configured to update the output data of the application running on the first communication device. Optionally, streaming output data from the server comprises inputting the output data in the application running on the first communication device, wherein the output data configured the application running on the first communication device. Streaming output data may comprise streaming output data continuously from the server to the first communication device during the session. Streaming may comprise streaming via the application running on the first communication device. Streaming may comprise receiving output data of the server-based application by the application running on the first communication device or the first communication device.

[0127] Streaming 314 to the server may comprise streaming via the application running on the first communication device. Optionally streaming may comprise forwarding output data of the application from the application running on the first communication device by the first communication device.

[0128] The second timer threshold reached may be based on a timer running on the first communication device, wherein the timer restarts each time when receiving application data, user-related input data and / or output data of the application or obtaining user-related input data and stops when the timer threshold is reached. The session may be kept idle until reaching the second timer threshold.

[0129] Figures 4A to 4B are signaling diagrams of an exemplary interaction of a first embodiment between, the first user 100, the first communication device 110, the server 120 and the IOD 130. Figure 4A and 4B are illustrated on two pages for convenience, but they are understood as one single signaling diagram. The steps of Figure 4B continue where the steps of Figure 4A end.

[0130] The first user may enter a confined area, such as a retail store or an enterprise environment. The first user opens the application running on the first communication device, which may be associated to the confined area and approaches an IOD, such as a public IOD. The IOD and the server is located in a private network. If the first user wishes to temporarily display the content of the application on the IOD in a secure way, the first user may trigger step 602, as shown in Figure 6A. The step 602 comprises initiating, by the first user, obtaining, by the first communication device at least a part of the first information such as the identity of the first user. The first user initiates the obtaining by providing the identity of the first user to the application.

[0131] A step 404 comprises obtaining, by the first communication device, the identity of the IOD by using the sensor of the first communication device scanning a QR code, comprising the identity of the IOD. Step 404 may correspond to step 302 of method 300.

[0132] A step 406 comprises sending, by the first communication device, the first information to the server. The server receives the first information. Step 406 may correspond to 210 of the method 200 or 304 of method 300. In the first embodiment the first information comprises the identity of the first user and / or the identity of the IOD. A step 408 comprises verifying, by the server, verifies the first user and the IOD. The step 408 may correspond to 212 of method 200.

[0133] A step 410 comprises connecting, by the server to the IOD. Step 410 may correspond to step 220 of method 200 of starting a session. Connecting is based on the identity of the IOD, such as using information on how to connect to the IOD.

[0134] A step 412 comprises, sending by the first communication device, application data to the server. The server receives the application data from the first communication device. The step 412 may correspond to step 230 of method 200 and step 310 of method 300. The application data comprises application logic related to the application and is configured to personalize the server-based application.

[0135] A step 414 comprises executing, by the server, at least one container of the serverbased application on the server. The step 414 may correspond to step 240 of method 200. The at least one container is configured to run the server-based application.

[0136] A step 416 comprises streaming, output data of the server-based application to the IOD. The step 416 may correspond to step 250 of method 200. The output data is the user interface or content of the server-based application configured by the application data. The step 416 may continuously be performed until a step 444.

[0137] A step 418 comprises providing, by the first user, user-related input data to the first communication device. The first user performs a selection being the user-related input data in the user interface of the application device, which updates the user interface.

[0138] A step 420 comprises obtaining, by the first communication device, the selection. The step 420 may correspond to step 316 of method 300.

[0139] A step 422 comprises sending, by the first communication device, the selection to the server. The step 422 may correspond to step 320 of method 300. Step 422 enables updating the application state of the server-based application to be synchronized with the application. A step 424 comprises obtaining, by the server, the selection by receiving selection from the first communication device. The step 424 may correspond to step 260 of method 200. The server inputs the selection into the server-based application. Inputting may cause updated output data.

[0140] A step 426 comprises streaming, by the sever, output data to the IOD, wherein the output data is updated based on the selection. Alternatively, the step 426 may comprise streaming, by the server, output data to the IOD and to the first communication device. The step 426 may correspond to step 262 of method 200. Step 418 to 426 enables the first user to interact with the content of the user interface of the application and / or server-based application on the IOD and on the first communication device, wherein user-related input data obtained by the first communication device is synchronized with the user interface displayed on the IOD.

[0141] Referring to figure 4B, in a step 428, the first user provides a selection to the IOD, by providing the selection in the user interface of the server-based application via the IOD, which updates the user interface of the server-based application. The IOD obtains the selection.

[0142] In a step 430, the IOD send the selection to the server.

[0143] A step 432 comprises obtaining, by the server obtains the selection. The server obtains the selection by receiving the selection from the IOD. The step 432 may correspond to step 260 of method 200. The server inputs the selection into the sever-based application. Inputting may cause updated output data. The updated output data may further continuously streamed to the IOD.

[0144] A step 434 comprises sending by the server the selection to the first communication device. The first communication device receives the selection from the server.

[0145] Alternatively, the server streams the output data, such as the updated output data, of the server-based application to the first communication device. The step 434 may correspond to step 250 of method 200. The first communication device inputs the output data or selection streamed or received from the server into the application, wherein the output data of the application may be updated. The first communication device may display the updated output data of the application device. The steps 418 to 426 and / or the steps 428 to 434 may be performed continuously and / or repetitively until at least one criterion has been met.

[0146] In a step 436, the first user initiates closing the application running on the first communication device, which triggers the first communication device to close the application.

[0147] In a step 438, the first communication device obtains the at least one criterion, wherein at least one criterion comprises obtaining the indication that the application running on the first communication device has been closed. The step 436 may correspond to step 332 of the method 300.

[0148] In a step 440, the first communication device sends the notification that the application has been closed. The step 440 may correspond to step 340 of the method 300.

[0149] In a step 442 of the first embodiment, the server obtains that at least one criterion has been met, wherein the criterion comprises receiving the notification that the application has been closed. The step 442 may correspond to the step 264 of method 200.

[0150] In the step 444 of the first embodiment, the server stops streaming the output data to the IOD and / or the first communication device. The step 444 may correspond to the step 270 of method 200 of stopping the session.

[0151] In a step 446 of the first embodiment, the server stops the executing of the serverbased application. The step 446 may correspond to the step 270 of method 200 of stopping the session.

[0152] In a step 448 of the first embodiment, the server disconnects from the IOD. The step 448 may correspond to the step 270 of method 200 of stopping the session.

[0153] Figures 5A to 5B are signaling diagrams of an exemplary interaction of a second embodiment between, the first user 100, the first communication device 110, the server 120, the IOD 130, the second user 160 and the second communication device 170. Figure 5A and 5B are illustrated on two pages for convenience, but they are understood as one single signaling diagram. The steps of Figure 5A continue where the steps of figure 5A end. The second embodiment may in an example be used in a similar setting as the first embodiment.

[0154] Referring to figure 5A, in a step 502, the first communication device sends at least one beacon. The beacon comprises at least the identity of the first communication device and is send via a short-range wireless network. The step 502 may correspond to step 210 of method 200.

[0155] In a step 504, the IOD obtains the at least one beacon.

[0156] In a step 506, the IOD sends the first information to the server. The server receives the first information. Step 506 may correspond to step 210 of method 200. The first information comprises the identity of the first communication device and the identity of the IOD.

[0157] In a step 508, the server verifies the first communication device and the IOD. Step 508 may correspond to step 212 of method 200.

[0158] In case of successful verification, the server connects in a step 510 to the first communication device. The step 510 may correspond to step 220 of method 200 of starting the session.

[0159] In a step 512, the first communication device sends application data related to the application to the server. The server receives the application data, from the first communication device. The step 512 may correspond to step 230 of method 200 and to 310 of the method 300. The application data is the application logic comprising the ability to execute a copy of the application on the server.

[0160] In a step 514, the server executes the application on the server using the application data. The step 514 may correspond to step 240 of method 200. The application on the server is a copy of the application running on the first communication device.

[0161] In a step 516 of the second embodiment, the server streams the output data of the application to the IOD. The step 516 may correspond to step 250 of method 200. In a step 518 of the second embodiment, the server streams the output data of the application to the first communication device. The step 518 may correspond to step 250 of method 200. The application running on the first communication device is paused, by the first communication device and the first communication device streams the output data of the application executed on the server only.

[0162] Steps 520 to 524 are step 428 to step 432 of figure 4B of the first embodiment, wherein step 524 comprises inputting the user-related input data to the application, by the server.

[0163] Step 526 comprises streaming, by the server, the output data of the application executed on the server to the first communication device. Step 526 may correspond to step 250 of method 200. The output data streamed in step 526 is updated based on the user-related input data.

[0164] Step 518 and step 526 is performed continuously until at least one criterion has been met. Additionally, the steps 418 to 426 are performed, wherein step 426 comprises additionally streaming the output data to the first communication device.

[0165] A step 528 comprises moving, by the second user, closer to the IOD.

[0166] A step 530 comprises sending, by the second communication device, at least one beacon to the IOD. The at least one beacon of the second communication device comprises the identity of the second communication device.

[0167] A step 532 comprises obtaining, by the IOD, the at least one beacon of the second communication device.

[0168] In a step 534, the IOD sends the second information to the server.

[0169] In a step 536 the server obtains the at least one criterion, wherein the criterion comprises receiving the second information. The step 536 may correspond to step 264 of method 200. For obtaining the server compares, e.g., the signal strength of the at least one beacon sent by the first communication device to a first threshold. If the signal strength of at least one beacon sent by the first communication device is below the threshold the server obtains the criterion that the first user moves away. Alternatively, the server obtains at least one beacon sent by the second communication device. If the signal strength of at least one beacon sent by the second communication device is higher than a second threshold, and the signal strength of the at least one beacon sent by the first communication device is lower than the first threshold, the server obtains the at least one criterium and may receive the second information.

[0170] In a step 538, the server stops executing the application on the server. The step 538 may correspond to step 270 of method 200 of stopping the session.

[0171] In a step 540, the server sends a notification that the application has been stopped to be executed. The step 540 may correspond to step 270 of method 200.

[0172] In a step 542, the first communication device obtains at least one criterion, wherein the criterion comprises receiving the notification that the application has been stopped to be executed. The step 542 may correspond to step 340 of method 300.

[0173] In a step 544, the first communication device disconnects from the server. The step 544 may correspond to step 340 of method 300.

[0174] Figures 6A to 6B are signaling diagrams of an exemplary interaction of a third embodiment between, the first user 100, the first communication device 110, the server 120 and the IOD 130. Figure 6A and 6B are illustrated on two pages for convenience, but they are understood as one single signaling diagram. The steps of Figure 6A continue where the steps of figure 6A end.

[0175] The IOD is owned by the same entity as the first communication device and is located in the same network, while the server is located in a different network then the first communication device and the IOD. The scenario may corresponds to a private user in a cloud gaming scenario, wherein the server is a cloud server. The first user configures the IOD in a cloud gaming mode, wherein the IOD displays the QR code on the screen., wherein the QR code contains information on how to connect to the IOD. The cloud gaming mode of the IOD comprises the IOD performing a NAT traversal operation to obtain a globally reachable point-of- presence in the network, e.g., by opening ports in a NAT or obtaining a public IP address for NAT traversal.

[0176] In a first step 602, the first communication device obtains at least parts of the first information. The step 602 may correspond to step 302 of the method 300. The first communication device may scan the QR code using a sensor, such as a camera of the first communication device. The first communication device connects to the server.

[0177] In a step 604 the first communication device sends the first information to the server. The server receives the first information. The first information may comprise at least the first information obtained in the QR code and the identity of the first user. The step 604 may correspond to step 304 of method 300 and 210 of method 200.

[0178] In a step 606 the server verifies the first user. The step 606 may correspond to step 212 of method 200. The server allocates computing resources such as gaming resources for the first communication device.

[0179] In a step 608, the server connects to the IOD using the first information. The step 608 may correspond to step 220 of the method 200. The connection establishment may be based on a TLS or QIIIC connection establishment.

[0180] In a step 610 the server verifies the IOD based on the first information. The step 610 may correspond to step 212 of method 200. Verifying comprises authenticating the IOD based on the first information obtained by the first communication device via the QR code.

[0181] In a step 612 the first communication device sends application data to the server. The server receives the application data. The step 612 may correspond to step 230 of method 200 and step 310 of the method 300. The application data may correspond to an application state of the application running on the first communication device and a configuration of the application associated to the first user.

[0182] In a step 614 the server executes the server-based application. The application data is configured to configure the server-based application. The step 614 may correspond to step 240 of method 200. The server has binaries, wherein the application data is migrated in the server-based application. Executing comprising executing at least one container, at least one function associated to the server-based application or at least one virtual machine.

[0183] In a step 616 the server sends to the first communication device an indication that the output data of the server-based application will be streamed to the IOD. The user acknowledges the indication via the first communication device, wherein the first communication device sends an acknowledgment to the indication for accepting or authorizing that the output data will be streamed to the IOD.

[0184] In a step 620, the server streams the output data to the IOD. The output data may be the user interface of the server-based application. Optionally, step 620 comprises streaming output data to the first communication device, wherein the output data streamed to the first communication device is different to the output data streamed to the IOD, wherein the output data streamed to the first communication device is configured to adapt the user interface of the application such as additional buttons and track pads are shown on the user interface of the application. Alternatively, the output data, which may be streamed to the first communication device and to the IOD may be the same.

[0185] The steps 622 to 630 may be the same as steps 418 to 426. Steps 428 to 434 may be additionally or alternatively performed, wherein sending the user-related input data enables the user to use the user interface of the application running on the first communication device to navigate / control the user interface displayed on the IOD via the server-based application and the user-related input data comprises a selection to a game to be played. Obtaining the user-related input data by the server comprises launching the game in the server, wherein the output data of the serverbased application is configured to stream the game user interface to the IOD. The output data is streamed to the first communication device. Optionally, the output data streamed to the first communication device is different to the output data streamed to the IOD after obtaining user-related input data by the server.

[0186] In a step 632 the first communication device obtains at least one criterion, wherein the criterion comprises reaching the second timer threshold The step 632 may correspond to step 332 of the method 300. The timer has been started from obtaining the last user-related input data until reaching the second timer threshold.

[0187] In a step 634 the first communication device sends the notification that the second timer threshold has been reached. The step 634 may correspond to step 340 of the method 300.

[0188] In a step 636, the server obtains at least one criterion, wherein the criterion comprises receiving the notification that the second timer threshold has been reached. The step 636 may correspond to step 264 of method 200.

[0189] In a step 638 the sever stops streaming output data to the IOD. The step 638 may correspond to step 270 of method 200.

[0190] In a step 640 the server disconnects from the IOD. The step 640 may correspond to the step 270 of method 200.

[0191] While certain embodiments do not implement containerization, alternative embodiments may implement different forms of containerization using Docker, Buildah, Containerd, Linux Daemon (LXD), Podman, Vagrant, ZeroVM, RLINC, Rkt, Microsoft Azure Container Registry, Kaniko, or BuildKit. Containerization is the packaging together of software code with all necessary components such as libraries, frameworks, and other dependencies so that the software code with all necessary components for executing the software code are isolated in their own container. A container is a standard unit of software that packages up code for an application and all its dependencies such that the application runs quickly and reliably from one computing environment to another. The containers on a host device (e.g., a network device, a specific-purpose network device, a network element, a general-purpose network device, a network element, or a hybrid network device), simply access an operating system kernel of the host device and as a result, the containers may be more efficient and more light-weight than virtual machines, as the virtual machines may require dedicated operating system instances. The containers comprise components necessary to run one or more of the sets of applications such as programs, files, libraries and microservices. A container image comprises all the components that exist in the container. The container image may be used to create and / or build the container. Container images become containers at runtime. For example, in the case of Docker containers, container images become containers when they run on a Docker Engine. The containers may be separate from each other. The containers may use system memory that has been virtually separated for user space of the operating system. The containers may be separate from a kernel space of the operating system. The containers may be a runtime version of one or more container images.

[0192] In some embodiments, virtual machines may be managed by a virtual machine management platform. Management by the virtual machine management platform may take the form of allocating and assigning computation, interface, and memory resources of the hardware to the virtual machines dependent on capacity, need, and other custom metrics. Examples of virtual machine management platforms are Linux’s Kernel based Virtual Machine (KVM), Quick EMUIator (QEMLI), vMware, Oracle VirtualBox and VirtualPC.

[0193] Figure 7 illustrates a block diagram illustrating embodiments of the server 110 in further detail. In practice, the steps 210 to 270 of the method 200 performed by the server are performed by a processing circuitry 704, embodied in one or more microprocessors arranged to execute a computer program 701 that is downloaded to a computer program product 705, here in the form of a suitable computer readable storage medium 702 associated with the microprocessor, such as random access memory (RAM), read-only memory (ROM), or a non-volatile computer readable storage medium, such as flash memory or a hard disk drive, or any combination thereof. The computer program 701 comprises computer-executable instructions stored or downloaded to the memory 702 and are executable by the processing circuitry 704. Alternatively, the computer program 701 may be transferred to the storage medium 702 using a suitable computer program product, such as a memory stick or in a memory of a device. Thus, the computer program 701 may be stored in any suitable manner in the computer program product. The processing circuity 704 is arranged to cause the second server to carry out the steps 210 to 270 of method 200 in accordance with any of the of the described embodiments for steps 210 to 270. The processing circuitry is in one embodiment a general-purpose processor, but may alternatively be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), etc. An I / O interface 703 is provided for communicating with external and / or internal entities using wired communications, e.g., based on Ethernet, and / or wireless communications, e.g., Wi-Fi, and / or a cellular network corresponding to one or a combination of 5G cellular networks, LTE, LTE-advanced, UMTS, or any other current or future wireless network, such as a future 3GPP 6G network, as long as the principles described below are applicable.

[0194] Figure 8 illustrates a block diagram illustrating embodiments of the first communication device in further detail. In practice, the steps 302 to 340 of the method 300 performed by the first communication device are performed by a processing circuitry 804, embodied in one or more microprocessors arranged to execute a computer program 801 that is downloaded to a computer program product 805, here in the form of a suitable computer readable storage medium 802 associated with the microprocessor, such as random access memory (RAM), readonly memory (ROM), or a non-volatile computer readable storage medium, such as flash memory or a hard disk drive, or any combination thereof. The computer program 801 comprises computer-executable instructions stored or downloaded to the memory 802 and are executable by the processing circuitry 804. Alternatively, the computer program 801 may be transferred to the storage medium 802 using a suitable computer program product, such as a memory stick or in a memory of a device. Thus, the computer program 801 may be stored in any suitable manner in the computer program product. The processing circuity 804 is arranged to cause the second server to carry out the steps 302 to 340 of method 300 in accordance with any of the of the described embodiments for steps 302 to 340. The processing circuitry is in one embodiment a general-purpose processor, but may alternatively be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), etc. An I / O interface 803 is provided for communicating with external and / or internal entities using wired communications, e.g., based on Ethernet, and / or wireless communications, e.g., Wi-Fi, and / or a cellular network corresponding to one or a combination of 5G cellular networks, LTE, LTE-advanced, UMTS, or any other current or future wireless network, such as a future 3GPP 6G network, as long as the principles described below are applicable. In some examples, the first communication device is configured to transmit and / or receive information without direct human interaction. For instance, the first communication device may be designed to transmit information to an access network on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network. Additionally, a UE may be configured for operating in single or multi- RAT or multi-standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e., being configured for multi radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC). The first communication device of the first user is the first communication device used by the first user in the method 200 and 300.

Claims

CLAIMS1 . A method performed by a server (120) comprising: receiving (210) first information for initiating a first verification; upon successful first verification based at least on parts of the first information, starting (220) a session; during the session: receiving (230) application data, from a first communication device (110) of a first user (100), related to an application running on the first communication device (110); executing (240) a server-based application using the application data; streaming (250) output data of the application and / or the server-based application to an input output device, IOD (130); obtaining (260) user-related input data from the IOD (130) and / or the first communication device (110), wherein the user-related input data is configured to update the output data; in response to obtaining at least one criterion, stopping (270) the session.

2. The method according to claim 1 , wherein the method comprises: obtaining (264) the at least one criterion, wherein the at least one criterion comprises at least one of: receiving a notification to stop obtaining user-related input data; receiving a notification to stop streaming output data; receiving a notification to stop executing the server-based application; obtaining an indication that the application has been closed; obtaining an indication that a server-based application has been closed; reaching a first timer threshold; receiving a notification that a second timer threshold has been reached; and / or receiving second information for initiating a second verification, wherein the second information comprises an identity of the IOD (130).

3. The method according to any of the preceding claims, wherein stopping (270) the session comprises at least one of: sending, to the IOD (130), a notification to delete the output data; stopping the receiving of user-related input data; stopping streaming; stopping the executing of the server-based application on the server (120); sending, to the IOD (130) a notification to stop sending user-related input data; sending, to the first communication device (110), a notification to stop sending user-related input data; sending, to the IOD (130), a notification that the server-based application has been closed; sending, to the first communication device (110), a notification that the server-based application has been closed; sending, to the first communication device (110), a notification that a first timer threshold has been reached; disconnecting from the IOD (130); and / or disconnecting from the first communication device (110).

4. The method according to any of the preceding claims, wherein receiving (210) the first information comprises receiving the first information from the IOD (130) and / or from the first communication device (110).

5. The method according any of the preceding claims, wherein the first information comprises at least one of: an identity of the first user (100); an identity of the IOD (130); an identity of an application session; an identity of the first communication device (110); user data associated to at least one configuration associated to the first user (100);user data associated to at least one tracked operation associated to the first user (100); information associated to the IOD (130); information associated to the first user (100); at least one beacon; a notification of detection of the first communication device (110), a notification of detection of the first user (100); and / or a notification of detection of the IOD (130).

6. The method according to any of the preceding claims, wherein the method comprises: streaming (242) output data of the application received from the first communication device (110).

7. The method according to any of the preceding claims, wherein executing (240) comprises executing at least one container (140) of the server-based application on the server (120).

8. The method according to any of claim 7, wherein the container (140) is configured to save at least a part of user-related input data, a part of the application data and / or a part of the first information until the criterion has been met or until a second timer threshold has been reached.

9. The method according to any of the preceding claims, wherein starting (220) the session comprises at least one of: connecting to the IOD (130) using at least parts of the first information and / or connecting to the first communication device (110) using at least parts of the first information.

10. The method according any of the preceding claims, wherein the first verification comprises: verifying (212) the first user (100) based on the first information; and / orverifying (212) the IOD (130) based on the first information.11 . The method according any of the preceding claims, wherein the application data comprises at least one of: a user interface of the application; at least parts of an application logic related to the application; and / or at least one configuration of the application associated with the first user (100).

12. The method according any of the preceding claims, wherein the user-related input data comprises at least one of: a configuration associated with the first user (100); output data of the application running on the first communication device (110); at least one tracked operation associated with the first user (100).

13. The method according to any of the preceding claims, wherein the method comprises: adapting output data based on at least one parameter; and / or adapting application data based on at least one parameter.

14. The method according to any of the preceding claims, wherein the method comprises sending (224), to the first communication device (110), an indication, that the IOD (130) has been associated to an application session and / or sending (224), to the first communication device (110), an indication to send the application data.

15. The method according to any of the preceding claims, wherein the method comprises: sending (262) the user-related input data to the server-based application and / or the application.

16. A method (300) performed by a first communication device (110) of a first user (100) comprising: during a session: sending (310) application data, related to an application running on the first communication device (110), to a server (120); sending (320), to the server (120) and / or receiving (330), from the server, user-related input data; and in response to obtaining at least one criterion, initiating (340) stopping the session.

17. The method according to claim 16, wherein the method comprises: obtaining (332) the at least one criterion, wherein the at least one criterion comprises: receiving a notification to stop sending user-related input data; receiving a notification that a server-based application has been closed; reaching a second timer threshold; receiving a notification that a first timer threshold has been reached; obtaining an indication that the application has been closed; obtaining an indication that a stand-by mode of the first communication device (110) has been initiated; obtaining an inactivity of the first user (100).

18. The method according to any of claims 16 to 17, wherein initiating (340) stopping the session comprises at least one of: stopping sending user-related input data; sending, to the server (120), a notification to stop receiving user-related input data; sending, to the server (120), a notification to stop streaming output data; sending, to the server (120), a notification that a third timer threshold has been reached;sending, to the server (120), a notification that the application has been closed; sending, to the server (120), a notification to stop executing the serverbased application; and / or disconnecting from the server (120).

19. The method according to any of claims 16 to 18, the method comprises: sending (304), to the server (120), first information for initiating a first verification.

20. The method according to claim 19, wherein the first information comprises at least one of: an identity of the first user (100); an identity of the IOD (130); an identity of an application session; an identity of the first communication device (110); a pointer to the IOD (130); user data associated to at least one initial configuration associated to the first user (100); user data associated to at least one tracked operation associated to the first user (100); at least one beacon; and / or a notification of detection of the IOD (130).21 . The method according to any of claims 16 to 20, wherein the method comprises: streaming (312) output data of a server-based application from the server (120); and streaming (314) output data of the application to the server (120).

22. The method according to any of claims 16 to 21 , wherein the application data comprises at least one of: a user interface of the application;at least parts of an application logic related to the application; and / or at least one configuration of the application associated to the first user(100).

23. The method according to any of claims 16 to 22, wherein the user-related input data comprises at least one of: at least one a configuration associated to the first user (100); output data of the application running on the first communication device (110); at least one tracked operation associated to the first user (100).

24. The method according to any of claims 16 to 23, wherein the method comprises: adapting output data of the application and / or the server-based application, the application data and / or the user-related input data based on at least one parameter.

25. The method according to any of claims 16 to 24, wherein the method further comprises receiving (306), from the server (120), an indication that the IOD (130) has been associated to an application session; and / or receiving (306), from the server (120), an indication to send the application data.

26. A server (120) configured to: receive first information for initiating a first verification; upon successful first verification based at least on parts of the first information, start a session; during the session: receive application data, from a first communication device (110) of the first user (100), related to an application running on the first communication device (110); execute a server-based application using the application data;stream output data of the application and / or the server-based application to an input output device, IOD (130); obtain user-related input data from the IOD (130) and / or the first communication device (110), wherein the user-related input data is configured to update the output data; in response to obtaining at least one criterion, stop the session.

27. The server (120) according to claim 26, configured to perform the method according to any of claims 2 to 15.

28. A server (120), comprising a processor and a memory, the memory containing instructions executable by the processor whereby the server (120) is configured to: receive first information for initiating a first verification; upon successful first verification based at least on parts of the first information, start a session; during the session: receive application data, from a first communication device (110) of the first user (100), related to an application running on the first communication device (110); execute a server-based application using the application data; stream output data of the application and / or the server-based application to an input output device, IOD (130); obtain user-related input data from the IOD (130) and / or the first communication device (110), wherein the user-related input data is configured to update the output data; in response to obtaining at least one criterion, stop the session.

29. The server (120) according to claim 28, configured to perform the method according to any of claims 2 to 15.

30. A first communication device (110) configured to:during a session: send application data, related to an application running on the first communication device (110), to a server (120); send, to the server (120) and / or receive, from the server (120), user-related input data; and in response to obtaining at least one criterion, initiate stopping the session.31 . The first communication device (110) according to claim 30, configured to perform the method according to any of claims 17 to 25.

32. A first communication device (110), comprising a processor and a memory, the memory containing instructions executable by the processor whereby the first communication device (110) is configured to: during a session: send application data, related to an application running on the first communication device (110), to a server (120); send, to the server (120) and / or receive, from the server (120), user-related input data; and in response to obtaining at least one criterion, initiate stopping the session.

33. The first communication device (110) according to claim 32, configured to perform the method according to any of claims 17 to 25.

34. A computer program (701 , 801 ) comprising instructions which, when executed on: at least one processor of a server (120), cause the at least one processor of the server (120) to carry out the method according to any one of claims 1 to 15; and / or at least one processor of a first communication device (110), cause the at least one processor of the first communication device (110) to carry out themethod according to any of claims 16 to 25.

35. A tangible, non-transitory-computer-readable medium comprising instructions that, when executed on at least one processor of a server (120), cause the at least one processor of the server (120) to carry out the method according to any one of claims 1 to 15; and / or at least one processor of a first communication device (110), cause the at least one processor of the first communication device (110) to carry out the method according to any of claims 16 to 25.

Citation Information

Patent Citations

  • Authentication of user tags obtaining communication services via I / O user devices performing user terminal emulation as a cloud computing service

    WO2023208354A1

  • Playback Session Transitions Across Different Platforms

    US20210224026A1

  • Device discovery for social playback

    US20220360614A1