WO2014140613A2 - Communications systems and methods - Google Patents

Communications systems and methods Download PDF

Info

Publication number
WO2014140613A2
WO2014140613A2 PCT/GB2014/050791 GB2014050791W WO2014140613A2 WO 2014140613 A2 WO2014140613 A2 WO 2014140613A2 GB 2014050791 W GB2014050791 W GB 2014050791W WO 2014140613 A2 WO2014140613 A2 WO 2014140613A2
Authority
WO
WIPO (PCT)
Prior art keywords
client mobile
request
server
content
mobile device
Prior art date
Application number
PCT/GB2014/050791
Other languages
French (fr)
Other versions
WO2014140613A3 (en
Inventor
Ian WAKEMAN
Ciaran Robert FISHER
Daniel CHALMERS
Stephen Murugapa NAICKEN
Original Assignee
University Of Sussex
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 University Of Sussex filed Critical University Of Sussex
Publication of WO2014140613A2 publication Critical patent/WO2014140613A2/en
Publication of WO2014140613A3 publication Critical patent/WO2014140613A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/22Self-organising networks, e.g. ad-hoc networks or sensor networks with access to wired networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user

Definitions

  • the present invention relates to a communications system, and methods of operating a communications system.
  • the communications system includes a server and a direct mode network having nodes defined by a plurality of client mobile devices, wherein each client mobile device is capable of forming a connection to one or more of the other client mobile devices of the direct mode network independently of an infrastructure to provide a connection between the nodes of the direct mode network. Some or all of the client mobile devices are also able to form a connection to the server via the infrastructure.
  • the present invention also extends to a server and client mobile device for use in such a communications system, and methods of operating the same.
  • One technique for transmitting data from a client mobile device to a server when no infrastructure connection to the server is available is for the client mobile device to transmit the data to the server via a network formed by the client mobile device with other nearby client mobile devices.
  • the client mobile device may transmit data destined for the server first to one or more of the other client mobile devices nearby, with which it is able to form a local wireless connection, independently of the infrastructure. This may be via a suitable local wireless connection such as Bluetooth® or Wi-Fi Direct.
  • the data may then be propagated between client mobile devices of the network, which are in direct local wireless communication in this way, until it reaches a client mobile device that is able to connect to the server via the infrastructure, and transmit the data thereto.
  • the client mobile devices act as nodes of the network.
  • the network does not have a fixed topology.
  • the connections between the nodes will vary as the client mobile devices move, resulting in changes in relation to the direct local wireless connections that may be formed between the client mobile devices.
  • the client mobile devices which are members of the network will vary as devices move into and out of connectivity with other client mobile devices.
  • This type of network will be referred to as a "direct mode" network herein.
  • One example of such a network is the Pocket Switched Network (PSN) disclosed in US 201 1/0261692.
  • the node may store the data and forward it when it can make a connection to a node e.g. if a new node joins the network.
  • the Applicant has realised that there remains scope for improvement in relation to the operation and configuration of communications systems comprising a server and a plurality of client mobile devices that form a network, in which at least some of the client mobile devices are able to form a connection to the server via an infrastructure, and in which each client mobile device is also capable of forming a connection to one or more of the other client mobile devices of the network independently of the infrastructure to provide a connection between the nodes of the network.
  • the present invention may provide methods and systems which may facilitate communication between the server and client mobile devices in such systems which include a direct mode network.
  • the present invention also extends to a method and system for controlling interaction between client mobile devices that define nodes of a direct mode network, and to a client mobile device and method of operating the same for use in such a network.
  • a method of operating a communications system comprising a server and a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
  • the server receiving the submitted request, and automatically generating a web resource for containing content that is a response to the request, wherein the server additionally generates a content label which may be used to identify the web resource for containing the content that is a response to the request.
  • the present invention also extends to a communications system comprising means for carrying out any of the steps described in relation to the method.
  • the method of the present invention may comprise a step performing any of the features that the system comprises means for doing, and the system may comprise means for carrying out any of the steps described as being performed in the method.
  • the means for carrying out any step described by reference to the system may be a set of one or more processors.
  • a given one of the client mobile devices comprising means for generating a request and means for submitting the request to the server,
  • the present invention in any of its aspects, relates to a communications system comprising a server and a direct mode network whose nodes are defined by a plurality of client mobile devices which are capable of acting as nodes of the direct mode network.
  • client mobile devices When the client mobile devices come into local wireless connectivity with one another, i.e. within a local wireless connectivity range, connections between the nodes of the direct mode network are defined.
  • the client mobile devices are capable of forming a wireless connection to one or more of the other ones of the devices when in proximity thereto.
  • One or more, or a plurality of the, client mobile devices are also able to connect to the server via an infrastructure.
  • the client mobile devices are able to connect to the server via the infrastructure. It is not a requirement that all of the client mobile devices may do so. However, in some preferred embodiments each is capable of doing so.
  • the present invention also extends to a server and/or a client mobile device configured to operate in accordance with any of the methods and systems described herein, and a method of operation of the server or client mobile device.
  • communications system further comprises a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
  • a server for operation in a communications system, wherein the communications system further comprises a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
  • the server comprising means for carrying out a method comprising the following steps;
  • the client mobile device acts as a node of a direct mode network
  • the client mobile device is preferably capable of forming a connection to a server of the system via an infrastructure
  • the client mobile device is capable of forming a local wireless connection to one or more of the other ones of a plurality of client mobile devices that define other nodes of the direct mode network independently of the infrastructure to provide a connection between nodes of the direct mode network
  • the request is a submission request, such as an HTTP POST request.
  • the method of operating the client mobile device further comprises the client mobile device generating a request to be provided with the content that is the response to the initially submitted request, and submitting the request for content to the server.
  • the content request is an HTTP GET request.
  • the server when the initial request submitted by the client mobile device is received by the server, the server automatically generates a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request, wherein the method comprising the client mobile device independently generating the content label that is generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and submitting the content label in association with the request for the content.
  • a client mobile device for use in a communications system in which the client mobile device acts as a node of a direct mode network, wherein the client mobile device is preferably capable of forming a connection to a server of the system via an infrastructure, and wherein the client mobile device is capable of forming a local wireless connection to one or more of the other ones of a plurality of client mobile devices that define other nodes of the direct mode network independently of the infrastructure to provide a connection between nodes of the direct mode network, the client mobile device comprising circuitry and/or software code portions for performing a method comprising the steps of;
  • the request is preferably a submission request, e.g. an HTTP POST request.
  • the device preferably comprises circuitry and/or software code portions for performing the steps of generating a request to be provided with the content that is the response to the initially submitted request for a response, and submitting the request for content to the server.
  • the content request is preferably an HTTP GET request.
  • the method comprises the server automatically generating a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request, wherein the client mobile device comprises circuitry and/or software code portions for independently generating the content label that is generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and submitting the content label in association with the request for the content.
  • server and/or client mobile device in accordance with these aspects of the invention may be configured to carry out any of the steps described herein in relation to the server or client mobile device in the other aspects and embodiments of the invention, and may be configured to operate in accordance with any of the manners described.
  • a connection via the infrastructure as referred to herein may be a connection that is via the infrastructure of a telecommunications network e.g. mobile phone network and/or of a wireless network.
  • the infrastructure may be or comprise a telecommunications network infrastructure and/or a wireless network infrastructure.
  • the infrastructure is not limited to this type of infrastructure.
  • a client mobile device may be able to connect to the server via a 3G or 4G telecommunications network infrastructure of a network provider, or via a wireless network access point of the infrastructure.
  • the infrastructure via which data is transmitted may comprise one or more components, and may include one or more of e.g. routers, repeaters, servers, transmitters, receivers, wireless access points etc.
  • the connection may be via one or more components of the infrastructure.
  • the infrastructure may be a referred to as a fixed infrastructure.
  • a connection between the at least one server and a client mobile device via the infrastructure may be via a local area network (LAN) or wider area network (WAN) connection.
  • LAN local area network
  • WAN wide area network
  • the node may be provided by any component of the infrastructure, such as a base station, satellite or a wireless communications access point of the infrastructure.
  • a connection formed between the server and a client mobile device via the infrastructure will be such that the first step in the connection from the server i.e. origin to the client mobile device i.e. destination is to a node of the infrastructure.
  • the connection will be initiated by a client mobile device.
  • the first node to which data is transmitted from the server is a node of the infrastructure.
  • the node may be provided by any component of the infrastructure, such as a base station, satellite or a wireless communications access point of the infrastructure.
  • a connection via the infrastructure is an end-to-end connection between an origin and destination, being respectively a client mobile device and the server, or vice versa.
  • the connection is such that data is transmitted between the client mobile device and the at least one server via the infrastructure without being propagated through the direct mode network i.e. without being transmitted to another client mobile device that defines a node of the direct mode network.
  • the connection via the infrastructure may be referred to as a "direct" connection between a client mobile device and the at least one server, rather than an "indirect” connection via the direct mode network.
  • the plurality of client devices defining the nodes of the direct mode network, and optionally the server are associated with i.e. situated at a given location.
  • the location is preferably a venue i.e. a location at which an event occurs.
  • the location e.g. venue may be a building.
  • the location e.g. venue may be a stadium, concert hall, festival venue etc.
  • the use of a direct mode network to provide the ability for client mobile devices to communicate with a server when no infrastructure connection is available is particularly advantageous at events, such as at a concert, sporting event or similar, where there are high concentrations of mobile devices present i.e. associated with users attending the event.
  • the location is a building e.g. a stadium
  • the ability of client mobile devices to connect to the server via the infrastructure may be further diminished as a result of structure of a building.
  • the infrastructure may comprise global infrastructure
  • the infrastructure may comprise a local infrastructure associated with the location e.g. venue, or building.
  • the location at which the plurality of client mobile devices, and optionally the server, are located may be a location at which a crowd of users of client mobile devices are present.
  • the server may be of any suitable type. While reference herein is made to “the server”, it will be appreciated that the communications system may comprise one or more servers. Thus, any reference to “the server” herein may be replaced by a reference to “the at least one server”, unless the context demands otherwise.
  • the server is associated with a location where the plurality of client mobile devices are located.
  • the server is associated with e.g. situated at the location, which may be a venue and/or building, and may be of any of the types described above.
  • the server may a local server.
  • the server is a cache server associated with the location e.g. venue.
  • the server may be a venue cache server.
  • a cache server may store local copies of data obtained from an external provider e.g. via a global internet connection for access by the client mobile devices. This may enable data to be provided to devices without needing to obtain the data from the external provider, improving speed of delivery.
  • the direct mode network as referred to herein is fluid in its configuration and composition.
  • the direct mode network does not have a fixed topology.
  • the topology of the direct mode network is variable.
  • the nodes i.e. client mobile devices of the direct mode network and/or the connections between the nodes i.e. client mobile devices of the network are not fixed.
  • the identity and/or number of the nodes i.e. client mobile devices forming part of the direct mode network may vary. It will be appreciated that the client mobile devices that form part of the direct mode network i.e.
  • the membership of the direct mode network i.e. the client mobile devices that form nodes of the direct mode network, is variable i.e. not fixed.
  • nodes will be added and/or removed from the direct mode network as client mobile devices capable of providing nodes of the direct mode network enter and/or leave the venue or building, and/or as the capability of their devices to act as nodes is terminated e.g. by a software operation, which may or may not be user initiated.
  • a client mobile device that forms part of the direct mode network it will be appreciated that this refers to a client mobile device that forms part of the direct mode network at the relevant time.
  • Each given client mobile device in the direct mode network has the ability to act as a router of data originating from another one of the client mobile devices of the direct mode network and destined for a destination other than the given client mobile device.
  • the data may be destined for the server or another one of the client mobile devices.
  • the data is not specifically directed to the destination.
  • Data e.g. messages is/are transmitted between client mobile devices of the direct mode network e.g. until it reaches a client mobile device that is able to transmit it to the server via the infrastructure, or, alternatively until it happens to reach a destination mobile client device.
  • the direct mode network allows data to be communicated without requiring a continuous end-to-end connection to exist between the origin and destination of the data.
  • Networks of the type of the direct mode network of the present invention which do not have a fixed topology, may be referred to as "ad hoc" or “opportunistic" networks.
  • the direct mode network of the present invention may be referred to as an ad hoc mobile direct mode network, or simply an ad hoc mobile network.
  • the local connection that may be formed between client mobile devices of the direct mode network to define a connection between nodes of the direct mode network, i.e. when the client devices are in proximity with one another, may utilise any suitable local connectivity capability of the client mobile devices.
  • the connection is a wireless connection.
  • the connection is a short range connection.
  • the connection is a direct connection between the client mobile devices.
  • connection may be any type of WiFi connection e.g. according to the 802.1 1 standard, Wi-Fi direct, or any other e.g. past or future wireless system, whether or not it forms part of a standard.
  • connection may be a Bluetooth® connection. It will be appreciated that different ones of the client mobile devices may connect to another one or ones of the client mobile devices of the direct mode network via different types of local wireless connectivity, e.g. depending upon the available local wireless connectivity mode or modes of the pairs of devices that are to form the connection.
  • the client mobile devices may be of any suitable type.
  • the devices may be selected from any one or ones of; mobile phones, tablet devices, PDAs, laptops, navigation devices such as a personal navigation devices (PND) or sports watch etc.
  • the devices may be user devices.
  • the devices may be any suitable portable devices.
  • the devices are preferably devices that are worn or carried by a user e.g. laptops, PDAs, mobile phones, tablet devices etc. In other embodiments, it is envisaged that the devices might be associated with vehicles.
  • the range of the local connection formed between nodes of the direct mode network will vary depending upon the type of devices involved and the context in which the direct mode network is used. Devices may, for example, be controlled to connect only to other devices that are found within a given range to control the power usage associated with the direct mode network activities of the devices.
  • data may be introduced by the origin client mobile device into the direct mode network, and may propagate therethrough until it reaches a client mobile device that is able to transmit the data via the infrastructure to the server.
  • data from the server may be communicated to a client mobile device via the infrastructure for introduction to the direct mode network. This may be over a connection initiated by the client mobile device.
  • the data may then propagate through the direct mode network to other mobile client devices of the network. In this way, the data may reach a device that requested the data, but without the server transmitting the data specifically to the device, or indeed initiating data transmitting. It will be understood that at least some i.e.
  • one or more, or at least a plurality, of the plurality of client mobile devices that form the direct mode network must be capable of forming an infrastructure connection to the server, in order for data to be introduced into the network by the server, or for data to be provided to the server from the network.
  • Data from the server may then be received by the device over an infrastructure connection which is initiated by the device to transfer data to the server from the network.
  • the direct mode network of the present invention may be considered a form of "delay tolerant network".
  • the methods of the present invention provide the network with the ability to better tolerate and mitigate potential delays associated with its direct mode nature.
  • one or more client mobile devices and preferably a plurality of the client mobile devices, that form part of the direct mode network, generate and submit requests in this way.
  • the reference to "the given client mobile device” may be replaced by “at least one” given client mobile device, or a “plurality” of the client mobile devices. Requests may be submitted simultaneously by different ones of the mobile devices.
  • the method may be described in relation to a client mobile device acting in this manner.
  • each client mobile device that submits a request may do so in accordance with any of the embodiments described herein.
  • the client mobile device preferably has the ability to connect to the server via the
  • the request submitted to the server is a message.
  • the message may generally be categorised as, and referred to, as a "submission message”.
  • the request may be referred to as "a submission request”.
  • This is a type of message that may be implemented as a "POST" request in the HTTP protocol.
  • the client mobile device generates, and submits to the server, a message that submits data to the server.
  • the server receives the submitted request (or message), and automatically generates a web resource for containing content providing a response to the request.
  • the web resource may subsequently be queried to obtain the response to the request.
  • the server additionally generates a content label which may be used to identify the web resource comprising the content providing the response to the request.
  • the server rather than simply obtaining the content and providing it directly to the client mobile device in response to the request, the server generates a web resource where content providing a response to the request is, or will be found, and a content label for use in identifying the web resource which may be used in subsequently retrieving the content.
  • the present invention enables a client mobile device to subsequently retrieve the content from the web resource if and when it is required.
  • the number of messages needing to be transmitted between the server and the client device may be reduced. This is advantageous whether or not a connection via the infrastructure exists between the server and the client mobile device. Where an infrastructure connection exists then by reducing the number of messages in the system, overloading of the infrastructure may be reduced, increasing the ability of remaining messages to be transmitted between the direct mode network and the server via the infrastructure. As, in the system of the present invention, it is expected that connectivity between the server and a client mobile device may be intermittent, it is advantageous to avoid the need to send a direct response to the request from a client mobile device given the inherent delay in propagation of messages through the network. Preferably the server does not provide a direct response to a received initial request.
  • the request is a request which may be responded to by content made available by the server.
  • the request may be a request that is specific to a given user of the client mobile device, or may be a more generic request.
  • the request may be a standing request or a one-off request.
  • the request may be e.g. a request to place a bet.
  • the content that is a response to the request provided by the server may then be a confirmation of acceptance of the bet.
  • the method preferably further comprises the server making content that is the response to the request available at the web resource. This step may be carried out at the time that the web resource is generated. In other embodiments the content may be added subsequently to the web resource. In embodiments the web resource contains the content that is a response to the request.
  • the server may obtain the content from any suitable source or sources. For example the content may be obtained by the server via a global internet connection. However, in preferred embodiments the server is a cache server that stores content anticipated to be requested by client mobile devices, and the content is obtained by the server from data stored locally by the server.
  • the server may be e.g. a venue cache server. The server may be arranged to pre-store data that is anticipated to be required by attendees of an event at the venue.
  • the request for content may be a request in any suitable language.
  • the request is an HTTP request, and specifically, is preferably a "GET" request.
  • a client mobile device may not always submit a request for content subsequent to submitting a request to the server that resulted in the server making the content available.
  • a request for content may at least not be submitted immediately that the initial request has been submitted.
  • a request for content might be sent out e.g. when a user "refreshes" the client mobile device.
  • the client mobile device may periodically send out a request for content in order to receive any new content that is a response to an initial request e.g. since a previous request for content.
  • the request for content is a message, and may be categorised generally as, and referred to as, a requesting message, i.e. a content requesting message. This is the type of request implemented using a "GET" request in the HTTP protocol.
  • the content label is generated using the unique identifier associated with a given (initial) request.
  • the server may therefore generate the content label using the unique identifier associated with a received request.
  • the unique identifier is preferably based at least in part on the identity of the client mobile device that generated the request.
  • the resulting content label will be specific to the request and the originating client mobile device.
  • the client mobile device is able to independently generate the same content label as the server, the client mobile device will similarly generate the content label using the unique identifier.
  • the content label may then provide a way of tracking a request for content, and, when associated with returned content, with tracking that content through the communications system.
  • the request for content, and the content that is the response to the request may be transmitted via the direct mode network to the server or from the server to the originating client mobile device. It will be appreciated that this may enable the same request for content, or content, to be propagated over the direct mode network via multiple paths, to increase delivery probability and speed, while enabling a device to identify content that relates to a request for content that it has submitted to the server when it propagates back sometime later. This may also allow devices of the direct mode network to readily establish when particular requests for content have been delivered to the server, and content delivered by the server to fulfil the requests, as described below.
  • the content label is preferably specific to given content.
  • the web resource is therefore also preferably specific to the given content.
  • a different content label will be produced in respect different content.
  • the identity e.g. name and/or location of the web resource for each different set of content will be different.
  • the client mobile device is arranged to attempt to connect to the server via the infrastructure for submitting the initial request and/or the request for content, and, if the client mobile device is unable to connect to the server via the infrastructure, to introduce the request to the direct mode network for propagation to another client device that can submit the request to the server via the infrastructure.
  • the method may comprise the client mobile device carrying out such steps.
  • the client mobile device will, as a first step, transmit the request directly to one or more other client mobile devices of the direct mode network via a local wireless connection formed with the device or devices. It will be appreciated that the client device will not specifically direct a request to the server via the direct mode network, but instead will introduce it into the network to enable it to propagate through the network until it can be transmitted to the server by another device.
  • the server may provide the content to the network via an infrastructure connection with a client mobile device of the network that is initiated by the client mobile device. Nonetheless, it is envisaged that direct communication between the server and a given requesting device might also be possible via the infrastructure in certain modes of operation.
  • client mobile devices of the direct mode network refer to devices that form nodes of the network if not specifically stated.
  • the method may comprise the server transmitting the content to another client mobile device of the direct mode network (i.e. other than the client mobile device that generated the request for content) to which a connection is available over the infrastructure for propagation through the direct mode network.
  • the content is preferably transmitted at the request of the another client mobile device of the network.
  • the server preferably does not initiate the connection to the device.
  • the connection is preferably initiated by the client mobile device.
  • the content provided by the server is preferably associated with the content label. This may enable the content to be identified and transmitted via the direct mode network until it reaches the requesting mobile device. It will be appreciated that the content will generally not be specifically sent to a particular client mobile device of the direct mode network, but instead will propagate through the network until it reaches the requesting device.
  • the requesting device may recognise the content by reference to the content label.
  • connections between the server and client mobile devices of the direct mode network can only be initiated by the client mobile device.
  • the server cannot initiate a connection with a device of the network.
  • content may be propagated across the network by associating it with requests for content in the network. These "fulfilled” content requests may then propagate across the network until they reach the requesting client device.
  • a content message may be provided by a "fulfilled” content request.
  • the fulfilled content request may be a fulfilled content label, or may additional comprise the request for content with which the content label was originally submitted.
  • requests submitted by client devices of the network to the server which result in content being made available at a web resource by the server are referred to in the following as "initial" requests by way of a label, to distinguish them from requests for content.
  • initial requests are referred to in the following as "initial" requests by way of a label, to distinguish them from requests for content.
  • the present invention also relates to methods of controlling the propagation of such messages in the direct mode network.
  • messages may propagate through the direct mode network via a mechanism in which the message is stored by a given client mobile device, and then forwarded on to another client mobile device of the direct mode network when a local wireless connection to the device is available. In other words, this is a "next hop" type of system.
  • messages may be propagated through the network by exchanges of data between client mobile devices forming nodes of the network and storing such messages when they are able to form a local wireless connection with one another.
  • the method may comprise first and second client mobile devices storing data in accordance with any of the embodiments described connecting to one another via a local wireless connection, comparing the stored data, and using the results of the comparison to update the stored data.
  • the or each client mobile device stores data indicative of a status of each type of message in association with the data indicative of the message e.g. a delivery status.
  • the status is indicative of whether or not the message has been confirmed as received by the server.
  • each of the first and second client mobile devices compares its own stored data indicative of a status of one or more, and preferably a plurality of initial e.g. POST requests originating from other client mobile devices of the network for submission to the server and/or data indicative a status of one or more, and preferably a plurality of requests for content e.g. GET requests originating from other client mobile devices of the network for submission to the server, to corresponding data stored by the other device.
  • a fulfilled content request is preferably associated with the content fulfilling the request.
  • the device may store data indicative of a request for content to be fulfilled, which may comprise the content label for the request, and where the request is fulfilled, additionally is associated with data indicative of the content.
  • the client device maintains, in respect of one or more type of message for submission to the server, a list of messages confirmed as delivered and a list of messages not confirmed as delivered to the server.
  • the client mobile device stores a list of initial requests e.g. POST requests submitted by client devices which have been confirmed as delivered to the server, a list of initial requests e.g. POST requests submitted by client devices which have not been confirmed as delivered to the server, a list of content labels associated with unfulfilled requests for content e.g. GET requests submitted by client devices, and a list of content labels associated with fulfilled requests for content e.g. GET requests submitted by client devices, preferably associated with the content.
  • each of the first and second client mobile devices compares each of its own stored lists, to the corresponding list or lists stored by the other device.
  • the first and second client mobile device each store a list of initial requests e.g. POST requests submitted by client devices which have been confirmed as delivered to the server, a list or initial requests e.g. POST requests submitted by client devices which have not been confirmed as delivered to the server, and/or a list of content labels associated with requests for content e.g. GET requests submitted by client devices that are fulfilled and a list of content labels associated with requests for content e.g. GET requests submitted by client devices that are unfulfilled, and each device compares each of its own stored lists to the corresponding list stored by the other device.
  • this step may be carried out at any time once a local wireless connection between the devices has been established.
  • the step may be carried out initially once the connection has been established i.e. when a device connects to a new device, but may also be carried out periodically thereafter.
  • the comparison may be carried out in any suitable manner, and may involve comparison of any portion of, or all of the data.
  • the comparison may involve an exchange of any or all of the data, or a merging of data lists etc.
  • each of a plurality of client mobile devices of the direct mode network comprises means for storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
  • the method comprising the client mobile device storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
  • the present invention in accordance with these further aspects may include any or all of the features described in relation to the earlier aspects of the invention to the extent they are not mutually inconsistent.
  • the messages may be of the form described in relation to any of the earlier aspects or embodiments of the invention.
  • At least one list is stored in respect of messages of the type that are request messages e.g. requests for data or GET requests.
  • the messages may be indicative of requests for content from the server in accordance with any of the embodiments of the invention.
  • the messages may be in the form of content labels.
  • a plurality of lists are stored in respect of different status requests.
  • at least two such lists of messages of this type are stored, being respectively a list of the messages that have been fulfilled by the server, and a list of messages that have not been fulfilled by the server.
  • each fulfilled request is associated with the content fulfilling the request.
  • the step of comparing may comprise a client mobile device carrying out one or more of the following steps; identifying one or more message that is found on a list of the or each other client mobile device and not on its own list, and adding the message to one of its own lists, identifying a message that is found on a list of the or each other client mobile device and is found on a different one of its own lists, and moving the message to a new list corresponding to that on which it is found at the other device if that list is indicative of a newer status.
  • a message may be on the "unconfirmed" request list of a first device, but is on the "confirmed" list of the other device. The first device may then move the request to its own confirmed list.
  • the method may comprise a client mobile device that has generated a content request for submission to the server forming a local connection to another client mobile device of the network, determining that the other device has a corresponding content request that is fulfilled i.e. comprising content associated with the same content label for which content is required, and obtaining the content fulfilling the request from the device.
  • This may enable the content request to be satisfied more quickly where the content is already in the cache e.g. as a result of it having been requested by another device.
  • This may be by the device periodically polling to try to detect other client mobile devices that can act as nodes of the direct mode network within a given range.
  • the details of the detection process e.g. the range within which a device looks for other devices, and the frequency of polling etc, may be set as desired. This may be predetermined by the system controller, e.g. a venue service provider. It will be appreciated that even if a client mobile device is static for a time, as are those client mobile devices in the proximity thereto with which it can connect, the device should still interact with the devices in proximity thereto periodically to compare stored data, as those devices may have interacted with devices further away, which are within their connection range, and which may have communicated new data. The propagation of data in the direct mode network will gradually move outwardly from its source in this way.
  • the present invention provides computer software, such as an app, specifically adapted to cause a mobile device and/or server to carry out its part in the methods herein described when installed on data processing means of the device and/or server; a computer program element comprising computer software code portions for causing a mobile device and/or server to perform its part in the methods herein described when the program element is run on data processing means of the device and/or server; and a computer program comprising code means adapted to cause a mobile device and/or server to perform its part in the steps of a method or of the methods herein described when the program is run on a data processing system of the device and/or server.
  • computer software such as an app, specifically adapted to cause a mobile device and/or server to carry out its part in the methods herein described when installed on data processing means of the device and/or server
  • a computer program element comprising computer software code portions for causing a mobile device and/or server to perform its part in the methods herein described when the program element is run on data processing means of the device and/or
  • the series of computer readable instructions embodies all or part of the functionality previously described herein.
  • FIG. 1 illustrates schematically the main components of a communications system for implementing methods of the present invention.
  • the communications system 1 includes a server 3, which, in this example is referred to as a "venue cache server", and a plurality of client mobile devices 5, which are capable of acting as nodes of a direct mode network.
  • the client mobile devices 5 therefore define a direct mode network 7.
  • the client mobile devices 5, and hence the direct mode network 7, are located within a venue.
  • the venue cache server 3 is a local server that serves the venue, and may be located at the venue.
  • Each client mobile device 5 is able to connect to the venue cache server 3 directly via an infrastructure connection. It is noted that it is not essential for all devices to be able to do this, as long as at least some are able to. This might be via a wireless access point 9 associated with the venue, or via the mobile phone network infrastructure e.g. via a base station 1 1 thereof, so as to provide e.g. a 3G or 4G connection.
  • a first step in a connection from a client mobile device 5 to the venue cache server 3 via the infrastructure may be to a wireless access point of the venue infrastructure, or to a base station, which may be a local base station or e.g. a phone network base station.
  • the infrastructure may be associated with a mobile phone network provider e.g. base stations etc. and/or may include infrastructure local to the stadium e.g. wireless network access points etc.
  • a venue service provider may provide communications to attendees of events relating to transport, sale services, live updates, which may be based upon data obtained from external providers i.e. external to the venue. This provides the ability to offer value added experiences to users, enhancing their experience of events.
  • the server 3 When the server 3 receives the request for content with its associated content label, it uses the content label to obtain the relevant content from the indicated web resource.
  • the server transmits the content label now associated with the content back to a client mobile device of the direct mode network which has initiated a connection with the server via the infrastructure.
  • the client mobile device will be a device that has initiated the connection with the server.
  • the device may then provide data from the direct mode network e.g.
  • the present invention may provide, in embodiments at least, a method that allows interactive digital services to be delivered over a direct mode network, to a desired level of security.
  • the methods of disseminating messages over the direct mode network may provide strong guarantees of delivery and low latencies.
  • the client mobile device When it wishes to send a POST request, the client mobile device must first attempt an infrastructure connection to the server. If this is possible, the POST request executes in a normal HTTP connection, and the server can directly respond to the request. If there is no direct i.e. infrastructure connection available to the venue cache server, the client mobile device queues the POST request. The POST request is added to the device's unconfirmed POST list.
  • Figure 4 illustrates a suitable protocol for handling exchange between client mobile devices and the venue cache server.
  • the client mobile device i.e. client mobile device cache then sends asset request heads to the venue cache server which identifies any new/updated assets.
  • the venue cache server then returns any assets in its cache to the client mobile device.
  • the client mobile device updates its asset cache accordingly. It will be seen that all responses to a POST request are handled through a subsequent GET request, so no additional data is required during the exchange of POST requests. A client device must follow up a POST request with a GET request to obtain the content that is the response to the POST request.
  • This pairing of POST/GET will allow the pairing of two AJAX calls to confirm the POST request, with the GET polling being executed using the normal exponential back-off approach, as recommended in the HTTP specification.
  • a content label e.g. URL is generated upon which the client mobile device can call GET, either via a direct infrastructure connection to the server or via the direct mode network.
  • the server makes the content available at a web resource having a name and location identified by the content label.
  • Each client device and the server is able to independently generate the same content label for use in obtaining the content that is the response to a particular POST Request i.e. having a particular unique identifier.
  • the server and each device have
  • the set of valid GET requests is restricted to those content labels i.e. URLs which are supported by the venue cache server. This set may be chosen by the venue cache server administrators. All GETs should be idempotent, preferably working over a uniform space that clearly delineates service usage. Ad-hoc GET requests which do not correspond to supported content labels will not be handled by the venue cache server and will result in a failure message until direct connection to an external information service, i.e. the internet, is available.
  • a bundling protocol may be provided to allow simple pre-fetching and population of the user client mobile device cache.
  • the client mobile device calls GET on specific content labels to receive the related content.
  • APModePeriod is a timeout that starts at 120 seconds.
  • APModeMultiplier is an integer drawn from [-4,4], starting at 0.
  • LegacyPeriod is a timeout that starts at 60 seconds.
  • the APCapable node will enter APMode for a period uniformly selected from:
  • the APCapable node Upon exiting APMode, the APCapable node will scan for other visible participating access points. If there are no other access points, then it will increase APModeMultiplier by one (to the maximum of its range) and will return to APMode for a timeout drawn as above. If there are three or more participating access points visible, it will reduce APModeMultiplier by one.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A communications system includes a server and a direct mode network having nodes defined by a plurality of client mobile devices, wherein each client mobile device is capable of forming a connection to one or more of the other client mobile devices of the direct mode network independently of an infrastructure to provide a connection between the nodes of the direct mode network. Some or all of the client mobile devices are also able to form a connection to the server via the infrastructure.

Description

Communications Systems and Methods
The present invention relates to a communications system, and methods of operating a communications system. The communications system includes a server and a direct mode network having nodes defined by a plurality of client mobile devices, wherein each client mobile device is capable of forming a connection to one or more of the other client mobile devices of the direct mode network independently of an infrastructure to provide a connection between the nodes of the direct mode network. Some or all of the client mobile devices are also able to form a connection to the server via the infrastructure. The present invention also extends to a server and client mobile device for use in such a communications system, and methods of operating the same.
In some situations, it may not be possible for all client mobile devices that have the capability to connect to a server via an infrastructure to do so. For example, problems may be encountered in particular in the context of events where there are large concentrations of mobile devices that may all wish to connect to a server for receiving information at around the same time. Examples of such events may include concerts, festivals or sporting events. In this situation, the connectivity between a given client mobile device and the server may be intermittent, and it cannot be assumed that there will always be an end-to-end connection between the client mobile device and the server.
One technique for transmitting data from a client mobile device to a server when no infrastructure connection to the server is available, is for the client mobile device to transmit the data to the server via a network formed by the client mobile device with other nearby client mobile devices. The client mobile device may transmit data destined for the server first to one or more of the other client mobile devices nearby, with which it is able to form a local wireless connection, independently of the infrastructure. This may be via a suitable local wireless connection such as Bluetooth® or Wi-Fi Direct. The data may then be propagated between client mobile devices of the network, which are in direct local wireless communication in this way, until it reaches a client mobile device that is able to connect to the server via the infrastructure, and transmit the data thereto.
In these types of system, the client mobile devices act as nodes of the network. The network does not have a fixed topology. The connections between the nodes will vary as the client mobile devices move, resulting in changes in relation to the direct local wireless connections that may be formed between the client mobile devices. Similarly the client mobile devices which are members of the network will vary as devices move into and out of connectivity with other client mobile devices. This type of network will be referred to as a "direct mode" network herein. One example of such a network is the Pocket Switched Network (PSN) disclosed in US 201 1/0261692.
An inevitable consequence of systems of this type, in which data is transmitted from a client mobile device to a server, when no infrastructure is available, via a direct network formed by the client mobile device with other client mobile devices, is that there will be some delay in the transmission of data to the server, as the data propagates in the network. The extent of the delay is variable, and will depend upon how long it takes for the data to reach a client mobile device that can form a connection to the server via an infrastructure. This will depend upon the connectivity between devices and the server, and with one another. There may be particular challenges in delivering dynamic content to client mobile devices in this type of system as a result of the delay. If data arrives at a node that cannot connect to any other nodes of the direct mode network at that time, the node may store the data and forward it when it can make a connection to a node e.g. if a new node joins the network.
The Applicant has realised that there remains scope for improvement in relation to the operation and configuration of communications systems comprising a server and a plurality of client mobile devices that form a network, in which at least some of the client mobile devices are able to form a connection to the server via an infrastructure, and in which each client mobile device is also capable of forming a connection to one or more of the other client mobile devices of the network independently of the infrastructure to provide a connection between the nodes of the network. In preferred embodiments at least, the present invention may provide methods and systems which may facilitate communication between the server and client mobile devices in such systems which include a direct mode network. The present invention also extends to a method and system for controlling interaction between client mobile devices that define nodes of a direct mode network, and to a client mobile device and method of operating the same for use in such a network.
In accordance with a first aspect of the invention there is provided a method of operating a communications system comprising a server and a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the method comprising;
a given one of the client mobile devices generating a request and submitting the request to the server,
the server receiving the submitted request, and automatically generating a web resource for containing content that is a response to the request, wherein the server additionally generates a content label which may be used to identify the web resource for containing the content that is a response to the request.
The present invention also extends to a communications system comprising means for carrying out any of the steps described in relation to the method. If not explicitly stated, the method of the present invention may comprise a step performing any of the features that the system comprises means for doing, and the system may comprise means for carrying out any of the steps described as being performed in the method. The means for carrying out any step described by reference to the system, may be a set of one or more processors.
In accordance with a second aspect of the invention, the present invention provides; a communications system comprising a server and a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the system comprising;
a given one of the client mobile devices comprising means for generating a request and means for submitting the request to the server,
the server comprising means for receiving the submitted request, and means for automatically generating a web resource for containing content that is a response to the request, wherein the server additionally comprises means for generating a content label which may be used to identify the web resource for containing the content that is a response to the request. It will be appreciated that the present invention in this further aspect may include any or all of the features described in relation to the other aspects of the invention, unless mutually exclusive.
Thus, the present invention in any of its aspects, relates to a communications system comprising a server and a direct mode network whose nodes are defined by a plurality of client mobile devices which are capable of acting as nodes of the direct mode network. When the client mobile devices come into local wireless connectivity with one another, i.e. within a local wireless connectivity range, connections between the nodes of the direct mode network are defined. Thus the client mobile devices are capable of forming a wireless connection to one or more of the other ones of the devices when in proximity thereto. One or more, or a plurality of the, client mobile devices are also able to connect to the server via an infrastructure. It will be appreciated that in accordance with the invention in any of its aspects and embodiments, at least some of the client mobile devices are able to connect to the server via the infrastructure. It is not a requirement that all of the client mobile devices may do so. However, in some preferred embodiments each is capable of doing so.
The present invention also extends to a server and/or a client mobile device configured to operate in accordance with any of the methods and systems described herein, and a method of operation of the server or client mobile device.
In accordance with a further aspect of the invention there is provided a method of operating a server of a communications system, wherein the
communications system further comprises a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the method comprising the server;
receiving a request generated by a given one of the client mobile devices and submitted to the server,
automatically generating a web resource for containing content that is a response to the request, and generating a content label which may be used to identify the web resource for containing the content that is the response to the request.
In accordance with a further aspect of the invention there is provided a server for operation in a communications system, wherein the communications system further comprises a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the server comprising means for carrying out a method comprising the following steps;
receiving a request generated by a given one of the client mobile devices and submitted to the server,
automatically generating a web resource for containing the content that is a response to the request,
and generating a content label which may be used to identify the web resource for containing the content that is the response to the request.
In accordance with a further aspect of the invention there is provided a method of operating a client mobile device in a communications system,
wherein the client mobile device acts as a node of a direct mode network, wherein the client mobile device is preferably capable of forming a connection to a server of the system via an infrastructure, and wherein the client mobile device is capable of forming a local wireless connection to one or more of the other ones of a plurality of client mobile devices that define other nodes of the direct mode network independently of the infrastructure to provide a connection between nodes of the direct mode network,
the method comprising;
the client mobile device generating a request and submitting the request to the server via the direct mode network, or, if the client mobile device is capable of forming a connection to the server of the system, via the direct mode network or an infrastructure connection with the server.
Preferably the request is a submission request, such as an HTTP POST request. Preferably the method of operating the client mobile device further comprises the client mobile device generating a request to be provided with the content that is the response to the initially submitted request, and submitting the request for content to the server. Preferably the content request is an HTTP GET request. Preferably, when the initial request submitted by the client mobile device is received by the server, the server automatically generates a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request, wherein the method comprising the client mobile device independently generating the content label that is generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and submitting the content label in association with the request for the content.
In accordance with a further aspect of the invention there is provided a client mobile device for use in a communications system in which the client mobile device acts as a node of a direct mode network, wherein the client mobile device is preferably capable of forming a connection to a server of the system via an infrastructure, and wherein the client mobile device is capable of forming a local wireless connection to one or more of the other ones of a plurality of client mobile devices that define other nodes of the direct mode network independently of the infrastructure to provide a connection between nodes of the direct mode network, the client mobile device comprising circuitry and/or software code portions for performing a method comprising the steps of;
generating a request and submitting the request to the server via the direct mode network, or, where the client mobile device is capable of forming an infrastructure connection to the server, via the direct mode network or an
infrastructure connection..
The request is preferably a submission request, e.g. an HTTP POST request. The device preferably comprises circuitry and/or software code portions for performing the steps of generating a request to be provided with the content that is the response to the initially submitted request for a response, and submitting the request for content to the server. The content request is preferably an HTTP GET request. Preferably, when the initial request submitted by the client mobile device is received by the server, the method comprises the server automatically generating a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request, wherein the client mobile device comprises circuitry and/or software code portions for independently generating the content label that is generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and submitting the content label in association with the request for the content.
It will be appreciated that the server and/or client mobile device in accordance with these aspects of the invention may be configured to carry out any of the steps described herein in relation to the server or client mobile device in the other aspects and embodiments of the invention, and may be configured to operate in accordance with any of the manners described.
It will be appreciated that the present invention in these further aspects may include any or all of the features described in relation to the other aspects of the invention, unless mutually exclusive.
A connection via the infrastructure as referred to herein may be a connection that is via the infrastructure of a telecommunications network e.g. mobile phone network and/or of a wireless network. Thus the infrastructure may be or comprise a telecommunications network infrastructure and/or a wireless network infrastructure. Of course, the infrastructure is not limited to this type of infrastructure. In one example, a client mobile device may be able to connect to the server via a 3G or 4G telecommunications network infrastructure of a network provider, or via a wireless network access point of the infrastructure. The infrastructure via which data is transmitted may comprise one or more components, and may include one or more of e.g. routers, repeaters, servers, transmitters, receivers, wireless access points etc. The connection may be via one or more components of the infrastructure. In contrast to the direct mode network which is defined by mobile devices, and whose topology may vary, the infrastructure may be a referred to as a fixed infrastructure.
A connection between the at least one server and a client mobile device via the infrastructure may be via a local area network (LAN) or wider area network (WAN) connection.
Whatever its composition, the infrastructure may comprise public and/or private infrastructure e.g. of one or more public network and/or private network. The infrastructure may be or comprise a private infrastructure e.g. of one or more private network(s) associated with a location at which at least the client mobile devices providing the direct mode network, and optionally the server, are located. A private network may be associated with a service provider at the location e.g. a venue or event service provider. A connection formed by a client mobile device with the server via the infrastructure will be such that the first step in the connection from the client mobile device i.e. origin to the server i.e. destination is to a node of the infrastructure. The first node to which data is transmitted from the client mobile device is a node of the infrastructure. The node may be provided by any component of the infrastructure, such as a base station, satellite or a wireless communications access point of the infrastructure. Conversely, a connection formed between the server and a client mobile device via the infrastructure will be such that the first step in the connection from the server i.e. origin to the client mobile device i.e. destination is to a node of the infrastructure. It will be appreciated that in embodiments of the invention, although a connection may be formed between a server and client mobile device, the connection will be initiated by a client mobile device. The first node to which data is transmitted from the server is a node of the infrastructure. The node may be provided by any component of the infrastructure, such as a base station, satellite or a wireless communications access point of the infrastructure.
A connection via the infrastructure is an end-to-end connection between an origin and destination, being respectively a client mobile device and the server, or vice versa. In embodiments in which a client mobile device connects to the server via the infrastructure, or conversely in which the server is connected to a client mobile device in this manner, the connection is such that data is transmitted between the client mobile device and the at least one server via the infrastructure without being propagated through the direct mode network i.e. without being transmitted to another client mobile device that defines a node of the direct mode network. The connection via the infrastructure may be referred to as a "direct" connection between a client mobile device and the at least one server, rather than an "indirect" connection via the direct mode network.
In preferred embodiments the plurality of client devices defining the nodes of the direct mode network, and optionally the server, are associated with i.e. situated at a given location. The location is preferably a venue i.e. a location at which an event occurs. The location e.g. venue may be a building. The location e.g. venue may be a stadium, concert hall, festival venue etc. The use of a direct mode network to provide the ability for client mobile devices to communicate with a server when no infrastructure connection is available is particularly advantageous at events, such as at a concert, sporting event or similar, where there are high concentrations of mobile devices present i.e. associated with users attending the event. In this context, it is more likely that a given client mobile device will be unable to connect to the server via the infrastructure due to overloading of the capacity of the infrastructure. Where the location is a building e.g. a stadium, the ability of client mobile devices to connect to the server via the infrastructure may be further diminished as a result of structure of a building. For example, stadia and other predominantly metal or concrete buildings may tend to block the transmission of longer range signals. While the infrastructure may comprise global infrastructure, in preferred embodiments the infrastructure may comprise a local infrastructure associated with the location e.g. venue, or building. In general, the location at which the plurality of client mobile devices, and optionally the server, are located, may be a location at which a crowd of users of client mobile devices are present.
The server may be of any suitable type. While reference herein is made to "the server", it will be appreciated that the communications system may comprise one or more servers. Thus, any reference to "the server" herein may be replaced by a reference to "the at least one server", unless the context demands otherwise.
In preferred embodiments the server is connected to the global internet.
In accordance with the invention in any of its embodiments, in some preferred embodiments the server is associated with a location where the plurality of client mobile devices are located. Thus, in embodiments the server is associated with e.g. situated at the location, which may be a venue and/or building, and may be of any of the types described above. The server may a local server. In some embodiments the server is a cache server associated with the location e.g. venue. The server may be a venue cache server. A cache server may store local copies of data obtained from an external provider e.g. via a global internet connection for access by the client mobile devices. This may enable data to be provided to devices without needing to obtain the data from the external provider, improving speed of delivery. For example, the cache server may be set up to store data that is anticipated to be requested by client devices. In embodiments, the server is associated with a location where the plurality of client mobile devices are located, the location being a location e.g. venue of an event, and the server is operated by an event service provider.
In accordance with the invention, the communications system comprises a direct mode network whose nodes are defined by respective ones of a plurality of client mobile devices, at least some of which are able to connect to the server via an infrastructure when connectivity is available, and are also capable of directly connecting to one another via a local wireless connection to provide connections between the nodes of the direct mode network. As used herein, a direct mode (DM) network refers to a network whose nodes are defined by a plurality of client mobile devices that are able to directly connect to one another, when in proximity with one another, via a local wireless connection, thereby providing a connection between the nodes of the direct mode network to enable the transfer of data between the nodes.
The direct mode network as referred to herein is fluid in its configuration and composition. The direct mode network does not have a fixed topology. The topology of the direct mode network is variable. The nodes i.e. client mobile devices of the direct mode network and/or the connections between the nodes i.e. client mobile devices of the network are not fixed. The identity and/or number of the nodes i.e. client mobile devices forming part of the direct mode network may vary. It will be appreciated that the client mobile devices that form part of the direct mode network i.e. define nodes thereof, and/or the local wireless connections between the client mobile devices defining connections between nodes of the direct mode network, will vary as client mobile devices move into and out of a location of the direct mode network and/or into and out of connectivity with client mobile devices that form part of the direct mode network. Alternatively or additionally, software or similar that enables a client mobile device to act as a node may be terminated, preventing it from forming part of the network, even if its location is unchanged.
The connections that are defined between the nodes of the direct mode network will vary depending upon the relative positions of the client mobile devices forming part of the direct mode network and hence the local wireless connections that may be formed between the devices. Accordingly, in accordance with the invention in any of its aspects or embodiments, the connectivity between the nodes of the direct mode network is dependent upon the relative positions of the plurality of client mobile devices which affects the local wireless connectivity available between the client mobile devices.
The membership of the direct mode network i.e. the client mobile devices that form nodes of the direct mode network, is variable i.e. not fixed. For example, in preferred embodiments in which the direct mode network is located in a venue or building, such as a stadium, nodes will be added and/or removed from the direct mode network as client mobile devices capable of providing nodes of the direct mode network enter and/or leave the venue or building, and/or as the capability of their devices to act as nodes is terminated e.g. by a software operation, which may or may not be user initiated. When reference is made to a client mobile device that forms part of the direct mode network, it will be appreciated that this refers to a client mobile device that forms part of the direct mode network at the relevant time. The direct mode network is defined by a group of client mobile devices that, at a given time, are capable of acting as nodes of the network. The client mobile devices may be associated with i.e. situated at a given location, which may be a venue or building as described above. The group of client mobile devices defining the direct mode network may vary over time. A client mobile device is capable of acting as a node of the direct mode network when it is ready to connect to another client mobile device or devices defining nodes of the network when in proximity thereto to enable the transfer of data between the devices. In some embodiments a client mobile device may have undergone an initiation procedure to render it capable of acting as a node of the network. For example, the device may communicate its identity to the client devices which form nodes of the network and receive their identities. This may be achieved using a suitable software application or similar as described in more detail below.
Each given client mobile device in the direct mode network has the ability to act as a router of data originating from another one of the client mobile devices of the direct mode network and destined for a destination other than the given client mobile device. The data may be destined for the server or another one of the client mobile devices. The data is not specifically directed to the destination. Data e.g. messages is/are transmitted between client mobile devices of the direct mode network e.g. until it reaches a client mobile device that is able to transmit it to the server via the infrastructure, or, alternatively until it happens to reach a destination mobile client device. In this way, the direct mode network allows data to be communicated without requiring a continuous end-to-end connection to exist between the origin and destination of the data. Data may be received and stored by a given client mobile device before being forwarded to at least one other client mobile device of the direct mode network when the given client mobile device is able to form a local connection thereto. In other words, the message is forwarded between client mobile devices of the direct mode network in a manner that merely identifies a "next hop" without relying upon an end-to-end connection to the destination.
Networks of the type of the direct mode network of the present invention, which do not have a fixed topology, may be referred to as "ad hoc" or "opportunistic" networks. The direct mode network of the present invention may be referred to as an ad hoc mobile direct mode network, or simply an ad hoc mobile network.
The local connection that may be formed between client mobile devices of the direct mode network to define a connection between nodes of the direct mode network, i.e. when the client devices are in proximity with one another, may utilise any suitable local connectivity capability of the client mobile devices. The connection is a wireless connection. The connection is a short range connection. The connection is a direct connection between the client mobile devices.
In some embodiments, the connection may be any type of WiFi connection e.g. according to the 802.1 1 standard, Wi-Fi direct, or any other e.g. past or future wireless system, whether or not it forms part of a standard. In other embodiments the connection may be a Bluetooth® connection. It will be appreciated that different ones of the client mobile devices may connect to another one or ones of the client mobile devices of the direct mode network via different types of local wireless connectivity, e.g. depending upon the available local wireless connectivity mode or modes of the pairs of devices that are to form the connection.
The client mobile devices may be of any suitable type. For example, the devices may be selected from any one or ones of; mobile phones, tablet devices, PDAs, laptops, navigation devices such as a personal navigation devices (PND) or sports watch etc. The devices may be user devices. The devices may be any suitable portable devices. The devices are preferably devices that are worn or carried by a user e.g. laptops, PDAs, mobile phones, tablet devices etc. In other embodiments, it is envisaged that the devices might be associated with vehicles. The range of the local connection formed between nodes of the direct mode network will vary depending upon the type of devices involved and the context in which the direct mode network is used. Devices may, for example, be controlled to connect only to other devices that are found within a given range to control the power usage associated with the direct mode network activities of the devices.
In some preferred embodiments the direct mode network is a Pocket
Switched Network (PSN). References to a "direct mode network" herein may be replaced by references to a PSN. A PSN is a network of the type defined herein as a direct mode network, without a fixed topology, in which the nodes, and the connections between the nodes, of the network are variable as client mobile devices enter and leave the network and/or move within it. A PSN is a network whose nodes are defined by client mobile devices of the type that may be worn or carried by a user, such as mobile phones, tablet devices, PDAs, laptops etc. Such a network is particularly applicable to a venue or building such as a stadium, where it can be expected that there will be a concentration of users of such devices.
In accordance with the invention, submittal of data from an origin client mobile device to the server via the direct mode network involves data being transmitted by the origin client mobile device to at least one, and preferably a plurality of, the other client mobile devices that define nodes of the direct mode network as a first step. Data is propagated through the direct mode network en route to the server. Conversely, transmittal of data between the server and a given destination client mobile device via the direct mode network involves data being transmitted by the server via the infrastructure to another one of the client mobile devices defining a node of the direct mode network before propagating through the direct mode network to reach the given destination client mobile device. Data is propagated through the direct mode network from the another client mobile device to which is transmitted by the server to the destination client mobile device.
It will be appreciated that, at least if the origin client mobile device is unable to connect to the server via the infrastructure, data may be introduced by the origin client mobile device into the direct mode network, and may propagate therethrough until it reaches a client mobile device that is able to transmit the data via the infrastructure to the server. Conversely data from the server may be communicated to a client mobile device via the infrastructure for introduction to the direct mode network. This may be over a connection initiated by the client mobile device. The data may then propagate through the direct mode network to other mobile client devices of the network. In this way, the data may reach a device that requested the data, but without the server transmitting the data specifically to the device, or indeed initiating data transmitting. It will be understood that at least some i.e. one or more, or at least a plurality, of the plurality of client mobile devices that form the direct mode network must be capable of forming an infrastructure connection to the server, in order for data to be introduced into the network by the server, or for data to be provided to the server from the network. However, it is not necessary for all devices to have this capability as the data may propagate internally in the network until it reaches a device with this capability and which is able to connect to the server. Data from the server may then be received by the device over an infrastructure connection which is initiated by the device to transfer data to the server from the network.
As mentioned above, the Applicant has realised that there remains a need for improved methods and systems for communicating data between a server and client mobile devices which form part of a direct mode network of the type to which the invention is directed. By way of example, where the direct mode network is associated with a location, such as an event venue, it is often desirable for the event organiser to be able to disseminate data to mobile device users at the venue, whether to enhance their experience at the event, or to provide essential e.g. safety or travel information. Increasingly, mobile device users may wish to access dynamic content e.g. from the Internet, such as live updates relating to the event, or other related events. Due to the inherent delay in transmission of messages which travel via the direct mode network, there are particular difficulties in transmitting data to users of the client mobile devices, especially where it has a "live" nature. The present invention provides methods and systems which, in preferred embodiments at least, can help to address these problems. It will be appreciated that the direct mode network of the present invention may be considered a form of "delay tolerant network". The methods of the present invention provide the network with the ability to better tolerate and mitigate potential delays associated with its direct mode nature.
In accordance with the invention, a given one of the client mobile devices that forms part of i.e. defines a node of the direct mode network generates and submits a request to the server. The request may be a request according to the HTTP (HyperText Transfer Protocol) communications protocol. In some preferred embodiments the request is an HTTP "GET" request. The client mobile device generates the request. In other words, the client device is the origin of the request. The client mobile device may automatically generate the request, or may generate the request in response to a user input.
It will be appreciated that one or more client mobile devices, and preferably a plurality of the client mobile devices, that form part of the direct mode network, generate and submit requests in this way. The reference to "the given client mobile device" may be replaced by "at least one" given client mobile device, or a "plurality" of the client mobile devices. Requests may be submitted simultaneously by different ones of the mobile devices. For ease of reference, the method may be described in relation to a client mobile device acting in this manner. However, where not explicitly stated, and unless the context demands otherwise, it will be appreciated that the embodiments described below in relation to a request submitted by a given client mobile device, and the related steps carried out subsequently by the client mobile device and/or server, may be carried out by the or each client mobile device that submits a request. Thus each client mobile device that submits a request may do so in accordance with any of the embodiments described herein. The client mobile device preferably has the ability to connect to the server via the
infrastructure. The request submitted to the server is a message. The message may generally be categorised as, and referred to, as a "submission message". The request may be referred to as "a submission request". This is a type of message that may be implemented as a "POST" request in the HTTP protocol. In other words, the client mobile device generates, and submits to the server, a message that submits data to the server.
The server receives the submitted request (or message), and automatically generates a web resource for containing content providing a response to the request. The web resource may subsequently be queried to obtain the response to the request. The server additionally generates a content label which may be used to identify the web resource comprising the content providing the response to the request.
Accordingly, rather than simply obtaining the content and providing it directly to the client mobile device in response to the request, the server generates a web resource where content providing a response to the request is, or will be found, and a content label for use in identifying the web resource which may be used in subsequently retrieving the content. In this way, the present invention enables a client mobile device to subsequently retrieve the content from the web resource if and when it is required.
It will be appreciated that in the context of a system of the type to which the present invention is directed, in which an end to end connection between the client mobile device and the server cannot be assumed, and in which it may be necessary for the server and client mobile device to communicate via the direct mode network, this has the advantage that the provision of content by the server that is a response to a request from a client mobile device may be divorced from the initial request. In view of this, the effect of the inherent delays in the system may be mitigated, as the client mobile device is able to subsequently retrieve the content if and when required e.g. via the direct mode network. By avoiding the need for the server to necessarily provide a direct response to the request from the device, at least in some cases, the number of messages needing to be transmitted between the server and the client device may be reduced. This is advantageous whether or not a connection via the infrastructure exists between the server and the client mobile device. Where an infrastructure connection exists then by reducing the number of messages in the system, overloading of the infrastructure may be reduced, increasing the ability of remaining messages to be transmitted between the direct mode network and the server via the infrastructure. As, in the system of the present invention, it is expected that connectivity between the server and a client mobile device may be intermittent, it is advantageous to avoid the need to send a direct response to the request from a client mobile device given the inherent delay in propagation of messages through the network. Preferably the server does not provide a direct response to a received initial request.
The request submitted by the client mobile device to the server may be of any suitable type. It will be understood that although the server makes available a web resource containing content that is a response to the request, the client mobile device may not need or wish to obtain the response, at least at that time. Thus, the request may be a submission request providing data to the server, to which the server can make available a response. Thus the request made by the client mobile device is not a specific request with the intention to obtain a response from the server.
The request is a request which may be responded to by content made available by the server. The request may be a request that is specific to a given user of the client mobile device, or may be a more generic request. The request may be a standing request or a one-off request. By way of example, in some embodiments, the request may be e.g. a request to place a bet. The content that is a response to the request provided by the server may then be a confirmation of acceptance of the bet.
The method preferably further comprises the server making content that is the response to the request available at the web resource. This step may be carried out at the time that the web resource is generated. In other embodiments the content may be added subsequently to the web resource. In embodiments the web resource contains the content that is a response to the request. The server may obtain the content from any suitable source or sources. For example the content may be obtained by the server via a global internet connection. However, in preferred embodiments the server is a cache server that stores content anticipated to be requested by client mobile devices, and the content is obtained by the server from data stored locally by the server. The server may be e.g. a venue cache server. The server may be arranged to pre-store data that is anticipated to be required by attendees of an event at the venue. In some embodiments, e.g. where the request is a request to place a bet, the server may make the content available at the web resource straightaway i.e. confirming acceptance of the bet. In other embodiments the server may add the content that is a response to the web resource subsequently when it becomes available. The server may update the content at the web resource that is the response to the request periodically e.g. when there is a change in respect of the content. The client device may then choose to request the content if it wishes to obtain the response at one or more subsequent times.
Whether it is obtained from the internet by the server for adding to the web resource, or is pre-fetched in anticipation of a request e.g. when setting up the cache server, in preferred embodiments the content is internet content.
The server additionally generates a content label that may be used to identify the web resource containing the content that is the response to the request. The content label may be used to identify the correct web resource in order to subsequently obtain content from the resource that is a response to the initial request. The content label may be of any suitable form. The content label may be a pointer to the web resource. The content label may be indicative of one or preferably both of a name and/or a location of the web resource. Preferably the content label is a Uniform Resource Locator (URL).
The present invention preferably further comprises the client mobile device submitting a request for the content providing a response to the initial request of the device for communication to the server. The request for content is a separate, subsequent request or message to the initial request e.g. submission request. Both requests are client requests.
To distinguish between a request of the client mobile device which results in the server making available the content that is a response to the request at a web resource, and a request to obtain the content, the request resulting in the content being made available may be referred to as an "initial" request or "submission request" herein with the other request for the content being referred to as a "request for content". The reference to an "initial" request does not imply that the "initial" request is always followed by a request for content, although this may be the case.
The request for content may be a request in any suitable language. In preferred embodiments the request is an HTTP request, and specifically, is preferably a "GET" request. It will be appreciated that a client mobile device may not always submit a request for content subsequent to submitting a request to the server that resulted in the server making the content available. A request for content may at least not be submitted immediately that the initial request has been submitted. A request for content might be sent out e.g. when a user "refreshes" the client mobile device. For example, the client mobile device may periodically send out a request for content in order to receive any new content that is a response to an initial request e.g. since a previous request for content. The request for content is a message, and may be categorised generally as, and referred to as, a requesting message, i.e. a content requesting message. This is the type of request implemented using a "GET" request in the HTTP protocol.
It will be appreciated that in contrast to conventional techniques, in which a server responds directly to a received POST request, in its preferred embodiments at least, the present invention avoids the need for this step, with the server instead making content that is a response to an initial POST request available to the client mobile device at a location known to the device. The client mobile device subsequently submits a GET request to the server in order to retrieve the content made available in response to the POST request at the known location.
In a particularly preferred embodiment the client mobile device is able to independently generate the content label generated by the server for identifying the web resource comprising the content providing the response to the initial request by the device, and submits the content label in association with the request for the content. Thus, the server and the client mobile device are each arranged to be able to generate, independently of one another, the same content label indicative of the web resource containing the content that is a response to a request submitted by the client mobile device. In this way, the device is able to subsequently identify the web resource that is expected to contain the response to the initial request without the server needing to transmit this information to the device. In other words, the location of the web resource at which the content that is a response to the request is to be made available by the server is derivable independently by the client mobile device without reference to the server. This again is advantageous in that it avoids a message needing to be transmitted between the server and client mobile device in response to the initial request from the client mobile device. This avoids overloading the infrastructure with an additional message should an infrastructure connection exist, or alternatively avoids the need to transmit the message back through the direct mode network with its inherent delay, where no connectivity to the server via the infrastructure exists. The client mobile device may submit the request for the content without waiting for a response from the server providing the content label.
In preferred embodiments the server and the client mobile device each comprise content label generating means arranged such that the or each client mobile device and the server can independently generate the same content label for identifying the web resource for containing content that is a response to a given request from the client mobile device. The content label generating means may be implemented using a suitable set of one or more algorithms. The content label generating means of the server and the at least one client mobile device are arranged to provide the same output content label given the same input data.
Preferably each client mobile device of the plurality of client mobile devices comprises such content label generating means.
Preferably the request for the content generated by a client mobile device is associated with the content label identifying the web resource comprising the content that is the response to the request.
In some preferred embodiments the request that is initially submitted to the server by the client mobile device (in response to which the server makes available the web resource including content that is a response thereto) is associated with a unique identifier based at least in part on an identity of the client mobile device that generates the request. The unique identifier uniquely identifies the request within the communications system. The unique identifier may be indicative of the specific request in any manner. For example, the unique identifier may be based at least in part upon a time data associated with the request e.g. a generation timestamp.
In preferred embodiments the content label is specific to a given (initial) request generated by a given client mobile device i.e. the request that results in the server making available the web resource for containing content that is a response to the request. The web resource may also be specific to the given initial request generated by a given client mobile device. Thus the web resource may contain only content that is a response to the particular request from a given client mobile device, and the content label is specific to identifying that web resource.
In preferred embodiments the content label is specific to the given (initial) request and the client mobile device that generated the request. In some preferred embodiments the content label is specific to a given combination of a requesting client mobile device, request and content. The content label may be unique. The same may apply to the generated web resource.
In some preferred embodiments the content label is generated using the unique identifier associated with a given (initial) request. The server may therefore generate the content label using the unique identifier associated with a received request. The unique identifier is preferably based at least in part on the identity of the client mobile device that generated the request. Thus, the resulting content label will be specific to the request and the originating client mobile device. In preferred embodiments in which the client mobile device is able to independently generate the same content label as the server, the client mobile device will similarly generate the content label using the unique identifier. The content label may then provide a way of tracking a request for content, and, when associated with returned content, with tracking that content through the communications system. This is particularly useful in the context of the present invention, in which the request for content, and the content that is the response to the request, may be transmitted via the direct mode network to the server or from the server to the originating client mobile device. It will be appreciated that this may enable the same request for content, or content, to be propagated over the direct mode network via multiple paths, to increase delivery probability and speed, while enabling a device to identify content that relates to a request for content that it has submitted to the server when it propagates back sometime later. This may also allow devices of the direct mode network to readily establish when particular requests for content have been delivered to the server, and content delivered by the server to fulfil the requests, as described below.
In embodiments in which the client mobile device and the server are arranged to be able to independently generate the same content label identifying a web resource at which content that is a response to a request submitted by the device may be found, each may be arranged to generate the same content label based upon the unique identifier for the request. Thus, in embodiments the input data used by the content label generating means in generating the content label comprises or is the unique identifier associated with the request submitted by the client mobile device.
Regardless of whether the content label is specific to a given initial request and client mobile device, the content label is preferably specific to given content. The web resource is therefore also preferably specific to the given content. Thus, a different content label will be produced in respect different content. The identity e.g. name and/or location of the web resource for each different set of content will be different.
Although the present invention is particularly applicable to embodiments in which the content labels are specific to a particular (initial) request and a specific originating client mobile device, it is envisaged that the content label could be more generic. In some embodiments, in which a plurality of client mobile devices each make the same initial request, it is envisaged that the server may generate a given web resource that is to contain or contains content that is the response to each of the requests. Thus, the server may only carry out the step of generating a web resource that is to contain content that is a response to the request, and generating the relevant content label for identifying the web resource, in respect of the first received request. When a subsequent request for the same response is received, the server may not need to generate a new web resource or content label. Each of the client mobile devices may then independently generate the same content label for use in identifying the web resource. The method may comprise each of the client mobile devices generating a request to be provided with the content that is the response to the initial request, and each submitting a request for the content in association with the same content label. The server may then provide the same content in response to each received request for content from the same web resource, preferably in association with the same content label, for transmission to each client mobile device, or, it may be that the required content can be retrieved from a cache of the direct mode network if it has already been retrieved from the server in respect of an earlier identical request, avoiding the need to transmit each request to the server. The plurality of client mobile devices may be a predetermined group of client mobile devices. The group may be any group of client mobile devices that have a common desire to obtain particular content. The group may be a group of devices that share one or more attributes e.g. being located in a particular part of the venue, or being associated with users having similar interests.
Thus, it will be appreciated that in cases in which a content label is specific to a particular client mobile device and (initial) request e.g. being based upon the unique request identifier, it will differ from another content label that is also specific to a particular client mobile device and request, even if it is in respect of the same content. On the other hand, if the content label is not specific to a particular client mobile device and request, the same content label may be used in respect of the same content. In both cases, a different content label is generated for each different set of content.
In some embodiments the set of possible content labels e.g. URLs and/or web resources is limited. The set may be limited to certain labels associated with certain types of content relevant to a venue e.g. under the control of venue service providers, for providing relevant content to users. If a client mobile device attempts to request content that would necessitate using a content label or web resource outside the allowed set, the server may disregard the request.
In embodiments of the invention, regardless of the form of the content label, the initial request and/or the request for the content providing the response to the initial request that are submitted by the client mobile device may be submitted to the server via the infrastructure or via the direct mode network. References to a request or content being submitted or transmitted to the server or client mobile device may refer to the submission or transmittal of the request or content over the direct mode network or the infrastructure unless the context demands otherwise.
In embodiments, at least one, and in embodiments, both of the initial request and the request for content are submitted by the client mobile device to the server via the direct mode network. In preferred embodiments, the client mobile device has the ability to connect to the server via an infrastructure connection, and one or both of the initial request and the request for content are submitted to the server via the direct mode network after failure of an attempt to connect to the server via the infrastructure. The step of submitting a request to the server via the direct mode network may comprise the client mobile device introducing the request to the direct mode network for transmission to the server via another one of the client devices of the network that is able to form an infrastructure connection with the server after propagation through the network. In some embodiments the client mobile device is arranged to attempt to connect to the server via the infrastructure for submitting the initial request and/or the request for content, and, if the client mobile device is unable to connect to the server via the infrastructure, to introduce the request to the direct mode network for propagation to another client device that can submit the request to the server via the infrastructure. The method may comprise the client mobile device carrying out such steps. In the case of a submission via the direct mode network, the client mobile device will, as a first step, transmit the request directly to one or more other client mobile devices of the direct mode network via a local wireless connection formed with the device or devices. It will be appreciated that the client device will not specifically direct a request to the server via the direct mode network, but instead will introduce it into the network to enable it to propagate through the network until it can be transmitted to the server by another device.
References to a request being submitted via the direct mode network to the server refer to the request being submitted so that it travels via the direct mode network at some point on the way to the server. However, as a final step, the request will be transmitted via an infrastructure connection as well at some point between the network and the server.
Propagation of a request or data etc through the direct mode network refers to the transmission of the request or data between client mobile devices that define nodes of the network via local wireless connections between the devices. This may be via one or more paths, and is preferably via multiple paths.
In accordance with embodiments of the invention in which an initial request and/or a request for the content that is a response to the initial request is submitted by a client mobile device over the direct mode network, preferably the method comprises the client mobile device transmitting the initial request and/or the request for content to one or more other client mobile device of the direct mode network with which it is able to form a local wireless connection, and preferably to the or each client mobile device of the direct mode network with which it is able to form a local wireless connection. In preferred embodiments the client mobile device transmits the or each request to a plurality of other client mobile devices of the direct mode network. It will be appreciated that the or each client mobile device of the direct mode network with which the device is able to connect will be one or more devices capable of acting as nodes of the network at the relevant time. The or each request is transmitted via the appropriate direct wireless connection e.g. Bluetooth® or WiFi e.g. Wi-Fi direct to the or each other client mobile device. These steps are then repeated by each client mobile device that received the data. Thus each client mobile device that receives the data then transmits the data to one or more, or a plurality of client mobile devices of the direct mode network with which it is able to form a local wireless connection in any of the manners described above. A client mobile device may first attempt to connect to the server via the infrastructure for transmitting the data thereto before transmitting it to another mobile client device.
While references are made to a "request" being propagated over the direct mode network, it will be appreciated that the request as submitted by the originating client mobile device itself, or data indicative thereof, may be propagated. Any reference to a "request" being propagated or transmitted over the direct mode network, or between client mobile devices defining nodes thereof, should be understood in this manner, and may be replaced by a reference to "data indicative of the request. In respect of requests for content, in some embodiments the data indicative of the request may be a content label. This is appropriate where the content label is specific to a given device and request e.g. being based on the unique identifier for the original request.
It will be appreciated that the or each request, or data indicative thereof, may then propagate through the direct mode network from the originating client mobile device via multiple paths until at least one client mobile device that has received the request is able to form a connection to the server via the infrastructure for transmitting the request thereto. In embodiments the method comprises the or each request transmitted by the client mobile device to one or more other client mobile devices of the direct mode network propagating through the direct mode network via one or more, and preferably a plurality of paths, until at least one client mobile device that has received the request is able to form a connection to the server via the infrastructure for transmitting the request thereto. It will be appreciated that multiple client mobile devices may be able to connect to the server and transmit (a copy of) the request thereto via the infrastructure. Conversely, not every copy of a given request that is propagated in the direct mode network will necessarily reach a client device that is able to connect to the server via the infrastructure.
While, as discussed above, the server does not need to provide a direct response to a received (initial) request from a client mobile device, but instead generates the web resource for containing content that is a response to the request, when the server receives a request for content, it does need to make a response thereto. The method extends to the step of the server receiving a request for content submitted by a client mobile device. The request for content may be received via an infrastructure connection between the server and client mobile device, or alternatively via an infrastructure connection with another one of the client mobile devices of the direct mode network if the request for content was submitted via the direct mode network. In preferred embodiments the request for content is associated with the content label identifying the web resource where the server has made the content that is the response to the request available. This content label may have been independently generated by the client mobile device that generated the request for content. The server may then use the received content label to obtain the relevant content.
In embodiments the method comprises the server receiving a request for content submitted by a client mobile device and introducing the content, preferably associated with the content label for the content, to the direct mode network for propagation among the client mobile devices defining nodes of the network. As the requesting device forms part of the direct mode network, the content will ultimately filter back to the client device if it remains connected within the network. Thus the server may introduce the content into the direct mode network for propagation among client mobile device defining nodes of the network which client mobile devices including the requesting client mobile device. The server does not specifically transmit the content to the requesting device, or target it toward that device. The server does not, in preferred embodiments, initiate a connection with the direct mode network over which the introduction of the content into the direct mode network occurs. The server may provide the content to the network via an infrastructure connection with a client mobile device of the network that is initiated by the client mobile device. Nonetheless, it is envisaged that direct communication between the server and a given requesting device might also be possible via the infrastructure in certain modes of operation. References herein to client mobile devices of the direct mode network refer to devices that form nodes of the network if not specifically stated.
The method may comprise the server transmitting the content to another client mobile device of the direct mode network (i.e. other than the client mobile device that generated the request for content) to which a connection is available over the infrastructure for propagation through the direct mode network. The content is preferably transmitted at the request of the another client mobile device of the network. Thus, the server preferably does not initiate the connection to the device. The connection is preferably initiated by the client mobile device. The content provided by the server is preferably associated with the content label. This may enable the content to be identified and transmitted via the direct mode network until it reaches the requesting mobile device. It will be appreciated that the content will generally not be specifically sent to a particular client mobile device of the direct mode network, but instead will propagate through the network until it reaches the requesting device. The requesting device may recognise the content by reference to the content label.
In some embodiments of the invention connections between the server and client mobile devices of the direct mode network can only be initiated by the client mobile device. Thus, the server cannot initiate a connection with a device of the network.
Preferably the content is transmitted associated with the content label across the direct mode network. As described above, the content label is preferably specific to a given request for content from a given client mobile device. In preferred embodiments the content label is based upon a unique identifier for the initial request, which is based at least in part on the identity of the device that generated the initial request. In this way, the content label may be indirectly indicative of the client mobile device to which the content is to be transmitted. However, this is not essential. A client mobile device may recognise content that it requested via the content label whether or not it is specific to its identity.
Each item of content submitted by the server for responding to a given request for content, preferably having an associated content label, may be referred to as a "content message".
In preferred embodiments the method comprises a client mobile device transmitting content, preferably associated with a content label, received from the server via the infrastructure, to one or more other client mobile device of the direct mode network with which it is able to form a local wireless connection, and preferably to the or each client mobile device of the direct mode network with which it is able to form a local wireless connection. The or each request is transmitted via the appropriate direct wireless connection e.g. Bluetooth® or WiFi to the or each other client mobile device. In preferred embodiments the client mobile device transmits the or each request to a plurality of other client mobile devices of the direct mode network. These steps are then repeated by each client mobile device that received the data. Thus each client mobile device that receives the data then transmits the data to one or more, or a plurality of client mobile devices of the direct mode network with which it is able to form a local wireless connection in any of the manners described above.
As described later, in certain embodiments, content may be propagated across the network by associating it with requests for content in the network. These "fulfilled" content requests may then propagate across the network until they reach the requesting client device. In effect, a content message may be provided by a "fulfilled" content request. The fulfilled content request may be a fulfilled content label, or may additional comprise the request for content with which the content label was originally submitted.
It will be appreciated that content received from the server, preferably in association with the content label indicative of the web resource from which the content was obtained, may propagate through the direct mode network from a client mobile device that received the content, and preferably associated content label, from the server, via multiple paths until it reaches the client mobile device that generated the request for content. In embodiments the method comprises content received from the server, preferably in association with the content label indicative of the web resource from which the content was obtained, propagating through the direct mode network via one or more, and preferably a plurality of paths, from a client mobile device that received the content from the server via an infrastructure connection, until it reaches the client mobile device that requested the content. The content may reach the client mobile device via one or more paths. The content may be propagated through the network until it reaches the device via at least one of the paths. It will be seen that the content may reach the device via multiple paths.
Conversely, certain copies of the content propagating in the network will not reach the client device. ln practice, initial requests (i.e. which result in the server making content available at a web resource), and requests for content, from multiple client mobile devices will be propagated through the direct mode network at any given time for transmission to the server, as will any content and associated content labels received from the server. Each client mobile device may receive data indicative of such items from other client mobile devices of the direct mode network when a local wireless connection therewith is formed, and may transmit such data to other client mobile devices of the network when in local wireless connection therewith.
It is possible that multiple copies of the same request for submission to the server may be communicated to the server via the direct mode network, by any client mobile device that receives the request and is able to make an infrastructure connection to the server. Likewise, content provided by the server to the direct mode network (at the request of client mobile devices of the network i.e. through connections initiated by the devices with the server), may reach a given client mobile device via multiple routes. Of course, not every request propagated through the direct mode network will necessarily be transmitted to the server, or to the requesting client mobile device, as appropriate. Thus, the propagation of multiple copies of the same request is useful. Nonetheless, it will be seen that it is advantageous to take certain steps to control the propagation of messages in the direct mode network, to reduce duplication, reduce delays, and increase the probability of messages reaching their destination.
As mentioned above, the request for content, and the initial request, and data indicative thereof, referred to herein may be considered in general as messages for submission to the server. The initial request e.g. POST request which results in the server making available content at a web resource may be referred to as a
"submission message" in that it provides data to the server, and a request for content as a "requesting message" in that it is a request to be provided with content. Content provided by the server in response to a request for content may be considered to be a "content message". A content request message associated with returned content i.e. a fulfilled content request may provide a content message.
In the following discussion, to avoid confusion, requests submitted by client devices of the network to the server which result in content being made available at a web resource by the server, are referred to in the following as "initial" requests by way of a label, to distinguish them from requests for content. As mentioned earlier, this does not imply that the "initial" request is necessarily associated with a subsequent content request. The present invention also relates to methods of controlling the propagation of such messages in the direct mode network. In general, messages may propagate through the direct mode network via a mechanism in which the message is stored by a given client mobile device, and then forwarded on to another client mobile device of the direct mode network when a local wireless connection to the device is available. In other words, this is a "next hop" type of system.
Preferably one or more, and most preferably each client mobile device i.e. node of the direct mode network stores data indicative of one or more, and preferably a plurality of messages of one or more type originating from other client mobile devices i.e. nodes of the network e.g. for submission to server.
It will be appreciated that messages may be propagated through the network by exchanges of data between client mobile devices forming nodes of the network and storing such messages when they are able to form a local wireless connection with one another. The method may comprise first and second client mobile devices storing data in accordance with any of the embodiments described connecting to one another via a local wireless connection, comparing the stored data, and using the results of the comparison to update the stored data.
The method may comprise a first given client mobile device, i.e. forming a node of the direct mode network, storing data indicative of one or more, and preferably a plurality of messages of one or more type originating from other client mobile devices for submission to the server, and forming a local wireless connection to a second client mobile device (i.e. defining a node) of the direct mode network, wherein the second client mobile device also stores data indicative of one or more, and preferably a plurality of messages of one or more type originating from other client mobile devices for submision to the server.
The method may comprise each of the first client mobile device and the second client mobile device comparing its own stored data to corresponding data stored by the other client mobile device, and using the results of the comparison to update its own stored data. The comparison may be in relation to any or all of the stored data. Preferably each client mobile device compares stored data indicative of one or more, and preferably a plurality of messages, originating from other client mobile devices, for each message type stored, to corresponding data stored by the other device. For ease of reference, the embodiments will be described by reference to a pair of devices i.e. a first and second client mobile device that are locally connected to one another. However, the same steps may be performed by any pair of client mobile devices that have connected locally to one another. The first client mobile device may carry out the steps described with the or each second client mobile device to which it is connected.
The following discussion of the data that is stored by "the" client mobile device, is applicable to the, each or a client mobile device that stores data, and, in embodiments, the first and second client mobile device that are connected via a local wireless connection, may store data in accordance with any of the
embodiments described.
The data indicative of the messages stored by the or each client mobile device i.e. node is received from other client mobile devices i.e. nodes of the direct mode network with which the client mobile device has been able to form a local wireless connection.
The plurality of messages for submission to the server in respect of which data is stored, may comprise initial requests e.g. submission or POST requests and/or requests for content e.g. requests to obtain data e.g. GET requests originating from the other client devices. These may be referred to as different respective "types" of message for submission. In any of the embodiments described below, the "initial message" may be a submission message e.g. a POST request. The request for content may be a "GET request" or generally a request for data.
In some embodiments the or each client mobile device stores data indicative of one or more, and preferably a plurality of initial requests originating from other client mobile devices of the network for submission to the server, and data indicative of one or more, and preferably a plurality of requests for content originating from other client mobile devices of the network for submission to the server. In embodiments in which a first client mobile device and a second client mobile device compare stored data, preferably each of the first and second client mobile devices compare its own stored data indicative of one or more, and preferably a plurality of initial requests e.g. POST requests originating from other client mobile devices of the network for submission to the server and/or data indicative of one or more, and preferably a plurality of requests for content e.g. GET requests originating from other client mobile devices of the network for submission to the server, to corresponding data stored by the other device.
It will be appreciated that any data indicative of the relevant request may be stored. The data may or may not comprise the actual request. The data indicative of the initial request is preferably indicative of the unique identifier for the request. The data indicative of the request for content is preferably indicative of the content label for the requested content i.e. provided by the requesting client mobile device. The data indicative of the request for content may be or comprise the content label for the requested content. Thus, in some preferred embodiments the device stores data indicative of the respective unique identifiers associated with a plurality of requests originating from other client mobile devices of the network for submission to the server, and data indicative of the content labels associated with a plurality of respective requests for content submitted by other client mobile devices to the server. Thus a comparison of data indicative of requests for content may be a comparison of stored content labels.
Preferably the or each client mobile device stores data indicative of a status of each type of message in association with the data indicative of the message e.g. a delivery status. In preferred embodiments the status is indicative of whether or not the message has been confirmed as received by the server. In embodiments in which a first client mobile device and a second client mobile device compare stored data, preferably each of the first and second client mobile devices compares its own stored data indicative of a status of one or more, and preferably a plurality of initial e.g. POST requests originating from other client mobile devices of the network for submission to the server and/or data indicative a status of one or more, and preferably a plurality of requests for content e.g. GET requests originating from other client mobile devices of the network for submission to the server, to corresponding data stored by the other device.
Preferably the or each client mobile device maintains a separate list in respect of each type of message for submission to the server, and preferably in respect of each possible status for each message type. Thus, the client mobile device may maintain a list of data indicative of requests for content e.g. GET requests and a list of data indicative of initial requests for submission to the server e.g. POST requests. The possible status options for an initial request e.g. POST request may be confirmed as delivered to the server, and not confirmed as delivered. It will be appreciated that once the server receives a request for content, it will provide the content, and thus fulfilment of the request can be taken as indicative of its receipt by the server. The possible status options for requests for content e.g. GET requests may be fulfilled or unfulfilled. A fulfilled content request is preferably associated with the content fulfilling the request. Thus the device may store data indicative of a request for content to be fulfilled, which may comprise the content label for the request, and where the request is fulfilled, additionally is associated with data indicative of the content. Preferably the client device maintains, in respect of one or more type of message for submission to the server, a list of messages confirmed as delivered and a list of messages not confirmed as delivered to the server. In some preferred embodiments the client mobile device stores a list of initial requests e.g. POST requests submitted by client devices which have been confirmed as delivered to the server, a list of initial requests e.g. POST requests submitted by client devices which have not been confirmed as delivered to the server, a list of content labels associated with unfulfilled requests for content e.g. GET requests submitted by client devices, and a list of content labels associated with fulfilled requests for content e.g. GET requests submitted by client devices, preferably associated with the content.
In a particularly preferred embodiment in which a first client mobile device and a second client mobile device compare stored data that comprises lists in accordance with any of these embodiments, preferably each of the first and second client mobile devices compares each of its own stored lists, to the corresponding list or lists stored by the other device. In preferred embodiments the first and second client mobile device each store a list of initial requests e.g. POST requests submitted by client devices which have been confirmed as delivered to the server, a list or initial requests e.g. POST requests submitted by client devices which have not been confirmed as delivered to the server, and/or a list of content labels associated with requests for content e.g. GET requests submitted by client devices that are fulfilled and a list of content labels associated with requests for content e.g. GET requests submitted by client devices that are unfulfilled, and each device compares each of its own stored lists to the corresponding list stored by the other device.
The or each client mobile device may store data indicative of one or more, and preferably a plurality of, messages of one or more type originating from the server for propagation to other client mobile devices of the network. However, it will be seen that by storing fulfilled content requests, it may not be necessary to specifically store such data from the server, as the relevant data may propagate through the network as a "fulfilled" request for content. The communication between devices of the direct mode network may not consider the "direction" of requests. In other words, the server may introduce content into the network which will then propagate in the network, ultimately reaching devices that wish to have the content incidentally. Likewise, requests introduced by devices to the network may propagate until a device is able to connect to the server and transmit the requests thereto. Devices merely communicate messages with one another, and do not attempt to direct them in any specific manner. ln some embodiments data indicative of both messages originating from other client mobile devices for submission to the server, and data originating from the server for propagation in the direct mode network is stored. In embodiments in which a first client mobile device and a second client mobile device compare stored data, each of the first and second client mobile devices may compare its own stored data indicative of one or more, and preferably a plurality of, messages of one or more type originating from the server, to corresponding data stored by the other device.
The data indicative of the messages originating from the server stored by the or each client mobile device i.e. node is received from other client mobile devices i.e. nodes of the direct mode network with which the client mobile device has been able to form a local wireless connection.
The plurality of messages originating from the server may comprise content messages provided by the server to the direct mode network in response to requests for content from client mobile devices. Again this is a "type" of message originating from the server. The data may be indicative of the content and an associated content label for the content.
The client mobile device may store a list of messages of each type originating from the server for propagation in the network.
In embodiments in which first and second client mobile devices compare stored data, this step may be carried out at any time once a local wireless connection between the devices has been established. The step may be carried out initially once the connection has been established i.e. when a device connects to a new device, but may also be carried out periodically thereafter. The comparison may be carried out in any suitable manner, and may involve comparison of any portion of, or all of the data. The comparison may involve an exchange of any or all of the data, or a merging of data lists etc.
In embodiments the step of comparing the data may comprise each of the first and second devices identifying any data stored by the other device e.g. of a particular type, or on a particular list, that is not stored by the device itself, and adding the data to the stored data of the device. Alternatively or additionally the first and second devices may identify any data e.g. message stored by the other device that has a different status to corresponding data stored by the device itself, and, if the status indicated by the stored data of the other client device is newer than that indicated by the stored data of the device itself, updating the status of the data e.g. message stored by the device itself. Updating the status may involve moving a message to a different list.
It will be appreciated that by storing data in predetermined lists, the comparison of data by devices and any necessary updating may be facilitated.
In accordance with some preferred embodiments the method comprises; each of a plurality of client mobile devices of the direct mode network storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein, when a given pair of the devices connect to one another via a local wireless connection, each device compares its own stored list or lists of messages to the or each corresponding list stored by the other one of the pair of devices, and uses the results of the comparison to update its own list or lists.
It is believed that this method is advantageous in its own right.
In accordance with a further aspect of the invention there is provided;
a method of controlling the interaction between client mobile devices that define nodes of a direct mode network, wherein each of the client mobile devices is capable of forming a local wireless connection to one or more others of the client mobile devices for providing a connection between nodes of the network, and wherein one or more of the client mobile devices is also capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
the method comprising;
each of a plurality of client mobile devices of the direct mode network storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when a given pair of the devices connect to one another via a local wireless connection, each device compares its own stored list or lists of messages to the or each corresponding list stored by the other one of the pair of devices, and uses the results of the comparison to update its own list or lists.
In accordance with a further aspect of the invention there is provided;
a system for controlling the interaction between client mobile devices that define nodes of a direct mode network, wherein each of the client mobile devices is capable of forming a local wireless connection to one or more others of the client mobile devices for providing a connection between nodes of the network, and wherein one or more of the client mobile devices is also capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
wherein each of a plurality of client mobile devices of the direct mode network comprises means for storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when a given pair of the devices connect to one another via a local wireless connection, each device is arranged to compare its own stored list or lists of messages to the or each corresponding list stored by the other one of the pair of devices, and use the results of the comparison to update its own list or lists.
In accordance with a further aspect of the invention there is provided a method of operation of a client mobile device in a system in which the client mobile device is one of a plurality of client mobile devices that define nodes of a direct mode network, wherein the client mobile device is capable of forming a local wireless connection to one or more others of the client mobile devices that define other modes of the network when in proximity thereto for providing a connection between nodes of the network, and wherein the client mobile device is optionally is capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
the method comprising the client mobile device storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when the device connects to another one of the devices of the direct mode network via a local wireless connection, the device compares its own stored list or lists of messages to the or each corresponding list stored by the other device, and uses the results of the comparison to update its own list or lists.
In accordance with a further aspect of the invention there is provided a client mobile device for use in a system in which the client mobile device is one of a plurality of client mobile devices that define nodes of a direct mode network, wherein the client mobile devices is capable of forming a local wireless connection to one or more others of the client mobile devices that define other modes of the network when in proximity thereto for providing a connection between nodes of the network, and wherein the client mobile device is optionally is capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
wherein the client mobile device comprises means for storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when the device connects to another one of the devices of the direct mode network via a local wireless connection, the device is arranged to compare its own stored list or lists of messages to the or each corresponding list stored by the other device, and use the results of the comparison to update its own list or lists.
The present invention in accordance with these further aspects may include any or all of the features described in relation to the earlier aspects of the invention to the extent they are not mutually inconsistent. Thus the messages may be of the form described in relation to any of the earlier aspects or embodiments of the invention.
As in the earlier aspects or embodiments, at least some of the client mobile devices are capable of forming an infrastructure connection to the server. One or more, or a plurality, or each of the client mobile devices may be capable of this. The devices are able to form the local wireless connection to one another when in proximity to one another.
In accordance with the invention in these further aspects or embodiments, preferably at least one list is stored at least in respect of messages of the type that are submission messages e.g. POST requests. The messages may be indicative of the "initial" requests for submission to the server in accordance with any of the embodiments of the invention. Preferably a plurality of lists are stored in respect of different status requests. Preferably at least two such lists of messages of this type are stored, being respectively a list of the messages that have been confirmed as delivered to the server, and a list of messages that have not been confirmed as delivered to the server.
Preferably at least one list is stored in respect of messages of the type that are request messages e.g. requests for data or GET requests. The messages may be indicative of requests for content from the server in accordance with any of the embodiments of the invention. The messages may be in the form of content labels. Preferably a plurality of lists are stored in respect of different status requests. Preferably at least two such lists of messages of this type are stored, being respectively a list of the messages that have been fulfilled by the server, and a list of messages that have not been fulfilled by the server. Preferably each fulfilled request is associated with the content fulfilling the request.
In some embodiments, each of the plurality of client mobile devices may also store, or comprise means for storing, for each of one or more types of message originating from the server of the network for transmission to a client mobile device of the network, at least one list of such messages received by the device from one or more other client mobile devices of the network. The messages may be content messages. The messages may comprise content that is a response to a request made by a client mobile device and an associated content label. This may not be necessary where fulfilled status content requests are stored.
In any of the aspects or embodiments in which each device stores multiple lists, preferably each list is individually compared to the corresponding list of the or each other client mobile device.
In accordance with the invention in any of its aspects or embodiments, for each list, the step of comparing may comprise a client mobile device carrying out one or more of the following steps; identifying one or more message that is found on a list of the or each other client mobile device and not on its own list, and adding the message to one of its own lists, identifying a message that is found on a list of the or each other client mobile device and is found on a different one of its own lists, and moving the message to a new list corresponding to that on which it is found at the other device if that list is indicative of a newer status. For example, a message may be on the "unconfirmed" request list of a first device, but is on the "confirmed" list of the other device. The first device may then move the request to its own confirmed list.
It will be appreciated that as pairs of devices interact in this way, messages e.g. requests, will gradually propagate through the network. As the same message is transmitted to multiple other client mobile devices, it will be seen that the method provides epidemic dissemination of messages.
In accordance with the invention in any of its aspects or embodiments, when a client mobile device of the network having the ability to do so is able to form a connection to the server via the infrastructure, it preferably does so. Each client device may be controlled to periodically attempt to establish such a connection, or to do so at certain times e.g. when a new local connection with another device is formed etc. The method comprises the client device transmitting the or each message e.g. request stored by the client device for submission to the server when it is able to form a connection via the infrastructure therewith. For example, stored data indicative of initial requests and/or requests for content may be transmitted to the server by a client mobile device when a connection exists. The stored data indicative of a request for content may be a content label. The device may then receive an acknowledgement from the server. The method may comprise a device receiving an acknowledgement from the server that a message e.g. request has been received, and updating a status stored in respect of that message e.g. request to indicate that is confirmed as received. For example, the device may move the message e.g. request to a "confirmed list". In this way, when the device
subsequently forms a local connection to another device, this updated status will be passed on to that device, that can update its own list and so on, such that the update gradually propagates over the system.
Preferably the server stores data indicative of each message e.g. initial request, such as a submission or POST request, received from client mobile devices of the network in response to which it has generated a web resource for containing content and a content label. In preferred embodiments the method comprises the server storing data indicative of each received initial request e.g. submission or POST request, preferably in association with the unique identifier for the request. This may prevent the server acting on the same request twice. When the server receives a submission e.g. POST request from a client mobile device that has connected to the server via the infrastructure, it verifies whether it has already been acted upon i.e. whether it is stored in a confirmed list. If the request is not stored on the confirmed list, the server may carry out the steps of generating the web resource and the content label. The server may also store data indicative of requests for content e.g. GET Requests or at least content labels for which content has been provided to the direct mode network. When a client mobile device is able to connect to the server, it may compare its own stored data with that of the server, and update lists as appropriate. For example, the data from the server may enable a device to determine which initial or POST requests are fulfilled.
When a given client mobile device is able to connect to the server via the infrastructure, the client mobile device obtains content that is required in relation to the data indicative of each request for content that is stored by the client mobile device. In preferred embodiments the client mobile device stores a list of content labels in respect of which content has been requested by other client mobile devices of the network, and obtains the content in respect of the content labels from the server via the infrastructure. For example, the device may transmit a list of content labels for which content is required. The server may then provide content in respect of each content label, preferably being associated with the content label. The received content from the server may then be stored by the device and propagated through the network, preferably associated with the relevant content labels, as already described. The content may propagate through the network as a fulfilled content request. The client device may update a status of each request for content for which content is received to fulfilled. For example, the request may be transferred to a "fulfilled" content list.
It will be appreciated that the ability of the client mobile devices of the direct mode network to store data provides a direct mode network cache in which data obtained from the server is stored. The cache is a distributed cache. Each device is able to store content received from the server, either directly via the infrastructure connection, or received from other client devices via the network. Thus, certain content may be considered to be stored in the local direct network cache. When a device generates a request for content, it may be possible to provide the content from this cache, without recourse to the server. This may be particularly applicable to cases in which a request for content is associated with a content label that is not specific to a particular device or initial request. As described above, a request for content may be specific only to the content e.g. where it relates to commonly requested content. In these embodiments the method may comprise a client mobile device that has generated a content request for submission to the server forming a local connection to another client mobile device of the network, determining that the other device has a corresponding content request that is fulfilled i.e. comprising content associated with the same content label for which content is required, and obtaining the content fulfilling the request from the device. This may enable the content request to be satisfied more quickly where the content is already in the cache e.g. as a result of it having been requested by another device. In
embodiments in which the request for content is specific to a given client mobile device and a particular initial request, it will be appreciated that the content must be obtained from the server.
A client mobile device that generates a content request may store the content request until it receives the content either through an infrastructure connection to the server if available, or through propagation of the fulfilled content request through the network. A client mobile device that is able to act as a node of the direct mode network may be arranged to detect the presence of one or more other client mobile devices in proximity thereto which are capable of acting as nodes of the network with which it may form a local wireless connection. The client mobile device may then exchange data with the or each detected device as described above. Client mobile devices that are able to act as nodes of the direct mode network may be configured to be able to automatically detect one another when in proximity with one another to enable connections to the nodes to be made. This may be by the device periodically polling to try to detect other client mobile devices that can act as nodes of the direct mode network within a given range. The details of the detection process e.g. the range within which a device looks for other devices, and the frequency of polling etc, may be set as desired. This may be predetermined by the system controller, e.g. a venue service provider. It will be appreciated that even if a client mobile device is static for a time, as are those client mobile devices in the proximity thereto with which it can connect, the device should still interact with the devices in proximity thereto periodically to compare stored data, as those devices may have interacted with devices further away, which are within their connection range, and which may have communicated new data. The propagation of data in the direct mode network will gradually move outwardly from its source in this way.
It will be appreciated that each client mobile device of the system may be controlled to operate in accordance with any of the embodiments of the invention, at least in part, using suitable software. The software may provide the client mobile device with the ability to act as a node of a direct mode network. The software may control e.g. the way in which a client mobile device detects other client mobile devices that it may connect to, the exchange of data with other devices etc., and may comprise the content label generating means that enables devices to be able to independently generate the content labels that the server produces. The software may control any aspect of the operation of the devices that form part of the direct mode network, their interaction with one another, and with the server. The software may be stored locally by the or each client device. In some preferred embodiments each client mobile device runs a software "app" that controls operation of the client mobile device in the system. Users of devices who wish their device to be able to form part of a direct mode network may simply download the app. The app may be provided by a venue service provider or similar, to enable those attending events at the venue to be able to communicate with the server over the direct mode network. Of course, it is not necessary that the methods are implemented in this way. For example, functions may be implemented at least partially using an operating system of the devices.
As referred to herein, in any of the aspects or embodiments of the invention, the "initial" request is a request generated by a given client mobile device of the direct mode network and submitted to the server, in response to which the server automatically generates a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request. The request may be a submission type request. The request is preferably a POST request.
It will be appreciated that any desired security measures may be
implemented in the present invention. For example a request for content and/or an initial request may be suitably encrypted. In embodiments only a client device that generates a request for content is able to read the content associated with the fulfilled content request. Suitable encryption systems may be implemented by using shared encryption key material between the server and a device. In embodiments, one or more of a request for content, initial request and returned content may be encrypted. The encryption for a request, or content responsive to a request, may be achieved using encryption means known only to the client mobile device that made the request or requested the content and the server i.e. and not by the other devices. A content label, may, in contrast not be encrypted so that it may be read by other devices of the system during propagation through the direct mode network.
It will also be appreciated by those skilled in the art that all of the described aspects and embodiments of the present invention can, and preferably do, include, as appropriate, any one or more or all of the preferred and optional features described herein.
The present invention can be implemented in any suitable system, such as a suitably configured micro-processor based system. In a preferred embodiment, the present invention is implemented in a computer and/or micro-processor based system.
The various functions of the present invention can be carried out in any desired and suitable manner. For example, the functions of the present invention can be implemented in hardware or software, as desired. Thus, for example, the various functional elements and "means" of the invention may comprise a suitable processor or processors, controller or controllers, functional units, circuitry, processing logic, microprocessor arrangements, etc., that are operable to perform the various functions, etc., such as appropriately configured dedicated hardware elements or processing circuitry, and/or programmable hardware elements or processing circuitry that can be programmed to operate in the desired manner.
The methods in accordance with the present invention may be implemented at least partially using software e.g. computer programs, or "apps". It will thus be seen that when viewed from further aspects the present invention provides computer software, such as an app, specifically adapted to carry out the methods herein described when installed on data processing means, a computer program element comprising computer software code portions for performing the methods herein described when the program element is run on data processing means, and a computer program comprising code means adapted to perform all the steps of a method or of the methods herein described when the program is run on a data processing system.
It will thus be seen that when viewed from further aspects the present invention provides computer software, such as an app, specifically adapted to cause a mobile device and/or server to carry out its part in the methods herein described when installed on data processing means of the device and/or server; a computer program element comprising computer software code portions for causing a mobile device and/or server to perform its part in the methods herein described when the program element is run on data processing means of the device and/or server; and a computer program comprising code means adapted to cause a mobile device and/or server to perform its part in the steps of a method or of the methods herein described when the program is run on a data processing system of the device and/or server.
The invention also extends to a computer software carrier comprising such software which when used to operate a processor, system, server and/or mobile device causes the processor, system, server and/or mobile device to carry out the steps of the methods of the present invention. Such a computer software carrier could be a physical storage medium such as a ROM chip, RAM, flash memory, CD ROM or disk, or could be a signal such as an electronic signal over wires, an optical signal or a radio signal such as to a satellite or the like.
It will further be appreciated that not all steps of the methods of the invention need be carried out by computer software and thus from a further broad aspect the present invention provides computer software and such software installed on a computer software carrier for carrying out at least one of the steps of the methods set out herein. The present invention may accordingly suitably be embodied as a computer program product for use with a computer system. Such an implementation may comprise a series of computer readable instructions fixed on a tangible medium, such as a non transitory computer readable medium, for example, diskette, CD ROM, ROM, RAM, flash memory or hard disk. It could also comprise a series of computer readable instructions transmittable to a computer system, via a modem or other interface device, over either a tangible medium, including but not limited to optical or analogue communications lines, or intangibly using wireless techniques, including but not limited to microwave, infrared or other transmission techniques. The series of computer readable instructions embodies all or part of the functionality previously described herein.
Those skilled in the art will appreciate that such computer readable instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using any memory technology, present or future, including but not limited to, semiconductor, magnetic, or optical, or transmitted using any communications technology, present or future, including but not limited to optical, infrared, or microwave. It is contemplated that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation, for example, shrink wrapped software, pre loaded with a computer system, for example, on a system ROM or fixed disk, or distributed from a server or electronic bulletin board over a network, for example, the Internet or World Wide Web.
Some preferred embodiments of the invention will now be described by way of example only, and by reference to the accompanying drawings of which;
Figure 1 is a schematic view of a communications system in which methods of the present invention can be implemented;
Figure 2 illustrates an example protocol for handling requests and node exchange between client mobile devices of the direct mode network;
Figure 3 illustrates a suitable protocol for handling content exchange between client mobile devices of the direct mode network,
Figure 4 illustrates a suitable protocol for handling exchange between client mobile devices of the direct mode network and the venue cache server,
and Figure 5 illustrates user node states in a current implementation over Android client mobile devices. Figure 1 illustrates schematically the main components of a communications system for implementing methods of the present invention. The communications system 1 includes a server 3, which, in this example is referred to as a "venue cache server", and a plurality of client mobile devices 5, which are capable of acting as nodes of a direct mode network. The client mobile devices 5 therefore define a direct mode network 7. The client mobile devices 5, and hence the direct mode network 7, are located within a venue. The venue cache server 3 is a local server that serves the venue, and may be located at the venue. The client mobile devices 5 may be mobile phones, PDAs, laptops, tablet devices, or any other mobile devices that may be brought by users into the venue with the ability to connect directly to other mobile devices via a local wireless connection independently of the infrastructure and also to connect to the venue cache server 3 via the infrastructure when connectivity exists. The devices are devices that have installed a suitable software application to enable them to act as nodes of the direct mode network as described below.
Each client mobile device 5 is able to connect to the venue cache server 3 directly via an infrastructure connection. It is noted that it is not essential for all devices to be able to do this, as long as at least some are able to. This might be via a wireless access point 9 associated with the venue, or via the mobile phone network infrastructure e.g. via a base station 1 1 thereof, so as to provide e.g. a 3G or 4G connection. A first step in a connection from a client mobile device 5 to the venue cache server 3 via the infrastructure may be to a wireless access point of the venue infrastructure, or to a base station, which may be a local base station or e.g. a phone network base station. The infrastructure may include any components that are part of the infrastructure either locally at the venue, or part of a wider network infrastructure e.g. of a mobile phone or other telecommunications network service provider. The infrastructure may therefore include components that are provided by a venue service provider to provide a communications infrastructure local to the venue, or may include remote infrastructure outside the control of the venue e.g. associated with external providers.
The venue cache server 3 is in communication with an external information provider via an internet connection 13. Also shown in Figure 1 is a further client mobile device 15 which is not capable of acting as a node of the direct mode network 7. The client mobile device 15 is only able to connect to the server 3 via the infrastructure. The venue cache server 3 is a local server that is under the control of the venue service provider. It contains information that is anticipated to be likely to be requested by client mobile devices of users attending the venue, and information that the service providers wish to disseminate to attendees. The information may be pre-stored by server to reduce the amount of content that may need to be fetched from the global internet, reducing delays.
The venue may be a venue at which an event occurs, such as a stadium where a sporting event occurs, or a musical event or festival venue. The venue may be a building. Of course the present invention is applicable to other types of venue or location. By way of example, the invention will be illustrated by reference to the case in which the stadium is a football stadium at which a football match is held. The present invention is generally applicable in situations where a crowd of mobile device users exists, who wish to be able to access information from a server.
When a football match takes place in a stadium, there will be a high concentration of mobile devices present, being mobile devices associated with users who are attending the match. During the course of the match, many of the users will wish to try to connect to the internet via their mobile devices to try to obtain information e.g. about the match in progress, and other matches occurring at the same time, or perhaps relating to transport services for planning their route home. This will place significant demands upon the infrastructure that can be used by client mobile devices at the stadium to connect e.g. to a server to obtain information. The infrastructure may be associated with a mobile phone network provider e.g. base stations etc. and/or may include infrastructure local to the stadium e.g. wireless network access points etc. A significant number of users may wish to communicate with one another or with people who are not attending the event using their mobile devices increasing the load on mobile phone network services. There is a significant likelihood that a mobile device will not be able to make a connection via the infrastructure e.g. to a server, when desired, as the planned capacity of the infrastructure may be exceeded. This problem is compounded by the metal and concrete materials typically used in stadium construction which may tend to block the longer range communication signals needed by mobile devices to form connections via the infrastructure.
The Applicant has recognised that there is a need for improved methods to enable mobile device users to more reliably connect to a server e.g. for obtaining Internet content, in such situations. It has been recognised that by improving the ability for users to be able to reliably obtain a connection to a server in such situations, it is possible to provide users with improved information services. For example, a venue service provider may provide communications to attendees of events relating to transport, sale services, live updates, which may be based upon data obtained from external providers i.e. external to the venue. This provides the ability to offer value added experiences to users, enhancing their experience of events.
As seen in Figure 1 , the present invention makes use of a so-called "direct mode" network. A direct mode network is formed by mobile devices of users in proximity with one another at the venue i.e. attendees in the crowd (being the "client mobile devices" of Figure 1), forming direct connections to one another via their local wireless connection capabilities, e.g. Wi-Fi Direct or Bluetooth®, or similar capabilities when they are unable to connect to the server 3 via the infrastructure. The devices may then communicate directly with one another, independently of the infrastructure. In this way, if a client mobile device that wishes to send a message to the server 3 is unable to connect to the server via the infrastructure, it can instead send a message to one or more of the mobile devices in proximity thereto in the crowd.
Each mobile device that receives the message may store the message and attempt to connect to the server to forward it on via the infrastructure. If it is unable to do so, it will forward the message to one or more mobile devices of the direct mode network which it is able to connect to via a local wireless connection. In this way, messages may be passed on from one device to the next until a device is able to form a connection to the server to transmit the messages thereto via the infrastructure. Likewise, a message from the server may be transmitted by the server via the infrastructure to one of the client mobile devices when the device initiates a connection with the server, and may then propagate through the direct mode network from one device to the next. Ultimately it may reach a client mobile device that required the message. It will be appreciated that the direct mode network therefore enables the devices to communicate with the server without an end to end connection existing at all times. As well as being able to act as a conventional terminal node for communicating directly with the server via the infrastructure, each client mobile device 5 can also act as a router for messages within the direct mode network.
The arrows connecting the client mobile devices 5 of the direct mode network in Figure 1 are indicative of the way in which messages may be passed from one device to another until a device is able to form an infrastructure connection to the server 3. Figure 1 illustrates one situation in which a first client mobile device transmits a message to a second device that can then form a connection to the server 3 via the wireless access point 9 of the stadium infrastructure. The Figure also shows a second situation in which a message is transmitted from a first client mobile device to a second, and then a third client mobile device, before it is transmitted to the server 3 via a mobile phone base station 1 1.
Each client mobile device 5 shown within the indicated circle indicative of the direct mode network 7, is a device that is capable of acting as a node of the direct mode network.
The ability of a device to function in this way is governed by a software application that has been downloaded to the client device. This software may be made available via a venue service provider, to enable attendees to take advantage of the value added services on offer. This controls the client mobile device such that is it is able to detect other client mobile devices that are within a range of the device enabling a direct connection via the local wireless connectivity of the devices to be made, permitting direct transfer of data between the devices. The software also controls the way in which the device will interact with other devices, and when it will attempt a direct infrastructure connection to the server, to thereby control propagation of messages in the direct mode network as will be described later. The software application may also control the manner in which client mobile devices may attempt to "detect" one another when in proximity with each other e.g. how often this is carried out, how many devices a device will attempt to connect to, within what range etc.
Any client mobile device that has set up the software application to enable it to act as a node of a direct mode network, and which has enabled this functionality, may connect to other devices that can act as nodes of the network to provide a connection between nodes of the direct mode network. The client mobile device 15 shown in Figure 1 is not capable of acting as a node of the direct mode network.
It will be understood that the direct mode network whose nodes are defined by client mobile devices of attendees at the venue, will be, by definition a fluid concept. The nodes of the network will change as new client mobile devices enter or leave the venue, or disable or enable the relevant functionality. The connections between nodes will also change as devices move within the venue, such that they may come out of a local wireless connection range of one other client mobile device, and enter the local wireless connection range of another device and so on.
Communications between devices of the network occur opportunistically. The direct mode network shown in the example is of a type that may be referred to as a "Pocket Switched Network" or an "ad hoc mobile network". Thus, the connectivity between devices and the server via the infrastructure may be intermittent, while connections between devices within the direct mode network may frequently change.
One inherent issue with the direct mode network, is that there will inevitably some delay in the propagation of messages between a client mobile device and the server relative to that which would be encountered if an infrastructure connection were used. The magnitude of the delay is variable, and unknown, depending upon the extent to which a message needs to be forwarded between devices before reaching a device that can make an infrastructure connection to the server 3, and, in the reverse direction, how long it takes for a message provided by a server to filter back to a requesting device. It will be appreciated that messages will tend to propagate outwardly over time, as client mobile devices towards the edge of a cluster of devices already having the message interact with new devices towards the edge of the cluster. The present invention in its various aspects may address these issues, and provides methods that enable even "live" type or dynamic content to be more readily delivered over the direct mode network.
The interaction of a client mobile device 5 that is capable of defining a node of the direct mode network 7 in accordance with one preferred embodiment of the invention will now be described.
A client mobile device 5 generates an initial request for submission to the server. The request is a submission type message, providing data to the server, and is, in exemplary embodiments, an HTTP "POST" Request. The request may be a request to place a bet. The client mobile device 5 is also able to generate a unique identifier for the request. The unique identifier is based on a device identifier and a time-stamp.
The client mobile device 5 initially tries to transmit this request and its accompanying unique identifier to the server 2 via the infrastructure. If no connection is available, the device instead communicates the request and its associated identifier to one or more, and if possible, multiple other client mobile devices of the direct mode network that are within the local wireless communication range of the device. In this case, each client mobile device that receives the request will store the request and will initially attempt to connect to the server 3 via the infrastructure to transmit the request and identifier thereto. If it is unable to do so, it will forward a copy of the request and its identifier to one or more other client mobile devices 5 that it is able to connect to via a direct local wireless connection. The number of devices that it forwards the request and identifier to may be governed by the software application run by the devices. The manner in which a request may be forwarded between devices is discussed in more detail below. Eventually a client mobile device that has received the request and identifier via the direct mode network is able to connect to the server 3 and transmit the request and identifier thereto via the infrastructure.
The server 3 receives the request and its identifier. Rather than obtaining content that is a response to the request and transmitting it back to the requesting device, the server instead generates a web resource, that contains content that is the response to the request. The server 3 also uses content label generating means to generate a content label in the form of URL, identifying the web resource that contains the response to the request. The content label is generated based on the unique request identifier, and is therefore specific to the content, requesting device and particular request. The server is controlled to only action a given request once. This may be achieved by the server storing a list of actioned requests e.g. POST requests. If the same request reaches it subsequently via a different client mobile device of the direct mode network e.g. having propagated through a different path from the originating device, it will be disregarded.
If the client mobile device 5 wishes to obtain the content that is the response to the initial request, it needs to submit a further request for the server to be provided with the content. This request may be an HTTP GET Request. The client mobile device has the ability to generate independently the same content label that the server generated indicating the location of the response to the initial request. This is carried out using the unique identifier of the initial request. Thus the client device knows where the response is to be found without being informed of this by the server. The content label generating means may involve suitable algorithms. Each client mobile device is able to generate the same content label that a server will generate for locating content that it requests. The server and each client mobile device of the system thus each include content label generating means that is arranged to give the same output content label for the given inputs i.e. unique identifier etc. The content label generating means may be implemented by the software application run by the device.
The client mobile device 5 then transmits the request for content associated with the content label that it has generated to the server, via the infrastructure if a connection exists, or otherwise introduces the request and the content label to the direct mode network, as described in relation to the initial request. If the client mobile device introduces the request into the direct mode network, in embodiments just the content label may be propagated through the network until a client mobile device is able to connect via the infrastructure to the server and transmit the content label thereto e.g. as part of a "GET" request.
When the server 3 receives the request for content with its associated content label, it uses the content label to obtain the relevant content from the indicated web resource. The server transmits the content label now associated with the content back to a client mobile device of the direct mode network which has initiated a connection with the server via the infrastructure. It will be appreciated that the client mobile device will be a device that has initiated the connection with the server. The device may then provide data from the direct mode network e.g.
indicative of any initial requests i.e. POST requests to the server, and will receive any content for introduction to the network from the server. The device then propagates the content label with its content through the network. If and when it reaches the client mobile device that initiated the request for content, that device is able to recognise the content label as being based on the initial unique identifier for the initial request that it submitted, and thus recognises that the content is the requested content.
It will be appreciated that the server may not immediately be able to make content that is the response to a request available at the relevant web resource. For example, the content that is the response may not immediately be available, and the server may add content to the web resource as and when it is available. The client mobile device may then only follow up with a request for the content periodically or when the user "refreshes" etc. In other cases, e.g. when a user requests to place a bet, the server may straightaway provide content at the web resource confirming acceptance of the bet.
The way in which requests i.e. messages may be propagated in the direct mode network in accordance with preferred embodiments of the invention will now be described. It will be appreciated that at any time, numerous requests for a response and requests for content may be propagating in the direct mode network for communication to the server, emanating from different client mobile devices. Similarly, numerous fulfilled requests for content may be propagating in the network back to the requesting devices. The present invention provides methods for controlling the propagation of messages in the direct mode network to try to minimise latency, and increase the likelihood of successful delivery to a destination. When a client mobile device submits an initial request e.g. POST request, or a subsequent request for content e.g. GET Request via the direct mode network, if possible, it transmits the request directly via the local wireless network to multiple devices with which it can form a connection. These devices, if they cannot form a direct infrastructure connection to the server, will likewise transmit the request to multiple other client mobile devices with which they are able to form a connection via the direct mode. Similarly, when a client mobile device receives content from the server that is a response to a query, then it will transmit the content to multiple other client mobile devices via the direct mode. In this way, requests may propagate through multiple paths through the direct mode network between originating devices and the server, and content may propagate through multiple paths through the direct mode network to enable it to be obtained by client mobile devices. The present invention provides a way of propagating information as to the status of requests and content deliveries more readily through the network to reduce duplication of requests e.g. being submitted to the server.
There are various types of message that may be propagating in the direct mode network. The first are the initial requests originating from client mobile devices of the system. These will be referred to as "POST" requests. Each will be associated with its unique identifier. When a client mobile device successfully transmits a POST request to the server via an infrastructure connection, the device will receive an acknowledgement from the server. A POST request may have a status of "confirmed", if it has been delivered to and acknowledged by the server, or "unconfirmed", if it has not been confirmed as delivered.
Another type of message that may be propagating are "GET" requests for content and their associated content labels, originating from the client mobile devices. As mentioned above, these may be propagated as just the unique content labels, which are based on the unique identifiers for requests, and hence device identifiers. These requests for content may therefore be referred to as "content labels". A content label may have the status of "fulfilled" if it has been transmitted to the server and returned with associated content, or "unfulfilled" if it has not yet been transmitted to the server and returned with content.
Each client mobile device of the direct mode network stores a list of unconfirmed POST requests, a list of confirmed POST requests, and a list of content labels, indicating which are fulfilled and which are unfulfilled. The fulfilled and unfulfilled content labels may be on separate lists. The lists are based upon information received from other client mobile devices of the direct mode network. When a client mobile device connects to another client mobile device of the network via the direct mode local wireless connection, it will compare the content of these lists, and update them based on the other device's lists. For example, the device may find that the other device has a POST request i.e. with a given unique identifier, in its "confirmed" POST list, while the device itself had this stored in its
"unconfirmed" POST list. The device will then move this particular POST request to the confirmed list as this reflects a status update. The device may find that the other device has a POST request on its unconfirmed (or even confirmed) list that the device itself does not have on its list. The device will then add this to its
unconfirmed (or confirmed) POST list as appropriate. A similar process may be applied with the content label lists. The device will update any content labels that is had as "unfulfilled" with the appropriate content and designate them "fulfilled" if the other device has them as "fulfilled" with associated content in their list. Any unfulfilled content label, or indeed fulfilled content label, that was not on the device's lists will be added thereto.
When a client mobile device is able to connect to the server via the infrastructure, it will upload its lists of unconfirmed POST requests and any unfulfilled content labels to the server (e.g. using a GET request). When an acknowledgement of receipt of an unconfirmed POST request is received from the server, the device moves the unfulfilled POST request to the confirmed list. When content is received for a given content label, the content label is updated to the fulfilled status, and may be moved to a fulfilled content label list. The server may update its own lists of confirmed POST requests when it actions a POST Request, to avoid it actioning the same request subsequently if received from another device. When the device then makes connections to other client mobile devices of the direct mode network via the local wireless connections, these updates will be disseminated to those other devices as they update their lists and so on. In this way, epidemic propagation of messages is possible i.e. via multiple paths, but in a manner which may minimise duplication of requests and/or latency. By comparing the lists of requests etc. when they make connection to other devices of the direct mode network, any updates should propagate through the system quickly.
The server and each client mobile device may have unique shared key material. This may enable requests sent by client mobile devices, and content responsive thereto, to be suitably encrypted. It is envisaged that content associated with content labels propagating through the direct mode network may be encrypted such that it may only be read by the device that requested the content originally. Although the examples given are in relation to content labels that are specific to particular devices and requests, it is envisaged that more generic labels may also be used for requests that are common to multiple devices. In this situation, the content label may be specific to particular content, but not to a particular device or individual request for content. Once the server has received an initial request from one device, it may generate a web resource and accompanying generic content label that is specific only to the content that is the response to the request, but not to the requesting device or request. If any other client mobile device wishes to obtain the same content, it will be able to generate the same content label for requesting the content. Thus, multiple devices may submit the same content labels for requesting the particular content. The server need only generate the web resource and content label for the content for the first request. In this situation, it is likely that, when a client mobile device submits a request for the content with the relevant content label, the content may already be associated with the content label and propagating in the direct mode network. In this case, the client mobile device may be able to obtain the content associated with the content label from the direct mode network cache without needing to obtain it from the server.
The ability of the client mobile devices to store data, including returned content, provides a shared local cache, from which data may be obtained. For example, the content and content label pairings may be searchable in the cached data.
It is envisaged that content returned by the server in relation to a given request for content e.g. content label may be bundled with content responding to other requests that may be regarded as similar i.e. such that as the user requested the first content, they may well wish to have the second content too. This may help to reduce the number of requests in the system.
It is envisaged that the requests for a response generated by mobile devices may be initiated by a user, or may be automatically generated. For example, the software application run by a client device may be aware of a user's loyalty card number, and may generate a request for offers from the club based on their loyalty card. Thus, content may be "personalised".
The present invention may provide, in embodiments at least, a method that allows interactive digital services to be delivered over a direct mode network, to a desired level of security. The methods of disseminating messages over the direct mode network may provide strong guarantees of delivery and low latencies. Some specific examples of systems which may implement the concepts of certain preferred embodiments of the present invention will now be discussed. These examples are not intended to be limiting and the skilled person will understand that various alternatives may be utilised.
Conventionally, the HTTP definition makes no provision for dealing with
POST commands which are broken or reset after the request is received by the origin server but generate no response. When dealing with a disconnected direct mode network 7, a direct response to the POST request may not be forthcoming. The techniques of the present invention may address this problem.
When a client mobile device 5 of the direct mode network is temporarily disconnected from a direct connection to the server via the infrastructure, it is still able to submit a HTTP POST request back to the server 3. The client mobile device does this in the following manner.
Each POST Request submitted by the device has its own unique identifier. Uniqueness may be ensured by using a unique device identifier and time-stamp in producing the unique identifier. A time-stamp may also support identifier expiry over extended use. The unique identifier is included in the set of parameters encoded within the POST request and in the accompanying request headers. The POST parameters may also be encrypted within an encrypted JSON object. The unique identifier allows recognition and effective management of the POST request by the client mobile devices of the direct mode network. Thus, the unique identifier allows a specific POST request to be tracked throughout its movement through the direct mode network.
When it wishes to send a POST request, the client mobile device must first attempt an infrastructure connection to the server. If this is possible, the POST request executes in a normal HTTP connection, and the server can directly respond to the request. If there is no direct i.e. infrastructure connection available to the venue cache server, the client mobile device queues the POST request. The POST request is added to the device's unconfirmed POST list.
The unconfirmed POST list comprises a list of requests that have been made by any client mobile devices i.e. nodes of the direct mode network which have been communicated to the device, and includes the unique identifier header and the necessary entity bodies for each request. The unconfirmed POST list header is the list of unique identifiers on the list.
To facilitate understanding, when a POST request reaches the server, the server will decode the unique request identifier from the parameters of the request. The server has a record of all POST request identifiers for requests that have been actioned i.e. received by the server, with the necessary web resource and content label generated. This is the confirmed POST list. Thus, the server will only action the request once. However, the same request may be transmitted over the direct mode network via multiple paths to maximise its chances and speed of reaching the server.
The client mobile device will also store a confirmed POST list, which is a list of requests that are confirmed as being received and actioned by the server.
Figure 2 illustrates an example protocol for handling user requests and node exchange.
When the client mobile device connects with a neighbouring client mobile device via the local wireless connection within the direct-mode network the following exchange occurs: 1. Exchange the confirmed POST lists with each other. Merge the confirmed
POST lists and prune any entries from the unconfirmed POST lists as required.
2. Exchange unconfirmed POST list heads. Request unconfirmed POST list entries that are not currently on the unconfirmed POST list and add to unconfirmed POST list.
In this way, the client mobile device may transmit its own queued unconfirmed POST request to another device via the unconfirmed POST list.
When a connection to another cache, including the venue cache server, becomes available the request is forwarded. Responses to the request will be returned, possibly through a different path some time after the original request, as set out in the following.
When a client mobile device 5 wishes to obtain the content that is a response to a POST request, it may then send a GET request for the unique identifiers from queued POSTs.
Figure 3 illustrates a suitable protocol for handling content exchange between client mobile devices.
The client mobile device 5 sends a GET request to its asset cache for a particular asset. An asset may comprise content with an associated content label i.e. a fulfilled request for content, or simply the content label which indicates where the content can be found i.e. an unfulfilled request for content. If the asset is present in the cache then the asset is returned to the client mobile device and provided to the user. If the asset is not present in the client mobile device cache, then the asset is added to an asset request list. The content labels serve as the headers for the asset request list.
When the client mobile device connects with a neighbouring client mobile device within the direct-mode network, the asset heads i.e. content labels are exchanged. The client mobile device cache then identifies assets corresponding to new/updated content (i.e. that with a more recent last-modified date) and requests any new/updated assets. This content is then be added to the asset cache of the client mobile device. In this way, the device receives the content for fulfilled content requests from the other device e.g. content labels with associated content, and/or any new unfulfilled content requests e.g. content labels, and similarly transmits such assets that is may have, and which the other device does not have, to that device.
At the venue cache server, the unique identifier of a request may be decoded from the request parameters. The venue cache server therefore only processes a POST request once and rejects any subsequent repeat requests with the same identifier. The venue cache server will have recorded the POST request identifier in the confirmed POST list and thus both the request and the confirmation of its executions can follow multiple paths within the direct-mode network to and from the originating user but wherein the request is only actioned once.
The user is then provided with the content by requesting it from the client mobile device cache.
Figure 4 illustrates a suitable protocol for handling exchange between client mobile devices and the venue cache server.
When a client mobile device makes a connection to the venue cache server the following exchange occurs:
1. The client mobile device sends unconfirmed POST list entries to the venue cache server.
2. The venue cache server identifies unconfirmed POST list entries which have not been confirmed i.e. which are new to the server, and adds the entries to the confirmed POST list. 3. The POST responses are then returned to the client mobile device cache from the venue cache server. The client mobile device cache then adds to its confirmed POST list any unconfirmed POST list entries which the venue cache server has confirmed.
4. The client mobile device i.e. client mobile device cache then sends asset request heads to the venue cache server which identifies any new/updated assets.
5. If not present in the venue cache server, the venue cache server sends a GET Request to an external information service for the new/updated assets corresponding to the new/updated content requests and adds these assets to its cache.
6. The venue cache server then returns any assets in its cache to the client mobile device. The client mobile device updates its asset cache accordingly. It will be seen that all responses to a POST request are handled through a subsequent GET request, so no additional data is required during the exchange of POST requests. A client device must follow up a POST request with a GET request to obtain the content that is the response to the POST request.
This pairing of POST/GET will allow the pairing of two AJAX calls to confirm the POST request, with the GET polling being executed using the normal exponential back-off approach, as recommended in the HTTP specification.
It may be desirable to provide a status indication to the user for their POST messages, as interactions will be asynchronous and subject to variable delay. The user interface may reflect the state transitions arising from interactions with the server: submitted but not transmitted, in the network and pending, confirmed. Issuing a request should not block interactions with other aspects of the application, or other applications, while the request is serviced.
In order to allow the client mobile device to receive the content that is the response to a POST request, a content label e.g. URL is generated upon which the client mobile device can call GET, either via a direct infrastructure connection to the server or via the direct mode network. The server makes the content available at a web resource having a name and location identified by the content label. Each client device and the server is able to independently generate the same content label for use in obtaining the content that is the response to a particular POST Request i.e. having a particular unique identifier. The server and each device have
corresponding content label generating means that provides the same output label for the same inputs. The client device will result in the client device receiving a valid response when the response code is 20*.
For example, if the POST request has a unique identifier of x, then the content label i.e. URL may be constructed as: http://digital-stadium.net/clubName/response/x where clubName is representative of the venue. This content label can be called upon by a subsequent GET request. The response, including the content can be placed under the content label. As such, the assets exchanged within the direct- mode network may either be the content itself associated with the content label, or the content label, i.e. a pointer to where the content can be found.
The set of valid GET requests is restricted to those content labels i.e. URLs which are supported by the venue cache server. This set may be chosen by the venue cache server administrators. All GETs should be idempotent, preferably working over a uniform space that clearly delineates service usage. Ad-hoc GET requests which do not correspond to supported content labels will not be handled by the venue cache server and will result in a failure message until direct connection to an external information service, i.e. the internet, is available.
In a preferred embodiment, the user is provided with an app which is downloaded to their client mobile device. When the app is downloaded, the user connects to the venue server to register the app's unique id, download and install the current public key certificate of the origin server, and generate a shared secret key for the JSON encryption. At this point the user should preferably be walked through any other service authentication. It is envisioned that the app is a Twitter application and that other service authentication includes Twitter OAuth.
After setup therefore, the app and the server have unique shared key material. This should be used in encrypting entities to be sent containing any personal data, using a standard JSON format, e.g. with keys denoting the standard security protocols (AES etc), and the data encoded using standard UTF8 or ASCII.
A bundling protocol may be provided to allow simple pre-fetching and population of the user client mobile device cache. The client mobile device calls GET on specific content labels to receive the related content.
For example, GET may be called on the following content label: http://digitial-stadium.net/clubName/twitter/user/239434938 to receive the latest updates needed to populate user 17453's twitter feed. As further examples, the following content labels corresponding to may constitute the described services: http://digital-stadium.net/clubName/twitter - provide the default up to date bundle for users who are not logged-in; http://digitial-stadium.net/clubName/twitter/user/239434938 - provide the up to date bundle for the specified user (ID: 239434938), preferably utilising their Twitter OAuth credentials determined during the initial set-up of the app; http://digital-stadium.net/clubName/twitter/user/239434938/since/827387 - provide the time-line since tweet 827387.
Data in the cache may have a finite lifetime in order to achieve scalability. This can be handled by the usual methods, e.g. least recently used, least recently updated. On expiry a node may drop the associated data and asset list entry.
Further updates will not be obtained unless the venue cache server updates this data.
The venue cache server may have different policies for expiry and event- specific data-sets since the limited resources on phones may require more aggressive resource management. Data volume and asset list sizes in protocol exchanges will be less of an issue for the server than the mobile nodes. Parameters for cache expiry on user's phones may be subject to user preferences.
As described above, a request which has entered the direct-mode network will cause the application to make a GET request to the cache to retrieve the response. Ideally this will be handled asynchronously, without causing a time-out. In the event that a timeout occurs then an HTTP gateway timeout code (504) should be sent. This signal does not indicate a failure of the request. Caches should not exchange pending responses, but should exchange valid error codes from the end- point or internet that a user with a direct connection would experience.
The entities comprising the service may be stored within databases on various client mobile devices. It cannot necessarily be assumed that there will be no malevolent interference and integrity checks may advantageously be provided on the requested entities. A suitable choice might be the sine algorithm described by Gaspard et al in 2009 5th IEEE Workshop on Secure Network Protocols, where an entity is broken down into blocks, the blocks are chain hashed in reverse order (i.e. the hash is applied to the block concatenated with the hash of the succeeding block) and the initial block's hash is signed with the origin server's public key. The resulting entity check is encoded as an HTTP entity header.
By way of example, Figure 5 illustrates the node states of each client mobile device during the protocol over a current Android implementation of WiFi Direct, and other WiFi capable nodes. There is a web server acting as a repository for access point ids, and their associated WPA2 keys.
A node is designated APCapable when it can run its WiFi as an access point for other phones to connect. A node is designated in APMode when it is currently running as a WiFi access point. A node is designated legacy when it cannot run an access point, but is able to connect to an access point on another phone.
Upon starting the protocol, the APCapable node will upload its access point id, and its WPA2 key to the repository. All participating nodes will download the set of APCapable nodes' AP ids and keys when they have a direct connection to the Internet. All nodes will download the available infra-structure AP ids and keys.
APModePeriod is a timeout that starts at 120 seconds. APModeMultiplier is an integer drawn from [-4,4], starting at 0. LegacyPeriod is a timeout that starts at 60 seconds.
LegacyMultiplier is an integer drawn from [-2,2], starting at 0.
Android will always attempt to use a WiFi connection in preference to a 3G/4G connection, even if the WiFi connection has no gateway to the Internet. A node will therefore only attempt to connect to the direct-mode network on the following conditions:
1. The application is currently running in the foreground. When the application leaves the foreground, it must disconnect from the direct-mode network. 2. If the screen or audio device is being used and the application is not at the foreground, then the node must not connect to the direct-mode network.
3. If the screen is off and and the audio device is free, and the node is in the right spatial and temporal context to connect to the direct-mode network, then it should attempt to connect to the direct-mode network. When starting to connect to the network, the APCapable node will enter APMode for a period uniformly selected from:
2APModeMu«iplier χ [ApM od e pe riod 2χΑΡΜθ<_ΘΡΘΠΟ<_].
Upon exiting APMode, the APCapable node will scan for other visible participating access points. If there are no other access points, then it will increase APModeMultiplier by one (to the maximum of its range) and will return to APMode for a timeout drawn as above. If there are three or more participating access points visible, it will reduce APModeMultiplier by one.
If the node can make a connection to the Internet, it will do so.
It will then connect to an access point at random, for a period drawn from:
[LegacyModePeriod, 2 x LegacyModePeriod].
Upon termination of the connection to the access point, either due to a timeout or because the access point connection is lost due to change of mode or movement, the node will draw a new timeout from 2APModeMultiplier x [APModePeriod, 2xAPModePeriod] and start the cycle again.
Non-APCapable nodes will scan for available participating access points, and connect to a random access point for a period drawn from [LegacyModePeriod, 2 x LegacyModePeriod]. Upon termination of the connection to the access point, it will then attempt to make an Internet connection. It will then scan for access points, and start the cycle again.
In order to attempt to make an Internet connection, the node will check to see whether an infra-structure access point is available or if the 3G/4G connection is available. It will then connect and executed the direct-mode network cache exchanges that are possible.
The skilled person will understand that the invention described above is not limited to current generation android phones and that the above is presented merely as an illustrative embodiment. For example, implementations may also be provided for It will be appreciated that the systems and methods of the invention may be readily extended to other types of client mobile device, whether or not they are phones, and other operating systems. Similarly, other types of protocol may be used by devices to connect to other devices e.g. nodes, e.g. including any suitable polling or similar to detect nearby devices. It will be appreciated that rather than being implemented via a software app, the methods of the invention may be implemented at least partially in hardware, or using other software. For example, techniques may be implemented using operating systems of mobile devices.

Claims

Claims:
1. A method of operating a communications system comprising a server and a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the method comprising;
a given one of the client mobile devices generating a request and submitting the request to the server,
the server receiving the submitted request, and automatically generating a web resource for containing content that is a response to the request, wherein the server additionally generates a content label which may be used to identify the web resource for containing the content that is the response to the request.
2. The method of claim 1 further comprising the server making the content that is the response to the request available at the web resource and/or wherein the request is an HTTP POST request.
3 . The method of claim 1 or 2 wherein the request submitted to the server by the client mobile device is associated with a unique identifier, and the server generates the content label based upon the unique identifier, preferably wherein the unique identifier is based at least in part upon the identity of the client mobile device submitting the request.
4. The method of any preceding claim further comprising the client mobile device generating a request to be provided with the content that is the response to the initially submitted request, and submitting the request for content to the server, preferably wherein the request for content is an HTTP GET request.
5. The method of claim 4 wherein the client mobile device is able to independently generate the content label generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and wherein the client mobile device submits the content label in association with the request for the content.
6. The method of claim 4 or 5 further comprising the server transmitting the content associated with the content label to a client mobile device of the direct mode network, other than the client mobile device that generated the request for content, and to which a connection is available over the infrastructure, for propagation in the direct mode network, preferably wherein the connection over the infrastructure is initiated by the other mobile client device.
7. The method of claim 6 wherein the client mobile device that receives the content and content label from the server transmits the content and content label to a plurality other client mobile devices of the direct mode network for propagation through the direct mode network via a plurality of paths.
8. The method of claim 6 or 7 wherein the content is encrypted using encryption means known to the server and the client mobile device that requested the content and not to the other client mobile devices of the system.
9. The method of any preceding claim wherein one or both of the initial request and the request for the content submitted by the or each client mobile device are submitted to the server via the direct mode network.
10. The method of any preceding claim wherein the client mobile device is capable of connecting to the server via the infrastructure, and is arranged to attempt to connect to the server via the infrastructure for submitting the initial request and/or the request for content to the server, and, if the client mobile device is unable to connect to the server via the infrastructure, to submit the initial request and/or the request for content to the server via the direct mode network.
11. The method of claim 9 or 10 wherein the or each request transmitted by the client mobile device is transmitted to a plurality other client mobile devices of the direct mode network for propagation through the direct mode network via a plurality of paths.
12. The method of claim 1 1 wherein each client mobile device that receives the or each request from the originating client mobile device attempts to transmit the request to the server via the infrastructure, and, if a connection is not available, transmits the request to one or more other client mobile devices of the direct mode network to which it is able to connect via a local wireless connection.
13. The method of any preceding claim wherein each client mobile device of the direct mode network stores data indicative of a list of initial requests, for example HTTP POST requests, received from other client mobile devices of the network for delivery to the server, preferably comprising a list of initial requests, for example HTTP POST requests, received from other client mobile devices of the network for delivery to the server that are confirmed as delivered to the server, and a list of such requests that are unconfirmed as delivered to the server;
and/or data indicative of a list of requests for content, for example HTTP GET requests, received from other client mobile devices of the network, preferably comprising a list of requests for content, for example HTTP GET requests, received from other client mobile devices of the network that are fulfilled, being associated with the requested content, and a list of requests for content, for example HTTP GET requests, received from other client mobile devices of the network that are unfulfilled.
14. The method of any preceding claim comprising a first given client mobile device forming a node of the direct mode network storing data indicative of one or more, and preferably a plurality of messages of one or more type originating from other client mobile devices for submission to the server, and forming a local wireless connection to a second client mobile device defining a node of the direct mode network, wherein the second client mobile device also stores data indicative of one or more, and preferably a plurality of messages of one or more type originating from other client mobile devices for submission to the server, the method comprising each of the first client mobile device and the second client mobile device comparing its own stored data to corresponding data stored by the other client mobile device, and using the results of the comparison to update its own stored data.
15. The method of claim 14 wherein the messages in respect of which the first and second devices store data comprise initial requests, for example HTTP POST requests, and requests for content, for example HTTP GET requests, originating from the other client mobile devices.
16. The method of claim 14 or 15 wherein the first and second client mobile device each store a list of initial requests, for example HTTP POST requests, submitted by client devices which have been confirmed as delivered to the server, a list of initial requests, for example HTTP POST requests, submitted by client devices which have not been confirmed as delivered to the server;
and/or data indicative of a list of requests for content, for example HTTP GET requests, and preferably a list of content labels associated with the requests for content, submitted by client devices that are fulfilled, being associated with the requested content, and a list of requests for content, for example HTTP GET requests, and preferably a list of content labels associated with requests for content submitted by client devices, that are unfulfilled;
wherein each device compares each of its own stored lists to the
corresponding list stored by the other device.
17. A communications system comprising a server and a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the system comprising;
a given one of the client mobile devices comprising means for generating a request and submitting the request to the server, preferably wherein the request is an HTTP POST request,
the server comprising means for receiving the submitted request, and means for automatically generating a web resource for containing content that is a response to the request, and means for generating a content label which may be used to identify the web resource for containing the content that is the response to the request.
18 . The system of claim 17 wherein the request generated by the client mobile device is associated with a unique identifier, and the server is arranged to generate the content label based upon the unique identifier, preferably wherein the unique identifier is based at least in part upon the identity of the client mobile device submitting the request.
19. The system of claim 17 or 18 wherein the client mobile device is arranged to generate a request to be provided with the content that is the response to the initially submitted request, and to submit the request for content to the server, preferably wherein the request for content is an HTTP GET request.
20. The system of any one of claims 17 to 19 wherein the client mobile device is arranged to independently generate the content label generated by the server for identifying the web resource comprising the content providing the initial request by the client mobile device, and wherein the client mobile device is arranged to submit the content label in association with the request for the content.
21. The method or system of any preceding claim wherein the content label is a URL.
22. A method of operating a server of a communications system, wherein the communications system further comprises a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the method comprising the server;
receiving a request generated by a given one of the client mobile devices and submitted to the server,
automatically generating a web resource for containing the content that is a response to the request,
and generating a content label which may be used to identify the web resource for containing the content that is the response to the request.
23. A server for operation in a communications system, wherein the communications system further comprises a direct mode network, the nodes of the direct mode network being defined by respective ones of a plurality of client mobile devices, wherein one or more of the plurality of client mobile devices is capable of forming a connection to the server via an infrastructure, and wherein each of the plurality of client mobile devices is capable of forming a local wireless connection to one or more of the other ones of the plurality of client mobile devices independently of the infrastructure to provide a connection between nodes of the direct mode network,
the server comprising means for carrying out a method comprising the following steps;
receiving a request generated by a given one of the client mobile devices and submitted to the server,
automatically generating a web resource for containing the content that is a response to the request,
and generating a content label which may be used to identify the web resource for containing the content that is the response to the request.
24. A method of operating a client mobile device in a communications system,
wherein the client mobile device acts as a node of a direct mode network, wherein the client mobile device is preferably capable of forming a connection to a server of the system via an infrastructure, and wherein the client mobile device is capable of forming a local wireless connection to one or more of the other ones of a plurality of client mobile devices that define other nodes of the direct mode network independently of the infrastructure to provide a connection between nodes of the direct mode network,
the method comprising;
the client mobile device generating a request and submitting the request to the server via the direct mode network, or where the client mobile device is capable of forming an infrastructure connection to the server, via the direct mode network or an infrastructure connection, preferably wherein the request is an HTTP POST request.
25. The method of operating the client mobile device of claim 24 further comprising the client mobile device generating a request to be provided with the content that is the response to the initially submitted request, and submitting the request for content to the server, preferably wherein the request for content is an HTTP GET request.
26. The method of claim 25 wherein, when the initial request submitted by the client mobile device is received by the server, the server automatically generates a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request, wherein the method comprising the client mobile device independently generating the content label that is generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and submitting the content label in association with the request for the content.
27. A client mobile device for use in a communications system in which the client mobile device acts as a node of a direct mode network, wherein the client mobile device is optionally capable of forming a connection to a server of the system via an infrastructure, and wherein the client mobile device is capable of forming a local wireless connection to one or more of the other ones of a plurality of client mobile devices that define other nodes of the direct mode network independently of the infrastructure to provide a connection between nodes of the direct mode network,
the client mobile device comprising circuitry and/or software code portions for performing a method comprising the steps of;
generating a request and submitting the request to the server via the direct mode network, or where the client mobile device is capable of forming an infrastructure connection to the server, via the direct mode network or an infrastructure connection, preferably wherein the request is an HTTP POST request.
28. The client mobile device of claim 27 further comprising circuitry and/or software code portions for performing the steps of generating a request to be provided with the content that is the response to the initially submitted request for a response, and submitting the request for content to the server, preferably wherein the request for content is an HTTP GET request.
29. The client mobile device of claim 27 or 28, when the initial request submitted by the client mobile device is received by the server, the server automatically generating a web resource for containing the content that is a response to the request, and a content label which may be used to identify the web resource for containing the content that is the response to the request, wherein the client mobile device comprises circuitry and/or software code portions for independently generating the content label that is generated by the server for identifying the web resource comprising the content providing the response to the request by the client mobile device, and submitting the content label in association with the request for the content.
30. A method of controlling the interaction between client mobile devices that define nodes of a direct mode network, wherein each of the client mobile devices is capable of forming a local wireless connection to one or more others of the client mobile devices when in proximity thereto for providing a connection between nodes of the network, and wherein one or more client mobile device is also capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
the method comprising;
each of a plurality of client mobile devices of the direct mode network storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when a given pair of the devices connect to one another via a local wireless connection, each device compares its own stored list or lists of messages to the or each corresponding list stored by the other one of the pair of devices, and uses the results of the comparison to update its own list or lists.
31. The method of claim 30 wherein the messages include messages requesting content from the server.
32. The method of claim 30 or 31 comprising each device storing data indicative of the status of each message, and comparing the data indicative of the status of the messages.
33. A system for controlling the interaction between client mobile devices that define nodes of a direct mode network, wherein each of the client mobile devices is capable of forming a local wireless connection to one or more others of the client mobile devices when in proximity thereto for providing a connection between nodes of the network, and wherein one or more client mobile device is capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
wherein each of a plurality of client mobile devices of the direct mode network comprises means for storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when a given pair of the devices connect to one another via a local wireless connection, each device is arranged to compare its own stored list or lists of messages to the or each corresponding list stored by the other one of the pair of devices, and use the results of the comparison to update its own list or lists.
34. A method of operation of a client mobile device in a system in which the client mobile device is one of a plurality of client mobile devices that define nodes of a direct mode network, wherein the client mobile device is capable of forming a local wireless connection to one or more others of the client mobile devices that define other modes of the network when in proximity thereto for providing a connection between nodes of the network, and wherein the client mobile device is optionally is capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
the method comprising the client mobile device storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when the device connects to another one of the devices of the direct mode network via a local wireless connection, the device compares its own stored list or lists of messages to the or each corresponding list stored by the other device, and uses the results of the comparison to update its own list or lists.
35. A client mobile device for use in a system in which the client mobile device is one of a plurality of client mobile devices that define nodes of a direct mode network, wherein the client mobile devices is capable of forming a local wireless connection to one or more others of the client mobile devices that define other modes of the network when in proximity thereto for providing a connection between nodes of the network, and wherein the client mobile device is optionally is capable of connecting to a server independently of the direct mode network via an infrastructure when a connection is available,
wherein the client mobile device comprises means for storing, for each of one or more types of message originating from other client mobile devices of the network for submission to the server, at least one list of such messages received by the device from one or more other client mobile devices of the network,
wherein when the device connects to another one of the devices of the direct mode network via a local wireless connection, the device is arranged to compare its own stored list or lists of messages to the or each corresponding list stored by the other device, and use the results of the comparison to update its own list or lists.
36. The method or system of any preceding claim wherein the local wireless connections between the client mobile devices of the direct mode network are WiFi or Bluetooth® connections.
37. The method or system of any preceding claim wherein each client mobile device of the direct mode network, and preferably the server, is located in a venue.
38. The method or system of any preceding claim wherein the infrastructure comprises a mobile telecommunications network and/or wireless network infrastructure.
39. The method or system of any preceding claim wherein the client mobile devices are devices that may be carried or worn by a user, and are preferably selected from mobile phones, tablet devices, PDAs and laptops.
40. A computer program element comprising computer software code portions for performing the method of any one of claims 1-16, 21 , 22, 24-26, 30-32, 34 or 36-39 when the program element is run on data processing means.
41. A computer program element comprising computer software code portions for causing a server to perform its part in the method of any one of claims 1 - 16, 21 , 22, 24-26, 30-32, 34 or 36-39 when the program element is run on data processing means of the server.
42. A computer program element comprising computer software code portions for causing a client mobile device to perform its part in the method of any one of claims 1-16, 21 , 22, 24-26, 30-32, 34 or 36-39 when the program element is run on data processing means of the device.
43. A computer program comprising code means adapted to perform the steps of a method in accordance with any one of claims 1-16, 21 , 22, 24-26, 30-32, 34 or 36-39 when the program is run on a data processing system.
44. A method, system, client mobile device or server substantially as described herein and with reference to any one of the accompanying drawings.
PCT/GB2014/050791 2013-03-15 2014-03-14 Communications systems and methods WO2014140613A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB201304830A GB201304830D0 (en) 2013-03-15 2013-03-15 Communications systems and methods
GB1304830.1 2013-03-15

Publications (2)

Publication Number Publication Date
WO2014140613A2 true WO2014140613A2 (en) 2014-09-18
WO2014140613A3 WO2014140613A3 (en) 2014-11-06

Family

ID=48226524

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2014/050791 WO2014140613A2 (en) 2013-03-15 2014-03-14 Communications systems and methods

Country Status (2)

Country Link
GB (1) GB201304830D0 (en)
WO (1) WO2014140613A2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090054058A1 (en) * 2007-08-23 2009-02-26 Sony Ericsson Mobile Communications Ab System and method for short range sharing of bandwidth between electronic equipment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090054058A1 (en) * 2007-08-23 2009-02-26 Sony Ericsson Mobile Communications Ab System and method for short range sharing of bandwidth between electronic equipment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CANO J-C ET AL: "UBIQMUSEUM: A BLUETOOTH AND JAVA BASED CONTEXT-AWARE SYSTEM FOR UBIQUITOUS COMPUTING", WIRELESS PERSONAL COMMUNICATIONS, vol. 38, July 2006 (2006-07), pages 187-202, XP001502802, ISSN: 0929-6212, DOI: 10.1007/S11277-005-9001-X *

Also Published As

Publication number Publication date
WO2014140613A3 (en) 2014-11-06
GB201304830D0 (en) 2013-05-01

Similar Documents

Publication Publication Date Title
US11765150B2 (en) End-to-end M2M service layer sessions
JP6803779B2 (en) Service tier resource propagation across domains
US11641621B2 (en) Cloud-based provisioning using peer devices
EP3100471A1 (en) Context-aware and proximity-aware service layer connectivity management
US20160277970A1 (en) Mediated dynamic allocation of loads
CN105873055B (en) Wireless network access authentication method and device
US20170070841A1 (en) App distribution over the air
EP3447996A1 (en) Resource subscription method, resource subscription device, and resource subscription system
CN109996229B (en) Data transmission method and device based on DHT network, electronic equipment and storage medium
CN113572864B (en) Data processing method, network element equipment and readable storage medium
WO2017128713A1 (en) Method and device for publishing subscription message
JP2020534605A (en) Service layer message template in communication network
US20220050726A1 (en) Advanced resource link binding management
US12001853B2 (en) Device bootstrapping
CN111937013B (en) Electronic device management
US20200366718A1 (en) Security information exchange between a client and a server
WO2014140613A2 (en) Communications systems and methods
WO2016074455A1 (en) Group resource update processing method, device and system, and cse
JP6665697B2 (en) Past information providing program, past information providing method, and past information providing device
WO2018010366A1 (en) Information synchronization method and device
WO2016090933A1 (en) Method and device for creating application notification resource
JP6133803B2 (en) Data transfer system, home subscriber server and data transfer method
CN115460562A (en) Secure and trusted peer-to-peer offline communication system and method
JP2017084297A (en) Authentication method and authentication system

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: 14711585

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 14711585

Country of ref document: EP

Kind code of ref document: A2