Handling device generated data

There is provided a method of caching device generated data. The method comprises receiving device generated data from a device via a wireless communication network. The method further comprises retrieving a device identifier used by components within the wireless communication network to identify the device; and storing the device generated data with the device identifier.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application is a 35 U.S.C. § 371 National Phase Entry Application from PCT/EP2011/062100, filed Jul. 14, 2011, designating the United States, the disclosure of which is incorporated herein in its entirety by reference.

TECHNICAL FIELD

The present application relates to a method of caching device generated data, a server arranged to cache device generated data, and a computer-readable medium.

BACKGROUND

Machine-to-machine (M2M) broadly refers to technologies which allow devices to communicate with other devices via wired and wireless networks. M2M devices will, in many cases, produce data that an M2M application may access, interpret and act upon. For example: an M2M device may send information representing a temperature reading of 47° C. An M2M application may receive this information, interpret it and then initiate some action.

Depending on the nature of the data and the nature of the corresponding action, the data exchange between a device and an application can occur synchronously or asynchronously. This is particularly likely where the communications network connecting to the M2M device is wireless. Synchronous data exchange requires a real-time connection, but in many cases the M2M device will produce data that can be consumed by the application at a later point in time. For example, the data supplied by an electricity meter to a billing application can be supplied at substantially any time, the primary requirement being that the information is accurate. This means that certain communications can be postponed until off-peak hours, which may help smooth peaks in network traffic. However, a contrary example is that of data transmitted from a vehicle to an emergency services application in the event of an accident. Here it is important that the information is transmitted as soon as possible. In either case, due to variations in traffic over a wireless communications network and variations in the radio conditions, it is to be expected that at some times communication with an M2M device will not be possible.

SUMMARY

A mechanism for asynchronous M2M communication is provided. This allows for a request received from an M2M application, the request for data from an M2M device, to still be serviced in the absence of a viable communication link between the network and the M2M device. To facilitate this, the wireless communications network is provided with a mechanism for interim data storage. This allows a request for data from an M2M application to be answered using the stored data, which includes the data most recently received from the M2M device. This allows requests for data to be serviced in the absence of a viable communication link between the network and the M2M device. Further, even if there is a viable communication link between the network and the M2M device, the request may be more quickly serviced from storage than by communicating directly with the device.

However, providing an interim data storage function is not straightforward. Such a function must be able to distinguish between the different M2M devices for which data is stored. Further, this data needs to be readily retrievable when a request from an M2M application is received, and the data must be uniquely attributable to a particular M2M device. These requirements could be met by provisioning a unique identity to each device for which data is stored, but doing so would be a complex procedure, particularly given the ability of the devices to move from one geographical location to another.

It has been noted that each device in the wireless communications network has a unique identity used by the network to distinguish between different devices. This unique identity comprises at least one of the IMEI (International Mobile Equipment Identity), the IMSI (International Mobile Subscriber Identity), and the MSISDN (Mobile Subscriber Integrated Services Digital Network Number).

According to the methods and apparatus disclosed herein, the M2M data is stored using a unique identifier for the M2M device, the unique identifier being the same as that used in the wireless communications network as a primary key. In this way, each M2M data record stored is uniquely associated with the correct M2M device. Later, the data from a particular device can be readily retrieved because the stored data can be reliably associated with the particular device. Further, such retrieval can be done without the need to map the request to a new additional device identifier.

There is provided a method of caching device generated data. The method comprises receiving device generated data from a device via a wireless communication network. The method also comprises retrieving a device identifier used by components within the wireless communication network to identify the device. The method further comprises storing the device generated data with the retrieved device identifier.

Because the same device identifier that is used by the wireless communications network is used to label the stored device generated data, the stored data is uniquely attributable to the device that generated it, without the need for provisioning a new unique identification number to each device. The method may further comprise storing the device generated data using the retrieved device identifier as a primary key.

Where the device generated data is stored in a file system, the root directory of the file system may be named with the device identifier. The device may be a sensor, and may include a wireless communication module.

The method may further comprise receiving a request for particular device generated data. The method may further still comprise, in response to such a request, retrieving the particular device generated data; and returning the particular device generated data in reply to the request. The request may identify the particular device by its device identifier.

The device generated data can be readily retrieved from storage, particularly if the request for device generated data includes the device identifier in the retrieve message. If the request does not include the device identifier, then the method may further comprise mapping the device identified in the request to a device identifier. The device identifier may comprise at least one of the MSISDN, IMSI, and IMEI.

There is further provided a server arranged to cache device generated data. The server comprises a receiver, a processor, and a memory. The receiver is arranged to receive device generated data from a device via a wireless network. The processor is arranged to retrieve a device identifier used by components within the wireless network to identify the device. The memory is arranged to store the device generated data with the device identifier.

The server may further comprise a session database for receiving session information in respect of the device. The session information may comprise an IP-address of the device, plus the device identifier. The session information may be required to discover the device identifier used by the wireless communications network if the device does not include the appropriate device identifier with the device generated information to be stored.

The memory may store the device generated data in a file system, wherein the root directory of the file system is named with the device identifier.

The receiver may be further arranged to receive a request for particular device generated data. The processor may be further arranged to retrieving the particular device generated data, and return the particular device generated data in reply to the request.

There is further provided a computer-readable medium, carrying instructions, which, when executed by computer logic, causes said computer logic to carry out any of the methods defined herein.

DETAILED DESCRIPTION

In order to at least partially address some of the problems associated with caching device generated data, as describe above, according to the methods and apparatus disclosed herein the M2M data is stored using, as a primary key, the same unique identifier for the M2M device that is used in the wireless communications network.

FIG. 1illustrates the basic arrangement of a system incorporating the method disclosed herein. A plurality of devices and sensors connect to a wireless communications network150. A device100, a coffee machine101, and a gateway110include wireless communication modules allowing them to communicate with the wireless communications network150. The device100, the coffee machine101, and the gateway110are illustrated including a SIM card (Subscriber Identity Module card). Each SIM card carries a unique serial number, the Integrated Circuit Card Identifier (ICCID) and the International Mobile Subscriber Identity (IMSI). Further, the device100, the coffee machine101, and the gateway110may each have an equipment identifier such as the International Mobile Equipment Identity (IMEI) which may be used by the wireless communications network150to identify them.

The device100and the coffee machine101contain at least one sensor, information from which is accessible by an external application180. The gateway110communicates with sensors105by a local communication network. The sensors105may connect to the gateway110by wire, or by a local wireless connection such as Bluetooth™ or WiFi™. A storage server170is connected to the wireless communications network150. The storage server170is arranged to receive requests from and serve responses to the application180.

In an alternative embodiment the storage server170is a part of the wireless communications network150. Further, the applications180may reside either within or outside of the wireless communications network150.

In the following explanation reference will be made to device100. However the following may equally apply to the coffee machine101or the combination of the gateway110with at least one sensor105.

In operation, a device100sends a store request to the storage server170via the wireless communications network150. The store request may be sent using HTTP POST and a unique ID, for example “deviceID”. Such a store request may be arranged as:http://www.m2mse.com/deviceID/temp/14july2011/highest_temp

The store request comprises a host URL part, which in the above example is “www.m2mse.com”. This points to the storage server170, which in this example has the host name “m2mse”. The store request further comprises a path part, which is “/deviceID/temp/14july2011/highest_temp” in the above example. This path part is used to direct where to store the body of the store request, which in this example is stored as “temp.xml”.

The first section of the path part of the store request, in this case the device identifier “deviceID”, must be provisioned (either manually or automatically) by the device100before it sends the store request. The device identifier must be unique such that the storage server170can distinguish between different devices.

Therefore, according to the method and apparatus disclosed herein, the storage server170makes use of the SIM card that uniquely identifies a wireless communications device such as device100, gateway110or coffee machine101. The unique identity carried by the SIM card uniquely identifies the SIM card to the wireless communications network150. This unique identity that is used by the wireless communications network150is also used by the storage server170to create a storage tree or directory structure for storage of the resource received from the device100. The storage path (which points to a resource) is thus preserved from the original request. What is added is the identity used by the wireless communications network150as the root of each different storage path.

The wireless communications network150includes a home location register which maps the IMSI on the SIM card to the MSISDN. The MSISDN corresponding to an IMSI is readily identified by both the wireless communications network150and the device100during normal operation. In the following example the MSISDN is used as a unique identifier attributable to device100.

For example, anything a device100(having a SIM card carrying an IMSI mapping to MSISDN1) stores in the storage server170will be stored under root path labeled “MSISDN1”.FIG. 2illustrates a storage tree maintained by a storage server170. In this case the storage server170is the “m2mse” storage server referenced above and it has received a store request as follows:http://www.m2mse.com/MSISDN1/temp/14july2011/highest_temp

The root of “m2mse” comprises three directories each for a different device100that the storage server170has received store requests from. In response to the above store request, the storage server has stored the resource “temp.xml” in the directory called “highest_temp”, which in turn is stored in a directory for today's temp called “14 Jul. 2011”, which in turn is stored in a directory called “temp”, which in turn is stored in a directory called “MSISDN1”. Data from days preceding the 14 July 2011 is stored in directories alternative to the “14 Jul. 2011”. Similarly, pressure data is stored in a directory alternative to the “temp” directory. Resources received from Device2 and Device3 are stored in “MSISDN2” and “MSISDN3” directories respectively, in a similar fashion.

FIG. 3shows a signaling diagram illustrating the registration of a device100with the storage server170and the subsequent storing of a resource in the storage server170. Storage server170comprises a session database171, a web server172, and a storage173. At301the device100sends a PDP context activation to the Gateway GPRS Support Node of a wireless communications network150. The PDP context is a data structure which contains the identity of the device100as used by the wireless communications network150. At302, session information from the PDP context is sent from the wireless communications network150to a session database171in the storage server170. The session information includes the device IP address, the device MSISDN, and the device IMSI. At303the session information is stored in the session database171.

At304a store request is sent from the device100to the web server172of the storage server170. The store request takes the form:http://www.m2mse.com/temp/14july2011/highest_temp
where the address of the web server172is “www.m2mse.com”. This store request does not indicate the device identifier, so at305, the web server172retrieves the MSISDN of the device100that sent the store request from the session database171. The web server172uses the IP-address of the device100, which it received with the store request, to identify the device100to the session database171.

Once the web server172has the MS ISDN of the device100, at306it uses this to store the data (here xm I data “temp.xml” describing today's highest temperature) using the same path as received in the store request (“temp/14july2011/”), stored under the MSISDN of the device retrieved from the session database171. Once the data is stored, at307the web server172sends an acknowledgement to the device100.

FIG. 4shows a signaling diagram illustrating the retrieval of data stored in the storage server170by an application180. At401, an application180issues an HTTP GET request to the storage server170. The HTTP GET message is received by the web server172, which in this example has the host name “M2MSE”. Since the path (pointing to a resource) from the original store request (sent from the device100to storage server170) is preserved in the storage173, the application180can use the same path in its HTTP GET request. In this case, the HTTP GET request comprises:http://www.m2mse.com/MSISDN1/temp/14july2011/highest_temp

In this get request, the application180provides the MS ISDN number for the particular device100. This allows for expedient processing of the get request at402, whereby the web server172accesses the storage173at the tree path indicated by the received identity “MSISDN1” and retrieves the resource indicated by the path indicated in the get request. At403the retrieved resource is sent by the web server172to the application180.

The above described method and apparatus allows a device100to store data in the storage server170re-using a device identifier that is used in the wireless communications network150. This means that the data is stored without the need for provisioning a new unique key for that purpose. Further, this solution offers a secure way for a device to either write or read its own data. There is minimal risk of a device writing to or an application reading from the wrong data area because the area is identified by the unique ID used by the wireless communications network.

The application180may not include the MSISDN of the particular device100in its HTTP GET request at401. In that case, the storage server170accesses a database to map the identity given in the HTTP GET request, such as an external ID, to the appropriate MSISDN. The database may be part of the wireless communications network150, such as a Home Location Register. Such a mapping step would always be required if a new unique identifier was used for the storage of data. Using the same identifier for data storage that is used in the wireless communications network to identify the device still provides the above described advantages in the storage of data even if the application180does not use this identifier for data retrieval.

FIG. 5is a flow diagram illustrating the method of caching device generated data. At510, device generated data is received from a device via a wireless communications network. At520a device identifier is retrieved, the device identifier being that used by components within the wireless communications network to identify the device. At530the device generated data is stored with the device identifier, that is, the device generated data is stored in association with the device identifier. The device generated data may then be located in and retrieved from storage using the device identifier.

FIG. 6is a flow diagram illustrating the method of retrieving cached device generated data. At610a request for particular device generated data is received. The request includes a device identifier, the device identifier being that used by components within the wireless communications network to identify the device. At620, the particular device generated data is retrieved from a data store, using the received device identifier. At630, a reply to the request is sent, the reply comprising the particular device generated data.

FIG. 7illustrates the general structure of the server described above. The server700comprises a receiver710, a processor720, and a memory730. The receiver710comprises a communications module for receiving and sending messages. The receiver710is arranged to communicate via a wireless communications network, and can receive device generated data from a plurality of devices via the wireless communications network. The receiver710is further connected to a wired network and can receive a request for device generated data from an application either via the wired network or via the wireless communications network.

The server700further comprises a processor720, which is arranged to perform the method disclosed herein. The processor720controls communications sent and received by the communications module710and also controls access to the memory730. The memory730may store the device generated data. In an alternative embodiment, the device generated data is stored on a storage device external to the server but connected thereto via a communications network.

It will be apparent to the skilled person that the exact order and content of the actions carried out in the method described herein may be altered according to the requirements of a particular set of execution parameters. Accordingly, the order in which actions are described and/or claimed is not to be construed as a strict limitation on order in which actions are to be performed.

Further, while examples have been given in the context of particular communications standards, these examples are not intended to be the limit of the communications standards to which the disclosed method and apparatus may be applied. For example, while specific examples have been given in the context of LTE, the principles disclosed herein can also be applied to a WCDMA system, other wireless communication system, and indeed any communication system which handles device generated data.