WO2018091083A1 - Method and apparatus for determining data on a device - Google Patents

Method and apparatus for determining data on a device Download PDF

Info

Publication number
WO2018091083A1
WO2018091083A1 PCT/EP2016/077883 EP2016077883W WO2018091083A1 WO 2018091083 A1 WO2018091083 A1 WO 2018091083A1 EP 2016077883 W EP2016077883 W EP 2016077883W WO 2018091083 A1 WO2018091083 A1 WO 2018091083A1
Authority
WO
WIPO (PCT)
Prior art keywords
devices
image
hash
hashes
stored
Prior art date
Application number
PCT/EP2016/077883
Other languages
French (fr)
Inventor
Christopher Kevan LOWE
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/EP2016/077883 priority Critical patent/WO2018091083A1/en
Publication of WO2018091083A1 publication Critical patent/WO2018091083A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data

Abstract

An apparatus is configured to identify an image stored by each device of a plurality of remote devices. The apparatus is configured to receive, from each device, a hash of an image that is stored by that device. The apparatus is also configured to compare the hashes received from the plurality of devices. Where the same hash is received from two or more of the plurality of devices, the apparatus obtains the image corresponding to that hash by selecting one of those two or more devices to transmit the image that it stores. The apparatus is thus able to receive a hash of an image from each device rather than a full image, thereby keeping the amount of data that has to be transferred between devices relatively small. If two or more devices have transmitted a same image, the apparatus can select one of those devices to transmit the full image, which reduces the quantity of data transferred as compared to having each device transmit its full image. The device could then decide to use the transmitted image to determine the image stored on other devices.

Description

Method and Apparatus for Determining Data on a Device
This invention relates to devices and techniques for determining data content of a device, in particular of multiple devices.
It may be necessary from time to time to determine what data is held on a device, for example to determine whether it holds an appropriate version of data or whether it requires an update. Such a determination may need to be made for multiple devices in a fleet, such as a number of devices managed by an entity. An example of such data is system configuration settings on multiple mobile devices. The mobile network with which users of such devices have a contract may need to update such settings periodically. A first step is to carry out an audit of the devices to determine which require such an update. Other reasons to carry out an audit include if the entity thinks that some of the fleet may have had their software tampered with or for image identifications to be managed. Such an audit can be achieved by determining the content of the relevant data held on each device.
One way to determine the data content held on one or more devices is to have each device send a copy of the data in question to a device managed by the entity, such as a server, so that the data from each device can be checked against the correct data. However, especially for a large number of devices, having such an amount of data sent over a network would require significant bandwidth. Moreover, processing such large quantities of data at the receiving end could be power and time consuming.
It is an object of the invention to provide techniques for determining data stored on a device that are suitable for bandwidth-constrained devices.
The foregoing and other objects are achieved by the features of the independent claims. Further implementation forms are apparent from the dependent claims, the description and the figures.
According to a first aspect, an apparatus is provided that is configured to identify an image stored by each device of a plurality of remote devices. The apparatus is configured to receive, from each device, a hash of an image that is stored by that device. The apparatus is also configured to compare the hashes received from the plurality of devices. Where the same hash is received from two or more of the plurality of devices, the apparatus obtains the image corresponding to that hash by selecting one of those two or more devices to transmit the image that it stores. The apparatus is thus able to receive a hash of an image from each device rather than a full image, thereby keeping the amount of data that has to be transferred between devices relatively small. If two or more devices have transmitted a same image, the apparatus can select one of those devices to transmit the full image, which reduces the quantity of data transferred as compared to having each device transmit its full image. The device could then decide to use the transmitted image to determine the image stored on other devices.
The apparatus may be configured to select the device for transmitting the image in dependence on a relative desirability of each of the two or more devices transmitting the image. It may be more desirable for a number of reasons for a particular one of the two or more devices to be the one chosen to transmit its full image. Thus the apparatus can select a device taking into consideration the relative desirabilities.
The apparatus may be configured to determine the relative desirability of each of the two or more devices transmitting the image in dependence on one or more of: a radio coverage experienced by each of the two or more devices; a signal quality experienced by each of the two or more devices; a power availability experienced by each of the two or more devices; and a loading on a respective cell in which each of the two or more devices is located. For example, it may be more desirable to select a device having good or the best radio coverage among some or all of the devices, so as to minimize the likelihood of data being inadvertently dropped during transmission. It may be desirable to choose a device that has good or the best signal quality among some or all of the devices, so as to maximize the chance of the image being correctly transmitted and/or avoiding multiple transmission attempts. It may be desirable to select a device that has good or the best power availability among some or all of the devices because a device that is closer to running out of power might not manage to transmit the entire image before losing power. In this case, the overall process would take longer because the apparatus would need to select another device and have a new transfer process commence. It may be desirable to choose a device which is located in a cell with a lower loading than other devices in cells with higher loading so that image transfer is more likely to be carried out more quickly than if its sending needs to be interleaved with the sending of lots of other data.
The apparatus may be configured to, where there are two or more groups of devices that each have the same hash as the other devices in their respective group but a different hash from devices in another group, determine which of the two or more groups comprises the most devices. In this circumstance, the apparatus may also be configured to select a device from the determined group to transmit the image corresponding to the hash that is shared by that group. The apparatus may be further configured to obtain the image stored by a device that is not in the determined group at least in part from the image obtained from the selected device that is in the determined group. These features may be another useful consideration as to which device to choose to send its full image. For example, if a device in the largest group is selected, fewer remaining devices will have different images than the selected device than would be the case if a device from a smaller group or a device with a unique image were selected. The fewer remaining devices whose image differences need to be ascertained, the quicker an audit of all the devices can be performed, based at least to some extent on the image received from the selected device. The apparatus may be configured to receive, from each of the plurality of devices, a hierarchy of two or more hashes. Each successive level of the hierarchy may comprise more hashes than a preceding level of the hierarchy. Each successive level of the hierarchy may also comprise hashes that were each generated from a smaller section of an image than the hashes comprised in the preceding level of the hierarchy. This hierarchy of hashes may enable a more complete analysis of the devices' images, by better distinguishing some differences between at least some of the images. The multiple levels can enable the apparatus to focus on specific areas of difference between the image stored at each of the devices as compared to the correct image. This helps to reduce the amount of data that the apparatus has to determine across the multiple devices, since discrepancies can be localised to relatively small areas of the overall data. The size of the sections and strength of the hash may be tuned to minimise the amount of data that has to be checked.
The apparatus may be configured to receive, from each of the plurality of devices, a hierarchy of two or more hashes, in which each level of the hierarchy comprises hashes generated using weaker hash functions than the hashes comprised in the preceding level of the hierarchy. Thereby progressively smaller sections of an image stored by a device can be represented by progressively weaker hashes in the hierarchy of hashes received from that device. This helps the target device to address situations where the weak hashes are misleading and failing to flag up sections of the data where there is actually a mismatch between the data stored at the device and the data in the image transmitted by the selected device.
The apparatus may be configured to identify: (i) which of the plurality of devices are storing a different image from the selected device; and (ii) where the images stored by the identified devices differ from the image stored by the selected device, in dependence on the hash hierarchies received from the plurality of devices. Thus the apparatus can determine which parts of the image of each device differ from that of the selected device, which means only those parts of the image will need to be obtained from the other devices in order to determine the full image of each of those devices, thereby saving on bandwidth used to transmit images.
The apparatus may be configured to initially compare hashes that are comprised in a top level of each respective hash hierarchy received from the plurality of devices and identify which of the devices are storing a different image from the selected device in dependence on that comparison. This is a useful first step to determine which devices will need to be investigated further with regard to their image content. The apparatus may be configured to compare the hashes that are comprised in a lower level of the hash hierarchies received from the devices that are identified as storing a different image from the selected device and identify where the images stored by those identified devices differfrom the image stored by the selected device in dependence on that comparison. Thus having initially identified the devices requiring further investigation, the lower level hash can be used to determine which parts of the image are different from respective parts of the image stored by the selected device, thereby enabling the apparatus to determine which specific parts of the images of those devices it might need to request to be transmitted.
The apparatus may be configured to compare a hash generated from a section of an image stored by an identified device with a hash generated from a corresponding section of the image transmitted by the selected device and determine that the corresponding sections of those respective images are different from each other if the hashes are not the same. Thus by comparison of the hashes, the differences requiring further investigation can be determined. This is more efficient, for example with respect to memory requirements, than using the images themselves to make such a comparison.
The apparatus may be configured to, for each section of an image that is stored by an identified device and has been determined as being different from a corresponding section of the image transmitted by the selected device, compare the hash corresponding to that image section with other hashes comprised in the hash hierarchies received from the plurality of devices. Where that hash is the same as one or more other hashes that are comprised in the hash hierarchies received from the plurality of devices, the device may be configured to identify the devices from which the hash hierarchies comprising that hash were received and obtain the image section corresponding to that hash by selecting one of the identified devices to transmit that image section. Thus a section of the image that cannot be obtained from the selected device may nonetheless not need to be obtained from every other device whose corresponding section doesn't match that of the selected device. Rather, for a group of devices with identical hashes for that section, just one of those devices can be chosen to transmit that section of the image. Thus the apparatus can determine at least that section of the image stored by all the devices in the group, whilst avoiding having each of the devices of the group transmit that same image section.
The apparatus may be configured to tailor a level in a hash hierarchy to which it identifies a difference between an image stored by one device and an obtained image in dependence on a desirability of that device transmitting data. For example, as discussed above, it may be more desirable for a particular device to be one transmitting some or a section of its image, due to considerations such as a radio coverage experienced by each of the devices, a signal quality experienced by each of the devices, a power availability experienced by each of the devices, and a loading on a respective cell in which each of the two or more devices is located. The apparatus can choose the necessary level of hash needed to obtain data from the one device, based on such considerations. For example, if a device has a reasonable signal quality, it may be able to choose a higher hash level, thereby saving on processing power and time.
The apparatus may be configured to tailor the level in a hash hierarchy to which it identifies a difference so that a difference in an image stored by a device for which transmitting data is relatively undesirable is identified more precisely than a difference in an image stored by a device for which transmitting data is relatively desirable, whereby the amount of data transmitted by the device for which transmitting data is relatively undesirable can be reduced compared with a device for which transmitting data is relatively desirable. If a device is relatively undesirable for transmitting data based on considerations such as a radio coverage experienced by each of the devices, a signal quality experienced by each of the devices, a power availability experienced by each of the devices, or a loading on a respective cell in which each of the two or more devices is located, a lower level of hash may be chosen. Whilst the hashes at a lower level are weaker, smaller chunks of the image are being identified by such a weaker hash. Thus a smaller quantity of data can be identified for transmission by the relatively undesirable device. Such a smaller quantity of data may be more likely to be successfully transmitted than if the undesirable device were to attempt to transmit a larger quantity.
According to a second aspect, a method for identifying an image stored by each device of a plurality of remote devices is provided. The method comprises receiving, from each device, a hash of an image that is stored by that device and comparing the hashes received from the plurality of devices. Where the same hash is received from two or more of the plurality of devices, the method further includes obtaining the image corresponding to that hash by selecting one of those two or more devices to transmit the image that it stores. The method provides similar advantages as does the first aspect, to receive a hash of an image from each device rather than a full image, thereby keeping the amount of data that has to be transferred between devices relatively small. If two or more devices have transmitted a same image, one of those devices is selected to transmit the full image, which reduces the quantity of data transferred as compared to having each device transmit its full image. The transmitted image could then be used to determine the image stored on other devices. An apparatus of the type according to the first aspect or other apparatuses could be used to perform this method.
According to a third aspect, there is provided an apparatus configured to assemble a replica of an image stored by a remote device. The apparatus carries out such assembly by obtaining images that are stored by a plurality of other remote devices and receiving a plurality of hashes from the remote device. Each of those hashes is the result of the remote device having applied a hash function to a respective part of the image that it stores. The apparatus is also configured to compare the plurality of hashes received from the remote device with corresponding hashes generated by applying a hash function to respective parts of the images stored by the plurality of other remote devices and assemble the replica of the image stored by the remote device from parts of the images stored by the plurality of other devices that have hashes that match the hashes received from the remote device. An apparatus of this type may be the same apparatus as one in accordance with the first aspect and that can carry out the method of the second aspect. In the case where the apparatus has obtained a number of sections of an image, each from a different device, the apparatus can then assemble the image for a particular device. In this way, a replica or copy of the image stored on that device can be obtained, without it having been necessary to have that device send its entire image. Thus a bandwidth saving can be achieved, especially if the received image is common to a number of the devices and can hence assist in determining the images of all those devices. This aspect can be implemented in conjunction with some or all parts of the first and second aspects in any feasible combination.
According to a fourth aspect, a non-transitory machine readable storage medium having stored thereon processor executable instructions implementing a method for identifying an image stored by each device of a plurality of remote devices. The method comprises receiving, from each device, a hash of an image that is stored by that device and comparing the hashes received from the plurality of devices. Where the same hash is received from two or more of the plurality of devices, the method further comprises obtaining the image corresponding to that hash by selecting one of those two or more devices to transmit the image that it stores. Thus the machine readable storage medium presents the same advantages as those of aspects one and two.
The present invention will now be described by way of example with reference to the accompanying drawings. In the drawings:
Figure 1 shows an example of an apparatus;
Figure 2 is a flowchart showing an example of a technique for analysing data;
Figure 3 is a flowchart showing a variation on the technique of Figure 2;
Figures 4A and 4B show an example of another technique for analysing data; and Figure 5 shows an example of a process for assembling replicas of images stored by two devices.
An example of an apparatus 100 for managing data stored on multiple devices is shown in Figure 1. The apparatus 100 comprises a number of functional blocks including a data store 101 , an input/output 102, a device determiner 103, a comparison unit 104, a controller 105 and an assembly unit 106. The operations of these functional blocks will be described with reference to Figure 2, which provides an overview of a bandwidth efficient technique for identifying an image stored by each device of a plurality of remote devices. The apparatus 100 in Figure 1 is shown illustratively as comprising a number of functional blocks. In practice at least some of these functional blocks are likely to be implemented using software. The controller 105, the device determiner 103, the assembly unit 106 and the comparison unit 104 in particular are likely to be implemented wholly or partly by a processor acting under software control. The functional blocks shown in Figure 1 may be embodied by a single computer program stored on a non-transitory machine-readable storage medium. In other implementations, the functional blocks of Figure 1 could be embodied by a number of separate computer programs. Figure 1 is not intended to define a strict division between different programs, procedures or functions in software. In one implementation, the device may form part of a server tasked with generating data updates for a number of distributed devices. In some implementations, some or all of the functions of the apparatus 100 could be implemented wholly or partly in hardware. The data store 101 and the input/output 102, in particular, are likely to incorporate hardware elements. In some examples, the data store 101 may in practice be composed of one or multiple memory arrays of the same or different types. In some implementations the apparatus 100 may be configured to communicate data with other devices, including multiple devices whose images are to be audited, via a wired connection. In these implementations the input/output 102 may be any suitable input/output port. In some implementations this can take the form of a device configured to communicate data with other devices via a wireless connection. In these implementations the input/output 102 may be a wireless transceiver configured to operate in accordance with any suitable communications protocol. A typical wireless transceiver will usually incorporate dedicated hardware for performing functions such as frequency mixing, filtering, demodulation, decoding etc. The operations of the apparatus 100 shown in Figure 1 will now be described with reference to the process illustrated in Figure 2. The technique commences in step S201 with the controller 105 identifying data that needs to be audited across multiple devices. This may be achieved by the controller receiving an instruction from another device or a human-input instruction. Typically, that data will be stored in the data store 101 . That data may be termed the "image", and it will frequently represent a program, procedure or function in each device's software, or any part thereof. In step S202, the apparatus 100 receives a hash of the image from each device. The hash may be a hierarchy of hashes, as discussed in more detail below with reference to Figure 4. The hashes can be received at the input/output 102, where they may be processed as necessary in order to convert them to a form suitable for sending onto the controller 105. Receiving a hash of the image as opposed to the full image itself greatly reduces the quantity of data being transmitted and needing to be processed by the apparatus 100.
The controller 105 can store the received hashes in the data store 101 and can pass them on to the comparison unit 104, which performs step S203 of comparing the hashes. Alternatively, the controller 105 can instruct the comparison unit to fetch the stored hashes from the data store 101 in order to perform step S203. This comparison can determine whether there are any differences between the images received from the multiple devices, in particular to determine whether a same image has been received from two or more of the plurality of devices. Such a comparison may be implemented by the comparison unit 104 applying a hash function to the received hashes. The comparison unit 104 can pass the outcome of this comparison to the controller 105. In particular, an indication of the identity of any devices with a same image can be conveyed to the controller 105.
The device determiner 103 is configured to receive and determine information about each of the plurality of devices. For example, it may determine one or more of the following information in regard to each device: an identification; a radio coverage experienced; a signal quality; a power availability; and a loading in the cell in which the device is located. Information pertaining to each device could be received directly into the device determiner 103 from the input/output 102 and then analysed. Thus the device determiner 103 can process and analyse the information as required for the controller 105 to be able to use it, and then pass the processed information to the controller 105. Thus the controller 105 will be in possession of information pertaining to each device. It will be appreciated that in alternative examples, the device determiner could be provided with an indication of the identity of any devices which the comparison unit 104 has determined to hold a same image. This indication could be provided directly from the comparison unit 104 to the device determiner 103. Alternatively the controller 105 could provide this indication to the device determiner 103 having received it from the comparison unit 104. In such alternative examples, processing time could be saved by the device determiner 103 processing and passing only data pertaining to the identified devices to the controller 105. The determined information can be stored in the data store 101 , either directly by the device determiner 103 or by the controller 105.
At step S204, the controller selects a device from which to obtain an image. The selection is made from one of the two or more devices identified in S203 as having a same image. The selection may depend on the relative desirability of each of the identified two or more devices. The relative desirability can depend on the information determined by and received from the device determiner 103. For example, the controller might choose a device that has the best signal strength or it might choose a device that is not about to lose power. The controller may take into account other considerations, as will be described in more detail below. The controller 105 can then send a request, via the input/output 102, to the selected device to transmit its stored image. At step S205, the apparatus 100 receives that image from the selected device and this can be stored in the data store 101 .
In some examples, a situation may arise as set out in Figure 3. As previously described at S202 of Figure 2, the apparatus 100 receives a hash of the image from each device. As mentioned previously, these hashes can be stored in the data store 101 . In comparing the received hashes from the plurality of devices, the comparison unit 104 may determine that there exists more than one group of devices. This scenario is checked in step S301 and if a negative result is returned, the process can continue from step S203 of Figure 2. An affirmative result indicates that there is more than one group of devices, each group having the same hash, but the hash differing between groups. Thus as well as considering the information provided by the device determiner 103, the controller may also take into account further factors, such as how many devices have the same image. In some examples, more than one group of two or more devices holding the same image may be identified by the comparison unit 104. In this case, the controller may decide at step S302 to determine which is the largest group i.e. which group comprises the most devices. Following this determination, the process continues to step S303, where a device is selected from the determined group. An image can then be obtained from the selected device, as per step S205. The obtained image can, as previously mentioned, be stored in the data store 101 .
As a variation on step S205, in some examples the apparatus 100 may obtain only a part of the image from a device in some circumstances, as will now be described with reference to Figure 4. The methodology set out in Figure 4 could be implemented following the methods described above with reference to Figures 2 and 3. At least some of the steps of Figure 4 could alternatively or additionally be carried out as a more detailed implementation of the receiving, comparison, selection and receiving steps S202-S205. At least some of the steps of Figure 4 could alternatively or additionally be carried out as a more detailed implementation of the steps of Figure 3 and the receiving step S205. It may assist in situations where some or all of the images cannot be fully distinguished with a single level hash. The apparatus could implement at least some steps of the methodology of Figure 4 to assemble an image pertaining to a given one of a plurality of devices. Figure 4 is drawn as Figures 4A and 4B for clarity, but it should be noted that Figure 4B follows directly on from Figure 4A, the two being split purely for visual convenience between steps S403 and S404.
According to some implementations such as that set out in Figure 4, the apparatus 100 may receive from each device a hierarchy of two or more hashes pertaining to an image. This could occur if, at each device, the image has been divided into sections prior to calculating a hash of each section. These sections might overlap. They might be of equal size or of different size. The devices can calculate a hash of each section, such that there are more hashes at each subsequent level of the hierarchy. In other words, each successive level comprises more hashes. Moreover, each successive level may be generated from a smaller section of the image. Another characteristic of the hashes may be that each successive level of hashes is weaker. The strongest, the weaker and the weakest hashes are then communicated to the apparatus 100. The hashes provide a description of the image held by each device. As previously mentioned, even with multiple levels of hashes, the hashes are much smaller than the data itself, so they provide a way of communicating a description of the image between the multiple devices and the apparatus 100 in a bandwidth efficient way. The different levels of hash enable the apparatus 100 to identify specific areas of difference between the data stored at the plurality of devices with some accuracy.
Each device can be provided with a hash calculator configured to use any suitable function to calculate the hashes. In general, a hash function maps data of arbitrary size to data of fixed size. The strength of a hash function is determined by the size of the fixed-sized data that it maps to. The larger the fixed-size data (e.g. the more bits it contains), the greater the number of different hashes that are available for a given data set. This means that fewer members of the data set map to the same hash, thus strengthening the hash. The converse is also true. The smaller the fixed-size data, the more members of a given data set will map to any given hash. The hash is consequently weaker because there is a greater likelihood of false positives. False positives occur when two hashes are identical, and thus assumed to correspond to the same member of the underlying data set, or a same section of the image, whereas in fact they were generated from different members of that data set or sections of the image. Thus where hash functions are referred to as being relatively "strong" or "weak" herein that relates to the size of the fixed size data that the respective hash function maps to. A relatively strong hash function maps to larger fixed size data than a relatively weak hash function, and vice versa.
The weak hash functions will typically generate hash results that incorporate some uncertainty because the set of available hash results is smaller than the number of possible data permutations in the image. Thus image sections that are actually different may appear to be the same based on their weak hashes. The strong hash function preferably generates hash results that are very unlikely to generate false positives. Thus, although the weak hashes are imperfect, the strong hash ensure correctness with a miniscule chance of collision. In some examples herein, computation of only two layers of hashes is sufficient, but the devices could calculate more. This would involve the devices repeatedly dividing the image into sections, with the sections getting smaller each time. The devices calculate hashes for all of the sections, and suitably those hashes get weaker each time that the image is divided. The result is a hierarchy of hashes in which progressively smaller sections of the image are represented by progressively weaker hashes. This helps to limit the amount of data that is transferred to the apparatus: the more hashes that are computed for a given image (due to the image having been divided into sections) the fewer bits that each of those individual hashes contains. As many layers of hashes can be used as are needed to avoid collisions and hence determine the images of all the plurality of devices.
A received hierarchy of hashes could be stored in the data store 101 , from where the comparison unit 104 can access it. Based on the received hierarchy of hashes, in step S402 the comparison unit 104 determines which devices store different images from the image stored by the selected device. This determination could be made by analysing the top level of each hash hierarchy received from each device. Such an analysis may be made by the comparison unit 104 applying a hash function to the top level hashes of the images received from those devices. The selected device is the one selected in step S204 of Figure 2 or step S303 of Figure 3. In implementations following the method of Figure 2 or Figure 3 being carried out, the selected device has been determined as described above.
At step S403, the comparison unit 104 determines where the images in the devices identified as storing images different from that stored in the selected device differ from those in the selected device. This determination could be implemented by the comparison unit 104 comparing the weaker or lower level hashes received from the plurality of devices. The determination could include comparing the images from some devices with those of other devices. For example, equivalent sections of a hash from a device identified as storing an image different from that stored by the selected device could be compared. The comparison could be implemented by application of a hash function to the sections of the images. The comparison informs the apparatus 100, which sections of the image on the identified devices differ from those of the selected device. Armed with this information, the apparatus 100 can then proceed to obtain copies of those sections in order to eventually determine the image on each of the identified devices. However, it may not need to obtain copies of those sections from each of the identified devices, because it may be that at least some are common to more than one of the identified devices, and thus traffic and processing can be reduced. The apparatus 100 can start a procedure in respect of a first, given device and can then work through the remaining devices one by one, only requesting image sections where they have not previously been obtained. This scenario will be explained in more detail the following.
If particular sections of an image stored by a given device are determined to be different from those corresponding sections of the selected device, the hash, and in particular those sections of the hash, can be compared with the equivalent sections of the hash stored by other devices. Thus those sections can be identified as being different from the corresponding sections of the selected device and can be further identified as being held by one or more others of the plurality of devices. This is step S404 in respect of a first one of such sections. The given device whose image is to be obtained will be termed device A in the following.
In some implementations where the methodology of Figure 4 is being used as a more detailed implementation of some of the steps of Figures 2 or 3 rather than following implementation of the methodology of Figures 2 or 3, no one device would have already been "selected". In such implementations, steps 402 and 403 would be omitted, and the comparison unit 104 would jump straight to step S404, to find devices holding a first section of device A's image. In step S405, a device is selected from among the identified other devices to transmit the first section of the image to the apparatus 100. Note that the identified devices include device A. In selecting a device from the identified devices, the apparatus 100 may take account of information provided by the device determiner 103. If there are a number of devices holding the first section, the controller 105 can select the device based on information about each of the number of devices gathered by the device determiner 103. In other words, the selection can be made based on the relative desirability of each of those devices transmitting data, taking account of various criteria, as described above. Moreover, the controller 105 may decide to instruct the comparison unit 104 to tailor its analysis of the received hashes in dependence on one or more of the factors affecting desirability. For example, if information provided by the device determiner 103 indicates that many of the devices have a poor signal strength, it may be advantageous for the identification process of step S404 to drill down to low hash levels, so that only smaller hash strings need to be transmitted in the poor transmission conditions. A request can be sent to the selected device, via the input/output 102. At step S406, that section is received at the apparatus 100. Thus, that section of the image of the device A can be received from device A or from another device.
The process outlined with respect to Figure 4 can be repeated for other sections of the image until all sections of the image pertaining to the device A have been received. Thus at step S407, the controller 102 determines whether there are any other sections of an image for device A that have not yet been received. If the answer is yes, the process loops back to step S404, so that devices storing the remaining section or sections of the image stored on device A can be identified and those sections received from a selected one or more of those devices. Thus steps S405 through S407 then proceed as previously described for each section. Some or all of the sections may be held on at least some same devices. Different devices could be selected to transmit different sections or a same device could be selected to transmit some or all of the sections. If the answer is no, because all the sections of device As image have been obtained, the process can move to an assembly step S408. In the assembly step S408, the sections of the image stored on device A are reassembled to form a replica of the image. As noted above, these sections may have been received from multiple other devices, each of which stores a specific section of the image. Alternatively, if the same device was chosen in repeated iterations of step S406, the sections would all have been received from that same device. In either case, a replica of the whole image stored on device A can be generated, in some cases without having to have device A itself transmit its entire image. Indeed, in some scenarios, device A will not have transmitted any of its own image, because all sections will have been received from other devices. On the other hand, device A could have been selected to transmit some or all of its own sections. The ability to select a device to transmit a section of an image held by a number of other devices may be advantageous if some of those devices are undesirable for image transmission, as well as for reducing quantity of data transmitted. At step 409, the controller 105 determines whether there are any further devices whose images need to be determined. If the answer is no, the process can end, because the apparatus 100 will have generated a replica of the image stored on each of the plurality of devices to be audited. If the answer is yes, the process loops back to step S404 in respect of a next device, which will be termed device B in the following. At step S404, it may be determined that the other device or devices holding device B's image are different from those identified in respect of device A's image. In this case, steps S405 through S409 will proceed as described above for device B.
However, it may be determined that one or more sections of the image held by device B are the same as the respective one or more sections of device A and hence the other devices holding those sections of device B's image are the same other devices that were determined in the previous iteration of step S404 to hold those sections of device As image. In that case, steps S405 and S406 can be omitted in respect of device B in respect of those sections, because those sections were already received from the device(s) selected to transmit them in step S405 when the process was run for device A. Furthermore, there may be further devices (device C, device D etc.) who store at least some sections of image corresponding to respective sections of the images stored by devices A and B. Thus steps S405 and S406 can be omitted in respect of those devices too with respect to those sections, because they have already been received. Moreover, there may be other sections which other ones of the devices all hold, such that steps S405 and S406 can also be omitted in respect of those sections for all but one of those devices' images. It may therefore be that a significant amount of data transmission can be saved by only transmitting a given section of the image once in respect of many or even all of the plurality of devices. In this situation, the assembly unit can assemble a replica image of each device by repeated use of those common sections. Alternatively, assembly time and memory space could be saved by storing each variation of each section once with an indication of which devices each variation applies to. Furthermore, in respect of multiple devices storing exactly the same image, assembly time and memory space could be saved by assembling a single image together with an indication of which devices' images it is a replica of. Thus both quantity of data transmitted and received at the apparatus 100 and processing time, memory space and power within the apparatus 100 can be saved. Moreover, if any devices are experiencing problems which make them undesirable for transmitting image sections, for example low power or being in a crowded cell, other devices can be selected to transmit such devices' images, thereby mitigating or avoiding transmission problems.
The above-described apparatus and associated methodologies discussed, can also be beneficial across a period of time. Once the hashes, be they in a hierarchy or otherwise, have been received and stored in the data store 101 , they may be used immediately in the methodologies described above and could then be deleted. However, as they occupy relatively little space, they can be held over time. Thus in some implementations, the receiving steps S202 and S401 could be carried out and the procedures then paused for an indefinite period of time before any further steps are carried out. Furthermore, there could be a time delay between step S205 of receiving an image from a selected device (Figures 2 or 3) and the commencement of the procedure of Figure 4. In yet other examples, there could be a time delay after step S407 of the procedure of Figure 4. Thus at that stage, the data store 101 would be holding hash hierarchies of all the devices, along with at least one copy of every variation of each section of the image, together with an indication of which variations are contained within the image of each device. This could be done with various memory arrangements, for example by numbering each variation of each section and listing the variation numbers for each section for each device. However, it may be that there is no immediate need to assemble a replica image of any or all of the devices, for example because an update needs further testing before rolling out, or because some devices are out of range. As the memory space occupied to store the hash hierarchies and a copy of each section variation is relatively small, this data can be held in the data store 101 until it is needed. At such time as a replica image of a device needs to be assembled, the data can then be retrieved when required and assembled into a replica image by the assembly unit 104.
An example of a message flow between two of the plurality of devices and the apparatus 100 in a specific scenario is shown in Figure 5. In this example, the apparatus 100 is a Device Image Management System (DIMS) and the two devices are clients, such as a user equipment (UE). They are labelled as Device 1 and Device 2. The key steps in the process are as follows:
1 . Both devices calculate strong and weak hashes as described above and transmit the calculated hashes to the DIMS.
2. The DIMS implements the process of Figure 2 and decides, based on the fact that Device 1 has better network coverage than Device 2, to have Device 1 send its full image. Device 1 sends a copy of its stored image to the DIMS. The DIMS receives that image and stores it.
3. The DIMS then implements the process of Figure 4 in respect of Device 2's image. It determines in step S402 that Device 2 is storing a different image from that of Device 1. It then determines which sections are different in step S403. In this scenario, as there are only two devices, only Device 2 will be identified in step S404 and hence selected in step S405 to transmit that section of its image. Thus at step S406, Device 2 transmits that section of its image to the DIMS. The DIMS receives that section. Steps S404 through S406 are repeated for each differing section of Device 2's image.
4. Having received all the differing sections, the assembly unit (or image reassembly function) within the DIMS can implement step S408 to assemble a replica of the image of Device 2. This is assembled using the sections of Device 1 's image that are common with those of Device 2, along with the differing sections received from Device 2.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that aspects of the present invention may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention.

Claims

1 . An apparatus configured to identify an image stored by each device of a plurality of remote devices, by:
receiving, from each device, a hash of an image that is stored by that device;
comparing the hashes received from the plurality of devices; and
where the same hash is received from two or more of the plurality of devices, obtaining the image corresponding to that hash by selecting one of those two or more devices to transmit the image that it stores.
2. An apparatus as claimed in claim 1 , wherein the apparatus is configured to select the device for transmitting the image in dependence on a relative desirability of each of the two or more devices transmitting the image.
3. An apparatus as claimed in any preceding claim, wherein the apparatus is configured to determine the relative desirability of each of the two or more devices transmitting the image in dependence on one or more of: a radio coverage experienced by each of the two or more devices; a signal quality experienced by each of the two or more devices; a power availability experienced by each of the two or more devices; and a loading on a respective cell in which each of the two or more devices is located.
4. An apparatus as claimed in any preceding claim, wherein the apparatus is configured to, where there are two or more groups of devices that each have the same hash as the other devices in their respective group but a different hash from devices in another group:
determine which of the two or more groups comprises the most devices;
select a device from the determined group to transmit the image corresponding to the hash that is shared by that group; and
obtain the image stored by a device that is not in the determined group at least in part from the image obtained from the selected device that is in the determined group.
5. An apparatus as claimed in any preceding claim, wherein the apparatus is configured to receive, from each of the plurality of devices, a hierarchy of two or more hashes, in which each successive level of the hierarchy: (i) comprises more hashes than a preceding level of the hierarchy; and (ii) comprises hashes that were each generated from a smaller section of an image than the hashes comprised in the preceding level of the hierarchy.
6. An apparatus as claimed in claim 5, wherein the apparatus is configured to receive, from each of the plurality of devices, a hierarchy of two or more hashes, in which each level of the hierarchy comprises hashes generated using weaker hash functions than the hashes comprised in the preceding level of the hierarchy, whereby progressively smaller sections of an image stored by a device are represented by progressively weaker hashes in the hierarchy of hashes received from that device.
7. An apparatus as claimed in claim 5 or 6, wherein the apparatus is configured to identify: (i) which of the plurality of devices are storing a different image from the selected device; and (ii) where the images stored by the identified devices differ from the image stored by the selected device, in dependence on the hash hierarchies received from the plurality of devices.
8. An apparatus as claimed in any of claims 5 to 7, wherein the apparatus is configured to:
initially compare hashes that are comprised in a top level of each respective hash hierarchy received from the plurality of devices; and
identify which of the devices are storing a different image from the selected device in dependence on that comparison.
9. An apparatus as claimed in claim 8, wherein the apparatus is configured to:
compare the hashes that are comprised in a lower level of the hash hierarchies received from the devices that are identified as storing a different image from the selected device; and
identify where the images stored by those identified devices differ from the image stored by the selected device in dependence on that comparison.
10. An apparatus as claimed in claim 9, wherein the apparatus is configured to:
compare a hash generated from a section of an image stored by an identified device with a hash generated from a corresponding section of the image transmitted by the selected device; and
determine that the corresponding sections of those respective images are different from each other if the hashes are not the same.
1 1 . An apparatus as claimed in any of claims 5 to 10, wherein the apparatus is configured to:
for each section of an image that is stored by an identified device and has been determined as being different from a corresponding section of the image transmitted by the selected device, compare the hash corresponding to that image section with other hashes comprised in the hash hierarchies received from the plurality of devices; and
where that hash is the same as one or more other hashes that are comprised in the hash hierarchies received from the plurality of devices, identify the devices from which the hash hierarchies comprising that hash were received; and
obtain the image section corresponding to that hash by selecting one of the identified devices to transmit that image section.
12. An apparatus as claimed in any of claims 5 to 1 1 , wherein the apparatus is configured to tailor a level in a hash hierarchy to which it identifies a difference between an image stored by one device and an obtained image in dependence on a desirability of that device transmitting data.
13. An apparatus as claimed in any of claims 5 to 12, wherein the apparatus is configured to tailor the level in a hash hierarchy to which it identifies a difference so that a difference in an image stored by a device for which transmitting data is relatively undesirable is identified more precisely than a difference in an image stored by a device for which transmitting data is relatively desirable, whereby the amount of data transmitted by the device for which transmitting data is relatively undesirable can be reduced compared with a device for which transmitting data is relatively desirable.
14. A method for identifying an image stored by each device of a plurality of remote devices, the method comprising:
receiving, from each device, a hash of an image that is stored by that device;
comparing the hashes received from the plurality of devices; and
where the same hash is received from two or more of the plurality of devices, obtaining the image corresponding to that hash by selecting one of those two or more devices to transmit the image that it stores.
15. An apparatus configured to assemble a replica of an image stored by a remote device by:
obtaining images that are stored by a plurality of other remote devices;
receiving a plurality of hashes from the remote device, wherein each of those hashes is the result of the remote device having applied a hash function to a respective part of the image that it stores; comparing the plurality of hashes received from the remote device with corresponding hashes generated by applying a hash function to respective parts of the images stored by the plurality of other remote devices; and
assembling the replica of the image stored by the remote device from parts of the images stored by the plurality of other devices that have hashes that match the hashes received from the remote device.
PCT/EP2016/077883 2016-11-16 2016-11-16 Method and apparatus for determining data on a device WO2018091083A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/077883 WO2018091083A1 (en) 2016-11-16 2016-11-16 Method and apparatus for determining data on a device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/077883 WO2018091083A1 (en) 2016-11-16 2016-11-16 Method and apparatus for determining data on a device

Publications (1)

Publication Number Publication Date
WO2018091083A1 true WO2018091083A1 (en) 2018-05-24

Family

ID=57354354

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2016/077883 WO2018091083A1 (en) 2016-11-16 2016-11-16 Method and apparatus for determining data on a device

Country Status (1)

Country Link
WO (1) WO2018091083A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399743A (en) * 2013-07-29 2013-11-20 北京网秦天下科技有限公司 Equipment and method for recognizing installation files
US8644620B1 (en) * 2011-06-21 2014-02-04 Google Inc. Processing of matching regions in a stream of screen images
US20150227557A1 (en) * 2014-02-10 2015-08-13 Geenee Ug Systems and methods for image-feature-based recognition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644620B1 (en) * 2011-06-21 2014-02-04 Google Inc. Processing of matching regions in a stream of screen images
CN103399743A (en) * 2013-07-29 2013-11-20 北京网秦天下科技有限公司 Equipment and method for recognizing installation files
US20150227557A1 (en) * 2014-02-10 2015-08-13 Geenee Ug Systems and methods for image-feature-based recognition

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAO ZHANG ET AL: "VSYNC: Bandwidth-Efficient and Distortion-Tolerant Video File Synchronization", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 22, no. 1, 31 January 2012 (2012-01-31), pages 67 - 76, XP011391558, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2011.2158336 *

Similar Documents

Publication Publication Date Title
US20220321423A1 (en) Methods, apparatus and machine-readable media relating to machine-learning in a communication network
US9582530B2 (en) Method, apparatus and system for updating metadata file
US20220294706A1 (en) Methods, apparatus and machine-readable media relating to machine-learning in a communication network
CN105791254A (en) Network request processing method, device and terminal
US20170339628A1 (en) Hidden hotspot access method and apparatus
RU2761181C2 (en) Method and equipment for service administration and data carrier
CN112311444B (en) Multi-dimensional satellite communication resource dynamic scheduling method, device and system
WO2020087506A1 (en) Method and apparatus for setting transmission time advance
WO2022116797A1 (en) Sim card selection method and apparatus, and terminal and storage medium
US20190372825A1 (en) Communication apparatus, communication method, and recording medium
EP3022575B1 (en) Method and apparatus for efficiently reducing number of access points in a radio map using grids
US20150095496A1 (en) System, method and medium for information processing
US20230239782A1 (en) Discovery and Initial Access for Reduced-Capability Devices in 5G/6G
CN108574947A (en) A kind of Internet of Things test method and device
WO2018091083A1 (en) Method and apparatus for determining data on a device
RU2638176C1 (en) Method of system information planning and user device
CN110830540A (en) Method for accessing smart television to cloud server, storage medium and application server
WO2020248691A1 (en) Reference signal resource allocation method and device
CN114257503A (en) Method, server, system and storage medium for accelerating domain name deployment
CN110838967B (en) Virtual private network connection method, server, client and storage medium
CN111815339B (en) Marketing information pushing method and device
CN105678155A (en) Verification method and device for information storage
CN115706642B (en) CSI-IM resource allocation method and CRI calculation method
US11695844B2 (en) Re-selection of a network function instance based on data consistency
US11722381B1 (en) Method and system for building potential wireless access node based on software-and-hardware separation techniques

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16798460

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16798460

Country of ref document: EP

Kind code of ref document: A1