The present invention relates to setting up a connection between applications on different devices. In particular, the present invention relates to setting up a connection between an HbbTV application on an HbbTV device and a second application on a mobile device.
Version 2 of the HbbTV specification defines a mechanism with which an HbbTV application (“app”) is able to find display-capable devices (e.g. tablets, mobile phones, etc.) in the local network and launch applications on the devices found. However, HbbTV-2 only describes the interface via which an HbbTV application can trigger the search for devices (“discovery”) and the launch of applications (“launch”). Therefore, manufacturer-specific protocols are typically employed for communication between the display-capable device (“second screen”) and the HbbTV device.
The HbbTV 2 standard provides that HbbTV device manufacturers furnish applications that implement the endpoints of a manufacturer-specific protocol on the HbbTV device and the respective display-capable device. Such manufacturer-specific launcher applications conforming to the HbbTV standard have the following weaknesses:
The present invention overcomes these and other problems of the methods known from the prior art for setting up a connection between applications on different devices. In this case, the present invention is not limited to HbbTV but can generally be used for setting up a connection between applications on different devices.
A method according to the invention comprises: setting up a connection between a first application on a first device and a communication service on the first device, using an identification which is assigned to a second application, setting up a connection between the second application, which is executed on a second device, and the communication service, using the identification, setting up a communication channel between the first application and the second application via the communication service, and receiving, by the second application, a first message from the first application, wherein the first message designates a third application to be executed on the second device and/or a first service of the third application to be executed on the second device.
In this case, the phrase “setting up a connection”, as it is used in the context of the present description and the claims, is to be understood, in particular, to denote the sending and receiving of messages by means of which usage data can be transmitted from one application on one device to an application on another device. Further, the term “application”, as it is used in the context of the present description and the claims, is to be understood, in particular, to denote a software program that adds to a device hitherto unavailable services and thus expands the possibilities of using the device. For example, the software program may be especially designed for execution on the operating system of the terminal device (e.g. a “native” Android or iOS application). However, the software program may also be designed in such a way that it is interpreted and executed by other applications (e.g. a web page that contains HTML, CSS and/or JavaScript code and is executed by a web browser or an application containing a web browser).
In this context, the term “device”, as it is used in the context of the present description and the claims, is to be understood, in particular, to denote an interconnection of electrical and electronic components within a functional unit, wherein the electrical and electronic components may be provided with a component-related software layer enabling the installation of an operating system on different devices.
In addition, the term “communication service”, as it is used in the context of the present description and the claims, is to be understood, in particular, to denote a service which is provided on the device by a software layer and which contributes to enabling a transmission of messages from one device to another device. In this context, the term “communication channel”, as it is used in the context of the present description and the claims, is to be understood, in particular, to denote a transmission link via which messages can be transmitted from one application on one device to an application of another device. Moreover, the term “identification”, as it is used in the context of the present description and the claims, is to be understood, in particular, to denote information which can be played back digitally and by means of which a unique assignment of entities is possible (e.g. a type of application or an instance of an application).
Preferably, the first device is configured for playing back image and sound data. For example, the first device may be configured as a television device.
Preferably, the first device is configured as an HbbTV-capable receiving device. For example, the first device may be configured as an HbbTV-capable television device.
Preferably, the first application on the first device is assigned to a first broadcasting channel, and is automatically launched or can be manually launched when the first device plays back image and sound data of the first broadcasting channel. For example, the first application may be issued by a broadcasting station and provide information and services concerning a broadcasting channel of the broadcasting station and/or interactive elements pertaining to the broadcasting channel.
Preferably, the second application verifies whether the first application is authorized to initiate the execution of the third application and/or the first service, and causes an execution of the third application and/or the first service if the first application is authorized to initiate the execution of the third application and/or the first service.
Preferably, the method further comprises: terminating the first application and executing a fourth application on the first device, setting up a communication channel between the fourth application and the second application via the communication service, using the identification, and receiving, by the second application, a second message from the fourth application, wherein the second message designates a fifth application to be executed on the second device and/or a second service of the fifth application to be executed on the second device.
The termination of the first application and the execution of the fourth application on the first device may result, for example, from a switch between a first and a second broadcasting channel and lead to other applications and/or services being launched on the second device in order to take account of the switching process and the accompanying shift of the attention of the user toward the second broadcasting channel.
The invention may further comprise the distribution of a third message by the second application executed on the second device, and a replying, by the first device, to the third message, wherein the reply includes the address of the communication service on the first device.
I.e., the second application is able to search for the first device in a network, wherein the search is completed when the first device replies with the address of the communication service on the first device.
The second application executed on the second device may be configured to repeat a set-up attempt with regard to the communication channel until the communication channel is set up.
The communication channel between the first and the second application can be set up with both using an identification identifying an instance of the second application on the second device. As a result, identical applications executed on different devices can be differentiated from each other and thus addressed in a targeted manner.
The identification may be persistently stored on the first device by the first application, and an access to the stored identification may be limited to applications originating from the same source (e.g. the same web origin) as the first application.
For example, access to the stored identification may be limited to applications issued or made available at the same internet address by the same broadcasting station.
The second application may transmit the identification to the first application, which persistently stores it on the first device.
The identification can be provided to a fifth application, which is executed on the first device and originates from a different source than the first application, and persistently stored on the first device by the fifth application.
That is, if desired, identifications may be relayed by applications to other applications, whereby they do not have not undergo the process of searching and determining suitable devices/applications.
The first application may be configured to relay the identification to the fifth application, and the fifth application may be configured to persistently store the second identification on the first device.
The second application may transmit the identification and sources of authorized applications to a sixth application on the first device, which executes the authorized applications and supplies them with the identification, wherein the authorized applications store the identification on the first device and assign them to their source.
The identification can be derived from a user input and persistently stored by an application on the first device.
The first application on the first device may send to the second application on the second device, by means of the identification via an external communication service, a fourth message that designates the third application and/or the first service provided by the third application.
The first application on the first device may send to the second application on the second device, via an external communication service and using the identification, a fifth message that prompts the second application to set up the connection between the second application and the communication service.
The third application to be executed on the second device and/or the first service to be executed on the second device may be executed immediately or at a later point in time in response to the first message or in response to a confirmation input.
Preferably, the third application provides a user interface coordinated with the playback on the first device, wherein the coordination takes place by means of a communication channel set up between the first application and the third application.
In this case, it will be understood that the steps carried out in the context of the method can be executed by instructions persistently stored on a device, by which the device is configured to carry out the steps.
The invention is explained below in the detailed description based on exemplary embodiments, wherein reference is made to drawings, in which:
Here, the same or functionally similar elements are labeled in the drawings with the same reference numbers.
As shown in
After the second application 24 has found the communication service 22 (or the APP2APP remote endpoint), it can set up a connection with it, as illustrated in
The second application 24 may be configured to allow applications 20 (e.g. different HbbTV applications) by different providers or applications 20 from different sources on the first device 12 to launch applications/services on the second device 16. In order for an application 20 on the first device 12 to be able to connect with the second application 24, the respective application 20 requires knowledge of an ID, which may be, for example, a type and/or instance identifier of the second application 24. In this case, it may be provided that the ID stored by a certain application 20 on the first device 12 may only be read by applications 20 originating from the same source (or were downloaded from the same source). In this context, a source may be defined, for example, by a communication protocol (e.g. http or https), a host (e.g. www.irt.de) and a port (e.g. 80) via which the application can be downloaded, wherein the applications 20 by different publishers are generally obtained from different sources. However, a publisher may also offer applications 20 via different sources.
As shown in
As is illustrated in
If the first application 20 does not appear in any list, the second application 24 may prompt the user to indicate whether he consents to this (and future) launches of applications and/or services by the first application 20. If the first application 20 is authorized to launch the respective application and/or the respective service, the second application 24 may notify the first application 20 of this and then attempt to launch the requested application or the requested service. If the first application 20 is not authorized, the second application 24 may also notify the first application 20 of this. In this case, the second application may provide 24 details as to the reasons, e.g. that the first application 20 is included in a “blacklist”. This allows the first application 20 to display corresponding notices to the user.
In the HbbTV segment, the above-described solution offers an alternative for the manufacturer-specific “launcher” applications specified in HbbTV-2. It permits the “launch” of applications/services on “second screens” across TV services and in the process requires no additional web server. The latter is advantageous in that the operating costs are not increased as the number of users rises. In addition, no data have to be stored outside the second application 24, with the exception of the ID on the first device 12. A user profile, which contains a history of launched applications/services and a list of favorites with applications/services managed by the user, for example, may be stored in the second application 24 on the second device 16. Thus, the user has full and sole sovereignty over their data and is the only one capable of reading, deleting and changing them.
In order to avoid the user having to input the ID for each application 20 (that is supposed to be able to connect with the second application 24) individually, a list of these applications 20 may be stored in the second application 24, and the second application 24 may be configured to address the applications 20 on the first device 12 one after the other and notify them of the ID in the process.
In the case of HbbTV applications, the discovery and launch protocols from HbbTV-2, for example, may be used for this purpose. For example, the second application 24 may transmit the ID via the communication service, or already as a parameter in the start URL, to the applications 20 on the first device 12, which may persistently store them on the first device 12 (e.g. in a cookie). The ID is then available for future connections. The list of applications 20 on the first device 12 that (possibly) require the ID may be updated in “updates” of the second application 24. After the update, another setup (with a sequential addressing of the applications 20 on the first device 12) may be carried out.
For example, the second application 24 may launch an application 20 from a certain source on the first device 12 (for example, via the DIAL protocol from the HbbTV specification in an HbbTV environment) and transmit the ID in the process. The application 20 from the source may store the ID and relay it to an application 20 from a further source. The application 20 from the further source may also store the ID and, in turn, relay it to an application 20 from another source, etc.
Where the applications 20 are supposed to relay the ID may be defined in different ways. For example, an application 20 from a certain source may be provided with a list of further applications 20 to which the ID is supposed to be relayed, and during the relaying process, the list may be handed over, together with the ID, to the first application 20 on the list. The first application 20 on the list may then be removed from the list, and the list may be handed over, together with the ID, to the next application 20 on the list, etc.
Moreover, the first application 20 may set up a connection with the second application 24 and notify the second application 24 that it has stored the ID. Then, the second application 24 may send a command to the first application 20 to relay the ID to another application 20 from another source, which then sets up a connection with the second application 24, etc.
Furthermore, the second application 24 may launch (e.g. in an HbbTV environment by means of the DIAL protocol from the HbbTV-2 specification) all application 20 from the authorized source one after the other and in each case transmit the ID in the process.
Moreover, the second application 24 may launch an application on the first device 12 and transmit in each case the URLs of all applications 20 from authorized sources. The launched application may then incorporate the applications 20 from the authorized sources as inline frames and hand over the ID to the applications 20 in the inline frames. For example, the ID may be handed over to the addresses of the applications 20 from authorized sources by means of URL parameters. Moreover, the ID may be transported between the launched application and the authorized applications 20 by means of the W3C web messaging API, by being embedded into inline frames.
In addition, a web service may be used. In the event an application 20 on the first device 12 wants to connect to the second application 24, and the ID is not provided, the application 20 may configure a relay to the application of the web service. If the ID is not available to the application of the web service, it may prompt the user to input the ID. If the user has inputted the ID, the application of the web service may store it on the first device 12. Then, the application of the web service may install forwarding to the application 20 on the first device 12 and transmit the ID in the process. The application 20 on the first device 12 may store the ID on the first device 12. Thus, the ID can be made available to all applications 20 on the first device 12 by means of a relay to the application of the web service.
Moreover, on second devices 16 with Android and iOS operating systems, the web service may serve as a central gateway to Google's “Firebase Cloud Messaging” service (other platforms for second devices 16 offer equivalent services). Applications 24 that run in the background on a device 16 and do not have special privileges are typically cleaned up by the operating system after a certain time, in order to free up resources such as working memory and CPU. In this state, said applications 24 are no longer able to execute any code. In the cleaned-up state, the second application 24 could no longer search for the first device 12 or the communication service 22 in the network (home network) or respond to messages from a first application 20. Besides the user restarting the second application 24, scheduled tasks (e.g. “JobScheduler” under Android) and “Firebase Cloud Messages” (FCM) may be used in order to render the second application 24 capable of acting again. FCMs are push notifications that can be sent via the Firebase Cloud Messaging service to an application on a device 16.
In response to an FCM, the application 24 may display a notification (e.g. a “notification” as an “icon” in the status bar, optionally supported by a vibration alert and/or a signal tone) to the operator, via which the user can then launch the second application 24 again. Under Android, it is also possible to launch the application 24 by means of FCM as a so-called “foreground” service. This is a service that runs in the background on a device 16 but is visible to the user in the process, e.g. by an icon in the status bar. In combination with FCM, the web service offers to applications 20 on a first device 12 the possibility of triggering actions in non-reachable second applications 24 on a second device 16 that make them capable of being reached again.
Number | Date | Country | Kind |
---|---|---|---|
EP19194998 | Sep 2019 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2020/070413 | 7/20/2020 | WO |