Patent Description:
More specifically, the disclosure relates to a method for the notification of client modules implemented in such wireless devices, e.g. when updated data are available for the client modules.

The disclosure can be of interest in any field wherein such client modules that needs to be notified are implemented in a wireless device. This is the case for instance for terminal equipment such as smartphones or connected objects like e.g. loT (for "Internet of Things") objects.

Wireless devices, such as smartphones or loT devices, are usually made of different client modules from various providers.

In practice, such "module" can be a piece of software running on general purpose hardware capabilities of the wireless device (e.g. a CPU core (for "Central Processing Unit"), a MCU (for "Microcontroller Unit"), a DSP (for "Digital Signal Processing processor"), etc.). This is the case for instance when the client module is an application running on a smartphone. Alternatively, such "module" can directly be a device or system (e.g. including hardware blocks and pieces of software) that is configured for running the client system. For example, basic loT devices typically integrate a communications module for WIFI or Cellular connectivity. In both cases (i.e. pure software "module" or device type "module"), updates may be required during the life cycle of the wireless device.

In that respect, each module may implement one or more independent connections to different systems. For example, a connectivity module has connection to a vendor specific FOTA (for "Firmware Over-The-Air") system and security system. Alternatively, a MCU has multiple connection use-cases like customer specific FOTA system and loT Management platform for an loT device. In this later case, the different client modules may be managed with a customer loT Management platform at application level using for example dedicated remotely managed "IoT ressources", e.g. firmware object, but with price of a complex backend integration of the different client modules.

So, usually the different client modules remain independent with multiple "pooling" connections allowing the different client modules to be notified, for example:.

This leads to multiple connections with impact on the overall wireless device power consumption and communication bandwidth. Such problematic is further critical for loT devices for which the power consumption is critical and the communication bandwidth is by construction limited.

There is thus a need for a solution for notifying client modules implemented in a wireless device, e.g. for informing the client modules when updated data are available from service providers, that reduces the power consumption and the need in term of communication bandwidth compared to the known techniques for such notification. Document <CIT> discloses approach for asynchronous distribution of content and notifications of updates to a client.

The invention is disclosed bz the appended claims.

Other features and advantages of embodiments shall appear from the following description, given by way of indicative and non-exhaustive examples and from the appended drawings, of which:.

In all of the figures of the present document, the same numerical reference signs designate similar elements and steps.

Referring now to <FIG>, we illustrate a wireless device <NUM> implementing client modules 100cma, 100cmb, 100cmc as well as different servers <NUM>, 150a, 150b, 150c, the wireless device <NUM> and the servers <NUM>, 150a, 150b, 150c being both communicatively connected to a wireless communications network <NUM> according to one embodiment of the present disclosure.

More particularly, as detailed above in the section "technological background", such modules can be:.

In the present embodiment, the wireless device <NUM> (e.g. a smartphone, an loT object, a tablet implementing a wireless connectivity module, etc.) implements three client modules 100cma, 100cmb, 100cmc. However, in other embodiments, the wireless device <NUM> implements any number of client modules 100cma, 100cmb, 100cmc, e.g. only one client module, a plurality of client modules, etc..

Back to <FIG>, the wireless device <NUM> is wirelessly communicatively connected to the wireless communications network <NUM> going through a base station <NUM>. For this, the wireless device <NUM> comprises a wireless connectivity system 100wm comprising wireless means for allowing the connection of the wireless device <NUM> to the wireless communications network <NUM>. The wireless communications network <NUM> is a LPWAN dedicated to the internet of things (e.g. a NB-loT network, a LoRa® network or a SigFox® network). However, in other embodiments, the communication between the wireless device <NUM> and the core of the wireless communications network <NUM> goes through e.g. a satellite broadcast network, a WiFi network or a cellular network (e.g. a <NUM>/<NUM>/<NUM>/<NUM>. 3GPP cellular network).

Back to <FIG>, service providers servers 150a, 150b, 150c comprising respective service module 150sma, 150smb, 150smc are also communicatively connected to the wireless communications network <NUM>. The communication between the service providers servers 150a, 150b, 150c and the core of the wireless communications network <NUM> goes through a wired communications link, e.g. a xDSL communications link implementing an internet protocol. However, in other embodiments, such communication between the service providers servers 150a, 150b, 150c and the core of the wireless communications network <NUM> goes through a wireless communications link, e.g. based on a cellular protocol (e.g. a 3GPP <NUM>, <NUM>, <NUM> or <NUM> protocol) or on a WiMAX protocol.

Back to <FIG>, one (or more) of the service modules 150sma, 150smb, 150smc is configured for notifying that specific data are available, in the corresponding service providers servers 150a, 150b, 150c, for one (or more) respective client modules 100cma, 100cmb, 100cmc. In that respect, the one (or more) service module 150sma, 150smb, 150smc does not directly notify the one (or more) respective client module 100cma, 100cmb, 100cmc by going through the wireless communications network <NUM> as usually done in the prior art solutions. Indeed, as detailed more deeply below in relation with <FIG>, according to the present solution the one (or more) service module 150sma, 150smb, 150smc sends an initial notification to a notification service device 110d implemented in a server <NUM> communicatively connected to the wireless network <NUM>. Responsive to receiving the one (or more) initial notification, the notification service device 110d sends a notification to the notification client device 100d implemented in the wireless device <NUM> that, for one (or more) of the client modules 100cma, 100cmb, 100cmc for which an initial notification has been received, respective specific data are available in a service providers server 150a, 150b, 150c.

Having in the wireless device <NUM> a notification client device 100d dedicated to receiving the notifications sent by the notification service device 110d on the network side, in place of having the client module(s) 100cma, 100cmb, 100cmc directly receiving respective notification(s) from the service module(s) 150sma, 150smb, 150smc (e.g. following a "polling" of a respective service module by a client module), allows optimizing the connection between the notification client device 100d and the notification service device 110d through the wireless network <NUM> in respect of the notifications. Indeed, the client module(s) 100cma, 100cmb, 100cmc may implement non-optimized protocols for the exchange of notification data with the network side whereas the notification client device 100d and the notification service device 110d may implement an optimized protocol based on the features of the wireless network <NUM>.

For instance, in some embodiments the notification client device 100d is implemented in the wireless connectivity system 100wm. As such, the notification client device 100d can rely more easily on dedicated mechanisms linked to the protocol implemented in the wireless communications network <NUM> in respect of the sending of notifications to the wireless device <NUM> from the network side. For instance, when the wireless communications network <NUM> is a LPWAN, the notification sent by the notification service device 110d to the notification client device 100d can follow a power optimized protocol usable for such notifications. It can be e.g. a eDRX (for "Extended Discontinuous Reception") and/or PSM (for "Power Saving Mode") protocol or a LoRaWAN protocol.

In some embodiments, the wireless device <NUM> comprises further wireless means for allowing the connection of the wireless device <NUM> to a second wireless communications network. In such embodiments, the wireless device <NUM> is configured for having the client modules 100cma, 100cmb, 100cmc receiving the respective specific data from the corresponding service providers servers 150a, 150b, 150c through the second wireless communications network. In that case, the service providers servers 150a, 150b, 150c are also communicatively connected to the second wireless communications network. For instance, the second wireless communications network is a WiFi network, a satellite broadcast network or a cellular network (e.g. a <NUM>/<NUM>/<NUM>/<NUM>. 3GPP cellular network). Such embodiments are of particular interest e.g. when the wireless communications network <NUM> used for the notification is a LPWAN, thus providing low bandwidth for the update of the client modules 100cma, 100cmb, 100cmc with the specific data. In such case, a second wireless communications network providing higher bandwidth is preferable for receiving the specific data.

Referring now to <FIG>, in order to be able to implement the corresponding steps of the method for notifying at least one client module implemented in a wireless device, in the various embodiments disclosed below in relationship with <FIG>, in some embodiments the notification client device 100d comprises:.

The non-volatile memory <NUM> is a non-transitory computer-readable carrier medium. It stores executable program code instructions, which are executed by the processor <NUM> in order to enable implementation of some steps of the method described below (method for notifying at least one client module implemented in a wireless device) in the various embodiments disclosed below in relationship with <FIG>.

Upon initialization, the aforementioned program code instructions are transferred from the non-volatile memory <NUM> to the volatile memory <NUM> so as to be executed by the processor <NUM>. The volatile memory <NUM> likewise includes registers for storing the variables and parameters required for this execution.

The steps of the method for notifying at least one client module implemented in a wireless device may be implemented equally well:.

In other words, the disclosure is not limited to a purely software-based implementation, in the form of computer program instructions, but that it may also be implemented in hardware form or any form combining a hardware portion and a software portion.

Referring now to <FIG>, in order to be able to implement the corresponding steps of the method for notifying at least one client module implemented in a wireless device, in the various embodiments disclosed below in relationship with <FIG>, in some embodiments the notification service device 110d comprises:.

Referring now to <FIG>, we describe the steps of a method for notifying at least one client module implemented in a wireless device according to one embodiment of the present disclosure and taking as an illustrative example the configuration discussed above in relation with <FIG>.

In a step S400, the notification service device 110d receives initial notifications sent by each of the service modules 150sma, 150smb, 150smc. More particularly:.

Such initial notification comprises information that for a respective client module 100cma, 100cmb, 100cmc implemented in the wireless device <NUM>, respective specific data (e.g. update data) are available in a server 150a, 150b, 150c. In the present case, the notification service device 110d receives three initial notifications, e.g.:.

More generally, when a plurality of client modules 100cma, 100cmb, 100cmc is implemented in the wireless device <NUM>, depending on the use case the notification service device 110d may receive a given number of initial notifications, e.g. over a predetermined time duration. It can be e.g.:.

Back to <FIG>, in a step S410, the notification service device 110d sends a notification, to the notification client device 100d. such notification comprises information that, for the client module 100cma, 100cmb, 100cmc for which an initial notification has been received, respective specific data are available in a server 150a, 150b, 150c communicatively connected to the wireless communications network <NUM>. In view of the initial notifications received in step S400, in the present case the notification comprises information that:.

Correspondingly, in step S410, the notification client device 100d receives the notification sent by the notification service device 110d.

However, in use cases discussed above wherein the notification service device 110d receives a different number of initial notifications, e.g. over a predetermined time duration, than in the embodiment of <FIG>, the notification comprises different information. For instance:.

In some embodiments discussed above in relation with <FIG> wherein the wireless communications network <NUM> is a LPWAN and wherein the notification client device 100d is implemented in the wireless connectivity system 100wm, the notification sent by the notification service device 110d to the notification client device 100d can follow a power optimized protocol usable for such notifications. It can be e.g. a eDRX (for "Extended Discontinuous Reception") and/or PSM (for "Power Saving Mode") protocol or a LoRaWAN protocol.

Back to <FIG>, in a step S420, the notification client device 100d wakes up the one (or more) client module 100cma, 100cmb, 100cmc for which information is comprised in the notification received from the notification service device 110d in step S410. The step S420 is e.g. executed for the one (or more) client module 100cma, 100cmb, 100cmc for which information is comprised in the notification received from the notification service device 110d and that are in a sleep mode. Thus, the wake-up of the one (or more) client module 100cma, 100cmb, 100cmc is executed only when required, thus reducing further the power consumption of the wireless device.

More particularly, in view of the notification received in step S410 in the present case:.

However, in other use cases discussed above wherein the notification received from the notification service device 110d in step S410 comprise information relating to only part of the client modules 100cma, 100cmb, 100cmc, the notification client device 100d wakes up only the client modules 100cma, 100cmb, 100cmc for which information was received. In some embodiments, the step S420 is not executed by the notification client device 100d, e.g. when the client modules 100cma, 100cmb, 100cmc are not in a sleep mode (e.g. when a client module 100cma, 100cmb, 100cmc is an application actively running on a smartphone).

Back to <FIG>, in a step S430, the notification client device 100d notifies the one (or more) client module 100cma, 100cmb, 100cmc for which information was comprised in the notification received from the notification service device 110d in step S410 that respective specific data are available in a server 150a, 150b, 150c.

However, in other use cases discussed above wherein the notification received from the notification service device 110d in step S410 comprise information relating to only part of the client modules 100cma, 100cmb, 100cmc, the notification client device 100d notifies the client modules 100cma, 100cmb, 100cmc for which information was received.

Back to <FIG>, in a step S440, the client modules 100cma, 100cmb, 100cmc that have been notified by the notification client device 100d during step S430 that respective specific data are available in a server 150a, 150b, 150c obtain the respective specific data from the corresponding server 150a, 150b, 150c.

More particularly, in view of the notifications in step S430 in the present case:.

For instance, for obtaining the respective data, a client module 100cma, 100cmb, 100cmc sends a request to the corresponding server 150a, 150b, 150c through the wireless communications network <NUM>. Responsive to receiving the request, the corresponding server 150a, 150b, 150c sends the respective data to the client module 100cma, 100cmb, 100cmc that sent the request. In that case, the client module 100cma, 100cmb, 100cmc that sent the request receives the respective data through the wireless communications network <NUM>.

Claim 1:
Wireless device (<NUM>) communicatively connected to a wireless communications network (<NUM>), the wireless device comprising:
- at least one client module (100cma, 100cmb, 100cmc);
- a notification client device (100d) for notifying said at least one client module that respective specific data are available in a service module (150sma, 150smb, 150smc) implemented in a server (150a, 150b, 150c) communicatively connected to said wireless communications network, the notification client device comprising a processor (<NUM>) or a dedicated computing machine configured for:
- receiving a notification, sent by a notification service device (110d) implemented in a server communicatively connected to said wireless network, comprising information that, for at least one client module, respective specific data are available in a server communicatively connected to said wireless communications network; and
- notifying the at least one client module that respective specific data are available in a server; and
- a wireless connectivity system (100wm) comprising wireless means for allowing the connection of the wireless device to said wireless communications network,
characterized in that the notification client device is implemented in said wireless connectivity system.