Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DISTRIBUTION OF DATA ITEMS
Document Type and Number:
WIPO Patent Application WO/2017/138960
Kind Code:
A1
Abstract:
Examples disclosed herein relate to distribution of data items. Some examples disclosed herein may enable intercepting a data item generated by a mobile application of a particular client computing device. A plurality of client computing devices including the particular client computing device may be located in a pre-defined area. Some examples further enable distributing the data item to the plurality of client computing devices.

Inventors:
TOFTS CHRIS (GB)
BALLARD GLENN (GB)
Application Number:
PCT/US2016/017853
Publication Date:
August 17, 2017
Filing Date:
February 12, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD ENTPR DEV LP (US)
TOFTS CHRIS (GB)
BALLARD GLENN (GB)
International Classes:
H04L29/08; H04L29/06
Foreign References:
US20060161625A12006-07-20
US20120317228A12012-12-13
US20140274145A12014-09-18
US7013322B22006-03-14
US8059580B22011-11-15
Attorney, Agent or Firm:
LEE, Rachel, Jeong-Eun et al. (US)
Download PDF:
Claims:
CLAIMS

1 . A method for distributing data items, the method comprising:

intercepting a first data item generated by a first mobile application of a first client computing device, wherein a plurality of client computing devices including the first client computing device are located in a pre-defined area; distributing the first data item to the plurality of client computing devices; and

forwarding the first data item to a first server computing device that communicates with the first mobile application.

2. The method of claim 1 , comprising:

intercepting the first data item by a networking device that connects the plurality of client computing devices to a network;

storing the first data item in an intercepting cache of the networking device; and

distributing the first data item to the plurality of client computing devices.

3. The method of claim 1 , wherein the pre-defined area refers to a geographical area or a building.

4. The method of claim 1 , comprising:

intercepting a second data item generated by a second mobile application of the first client computing device;

distributing the second data item to the plurality of client computing devices; and

forwarding the second data item to a second server computing device that communicates with the second mobile application.

5. The method of claim 4, comprising:

sorting the first and second data items in a particular order; and forwarding the first and second data items in the particular order, wherein the first data item is forwarded to the first server computing device, and the second data item is forwarded to the second server computing device.

6. The method of claim 1 , comprising:

receiving, from the first server computing device, a second data item; and distributing the second data item to the plurality of client computing devices.

7. A non-transitory machine-readable storage medium comprising instructions executable by a processor of a computing device for distributing data items, the non-transitory machine-readable storage medium comprising: instructions to send, from a first client computing device of a plurality of client computing devices that are located in a pre-defined area, a first data item generated by a first mobile application that runs on the first client computing device to a networking device that connects the plurality of client computing devices to a network, wherein the first data item is intercepted by the networking device;

instructions to receive, by a second client computing device of the plurality of client computing devices, the first data item from the networking device; and

instructions to update the first mobile application that runs on the second client computing device with the first data item.

8. The non-transitory machine-readable storage medium of claim 7, wherein a designated mobile application that is designated for use within the pre-defined area allows access to the first mobile application via the designated mobile application, comprising:

instructions to prevent a user of the first client computing device from accessing the first mobile application if the designated mobile application is not used to access the first mobile application.

9. The non-transitory machine-readable storage medium of claim 8, comprising:

instructions to change a creator of the first data item if the designated mobile application is used to access the first mobile application.

10. The non-transitory machine-readable storage medium of claim 7, comprising:

instructions to receive, by the first client computing device, a second data item sent from a server computing device associated with the first mobile application; and

instructions to update the first mobile application that runs on the first client computing device with the second data item.

1 1 . The non-transitory machine-readable storage medium of claim 7, comprising:

instructions to send, from the second client computing device, a second data item generated by a second mobile application that runs on the second client computing device to the networking device, wherein the second data item is intercepted by the networking device;

instructions to receive, by the first client computing device, the second data item from the networking device; and

instructions to update the second mobile application that runs on the first client computing device with the second data item.

12. A system for distributing data items comprising:

a networking device that connects a plurality of client computing devices to a network, the networking device that:

intercepts a first data item generated by a mobile application of a first client computing device in the plurality of client computing devices that are located in a pre-defined area; intercepts a second data item generated by the mobile application of a second client computing device in the plurality of client computing devices;

stores, in an intercepting cache of the networking device, the first and second data items; and

distributes the first and second data items to the plurality of client computing devices.

13. The system of claim 12, the networking device that:

sorts the first and second data items in a particular order based on at least one of: content of the first and second data items, and information related to creators of the first and second data items; and

forwards the first and second data items to a server computing device for the mobile application in the particular order.

14. The system of claim 13, the networking device that:

receives, from the server computing device, a third data item; and distributes the third data item to the plurality of client computing devices.

15. The system of claim 12, wherein the mobile application is a non-browser application.

Description:
DISTRIBUTION OF DATA ITEMS

BACKGROUND

[0001 ] Mobile computing devices such as smartphones and tablet PCs have become a popular means for people to connect to the Internet. This is in part fueled by social networks and mobile software applications. As long as mobile broadband (e.g., network access via cellular telephone tower and/or satellite link) and/or Wi-Fi connection can be established, mobile device users may receive and/or respond to instant messages, social media posts, and play online games wherever the users are.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] The following detailed description references the drawings, wherein:

[0003] FIG. 1 is a block diagram depicting an example system for distributing data items.

[0004] FIG. 2 is a block diagram depicting an example system for distributing data items.

[0005] FIG. 3 is a block diagram depicting an example machine-readable storage medium comprising instructions executable by a processor for distributing data items.

[0006] FIG. 4 is a block diagram depicting an example machine-readable storage medium comprising instructions executable by a processor for distributing data items.

[0007] FIG. 5 is a flow diagram depicting an example method for distributing data items.

[0008] FIG. 6 is a flow diagram depicting an example method for distributing data items. DETAILED DESCRIPTION

[0009] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only. While several examples are described in this document, modifications, adaptations, and other implementations are possible. Accordingly, the following detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples may be defined by the appended claims.

[0010] Mobile computing devices such as smartphones and tablet PCs have become a popular means for people to connect to the Internet. This is in part fueled by social networks and mobile software applications. As long as mobile broadband (e.g., network access via cellular telephone tower and/or satellite link) and/or Wi-Fi connection can be established, mobile device users may receive and send instant messages and social media posts, and play online games wherever the users are.

[001 1 ] In some instances, mobile computing devices may be located in a predefined area such as a stadium during a sporting event. A "pre-defined area," as used herein, may refer to a particular geographical area that is defined by a physical geographical boundary and/or a particular building (e.g., a stadium, a concert hall, etc.). During such mass attendance events, the local wireless network's connection to the Internet is often overloaded with data traffic produced by a large number of mobile computing devices. For example, too many users trying to simultaneously upload posts on social media can cause network congestion, resulting in reduced quality of service (e.g., queueing delay, packet loss, blocking of new connections, etc.). Traditional HTTP caches may be used to help reduce bandwidth usage and perceived lag. However, HTTP caches fail to effectively capture outbound traffic and fail to work with non-browser applications such as a mobile application. A "mobile application" (also known as a "mobile app"), as used herein, may refer to a software program designed to run primarily on mobile computing devices such as smartphones and tablet computers. [0012] Examples disclosed herein provide technical solutions to these technical challenges by providing a technique to distribute data items via a networking device that comprises an intercepting cache. A "networking device," as used herein, may refer to any gateway router or combination of routers that forwards data items or data packets between networks.

[0013] The network device may intercept outbound data items generated by a mobile application of a plurality of client computing devices (e.g., smartphones) using the intercepting cache. The plurality of client computing devices are located in a pre-defined area. The intercepted data items may be distributed back to the plurality of client computing devices in the pre-defined area. At the same time, those data items can be sorted and forwarded to a server computing device for the mobile application in the sorted order. In this way, the data items can be prioritized before being forwarded to avoid network congestion while the intercepted data items can be updated or otherwise available on the mobile application of the plurality of client computing devices.

[0014] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. The term "plurality," as used herein, is defined as two or more than two. The term "another," as used herein, is defined as at least a second or more. The term "coupled," as used herein, is defined as connected, whether directly without any intervening elements or indirectly with at least one intervening elements, unless otherwise indicated. Two elements can be coupled mechanically, electrically, or communicatively linked through a communication channel, pathway, network, or system. The term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will also be understood that, although the terms first, second, third, etc. may be used herein to describe various elements, these elements should not be limited by these terms, as these terms are only used to distinguish one element from another unless stated otherwise or the context indicates otherwise. As used herein, the term "includes" means includes but not limited to, the term "including" means including but not limited to. The term "based on" means based at least in part on.

[0015] FIG. 1 is a block diagram depicting an example system 100 for distributing data items.

[0016] The various components may include client computing devices 130 (illustrated as 130A, 130B, ..., 130N) and server computing devices 140 (illustrated as server computing device 140A, 140B, ..., 140N). Each client computing device 130A, 130B, ..., 130N may communicate requests to and/or receive responses from server computing devices 140. Server computing devices 140 may receive and/or respond to requests from client computing devices 130. Client computing devices 130 may include any type of computing device providing a user interface through which a user can interact with a software application. For example, client computing devices 130 may include a laptop computing device, a desktop computing device, an all-in-one computing device, a thin client, a workstation, a tablet computing device, a mobile phone (e.g., smartphone), an electronic book reader, a network-enabled appliance such as a "Smart" television, and/or other electronic device suitable for execution of the functionality described below. While server computing device 140 is depicted as a single computing device, server computing device 140 may include any number of integrated or distributed computing devices.

[0017] Network device 120 may comprise any gateway router or combination of routers that forwards data items or data packets between networks. Referring to FIG. 1 , network device 120 may be responsible for handling data items from a local network (e.g., a PAN (Personal Area Network), a LAN (Local Area Network), a wireless PAN (WPAN), a wireless LAN (WLAN), etc.) that covers a pre-defined area 139 in which client computing devices 130 are located and/or responsible for forwarding the data items to server computing devices 140 via a network 50 (e.g., the Internet, an intranet, a WAN (Wide Area Network), a MAN (Metropolitan Area Network), a cellular communications network, etc.). Network device 120 may comprise an intercepting cache 129 may store data items that have been intercepted by network device 120. [0018] According to various implementations, system 100 and the various components described herein may be implemented in hardware and/or programming that configures hardware. Furthermore, in FIG. 1 and other Figures described herein, different numbers of components or entities than depicted may be used.

[0019] As detailed below, network device 120 may comprise an intercept engine 121 , a distribute engine 122, a forward engine 123, and/or other engines. The term "engine", as used herein, refers to a combination of hardware and programming that performs a designated function. As is illustrated respect to FIGS. 3-4, the hardware of each engine, for example, may include one or both of a processor and a machine-readable storage medium, while the programming is instructions or code stored on the machine-readable storage medium and executable by the processor to perform the designated function.

[0020] Intercept engine 121 may intercept a first data item generated by a first mobile application (e.g., mobile application 132A) of a first client computing device (e.g., client computing device 130A). The first mobile application may run on the first client computing device. The first data item may be sent from the first client computing device to networking device 120 that connects the plurality of client computing devices to a network (e.g., network 50). The first data item may travel from the first computing device to networking device 120 via a local network such as a PAN (Personal Area Network), a LAN (Local Area Network), a wireless PAN (WPAN), and/or a wireless LAN (WLAN).

[0021 ] A "data item," as used herein, may refer to a network packet and/or a plurality network packets. For example, a data item generated by a social media mobile application may include a social media post or message. A "mobile application" (also known as a "mobile app"), as used herein, may refer to a software program designed to run primarily on mobile computing devices such as smartphones and tablet computers. To be distinguished from a web application that can be accessed via a web browser, a mobile application may refer to a non- browser application.

[0022] A plurality of client computing devices (e.g., client computing devices 130A, 130B, ..., 130N) that includes the first client computing device may be located in a pre-defined area (e.g., pre-defined area 139). A "pre-defined area," as used herein, may refer to a particular geographical area that is defined by a physical geographical boundary (e.g., in any shapes including a circle, sphere, square, cube, and/or any free-form shapes) and/or a particular building (e.g., a stadium, a concert hall, etc.). For example, the plurality of client computing devices may be located in a pre-defined area such as a stadium during a sporting event.

[0023] In some implementations, the first client computing device may have more than one mobile application (e.g., mobile application 132A, 132B, ..., 132N) running on the first client computing device. Intercept engine 121 may intercept a second data item generated by a second mobile application (e.g., mobile application 132B) that runs on the first client computing device, a third data item generated by a third mobile application (e.g., mobile application 132C) that runs on the first client computing device, and so on. In some implementations, network device 120 may receive data items generated by any of the mobile applications (e.g., mobile application 132A, 132B, ..., 132N) that are installed on other client computing devices (e.g., client computing device 130B, 130C, ..., 130N) located in the pre-defined area. For example, a fourth data item may be sent from the second mobile application that runs on a second client computing device (e.g., client computing device 130B) to network device 120, which may be intercepted by intercept engine 121 .

[0024] Intercept engine 121 may store the first data item (and/or the second, third, fourth data items and/or other data items from the pre-defined area) in an intercepting cache (e.g., intercepting cache 129) of network device 120. For example, the first data item that has been intercepted and temporarily stored in intercepting cache 129 may be subsequently distributed back to the plurality of client computing devices in the pre-defined area, which is discussed herein with respect to distribute engine 122.

[0025] Distribute engine 122 may distribute the first data item to the plurality of client computing devices in the pre-defined area. The first data item may travel from network device 120 to the plurality of client computing devices via the local network (e.g., a PAN (Personal Area Network), a LAN (Local Area Network), a wireless PAN (WPAN), a wireless LAN (WLAN), etc.) that covers the pre-defined area. For example, the second client computing device (e.g., client computing device 130B) (and/or the rest of the plurality of client computing devices) in the pre-defined area may receive the first data item from network device 120. The second client computing device may update the first mobile application that runs on the second client computing device with the first data item. Assuming that the first data item was a social media post of a particular social media application, the social media post may be now showing on that social media application of the second client computing device. Returning to the example above, the fourth data item that was sent from the second mobile application of the second client computing device may be distributed by distribute engine 122 to the plurality of computing devices in the pre-defined area. For example, the first client computing device (and/or the rest of the plurality of computing devices) in the pre-defined area may receive the fourth data item from network device 120. The first client computing device may update the second mobile application that runs on the first client computing device with the fourth data item.

[0026] Forward engine 123 may forward the first data item (and/or the second, third, fourth data items and/or other data items from the pre-defined area) to a server computing device. For example, the first data item generated by the first mobile application may be forwarded to a first server computing device (e.g., server computing device 140A) that corresponds to and/or communicates with the first mobile application. The second and fourth data items generated by the second mobile application may be forwarded to a second server computing device (e.g., server computing device 140B) that corresponds to and/or communicates with the second mobile application. The third data item generated by the third mobile application may be forwarded to a third server computing device (e.g., server computing device 140C) that corresponds to and/or communicates with the third mobile application.

[0027] In some implementations, forward engine 123 may sort the first, second, third, fourth data items and/or other data items from the pre-defined area prior to forwarding those data items to their respective server computing devices. For example, forward engine 123 may sort the data items in a particular order. The data items may be then forwarded to their respective server computing devices in that particular order. The data items may be sorted based on various parameters including, but not being limited to: content of the data items (e.g., sentiment of a data item, a particular keyword or phrase mentioned in a message, etc.), and information related to creators of the data items (e.g., identification of the creator/author of a data item, a reputation or reliability of the creator/author of a data item, past data items sent from the creator/author, etc.).

[0028] Forward engine 123 may receive, from each of the server computing devices, data items recently updated on the respective server computing devices. For example, a fifth data item may be submitted to the first server computing device by a client computing device that is located outside of the pre-defined area. The fifth data item may be sent from the first server computing device to network device 120 via network 50. Network device 120 may, via distribute engine 122 as discussed above, distribute those received data items to the plurality of client computing devices. Those data items may be updated on their respective mobile applications of the plurality of client computing devices. Returning to the previous example, the fifth data item may be distributed to the plurality of client computing devices and/or updated on the first mobile application that corresponds to and/or communicates with the first server computing device.

[0029] In some implementations, a designated mobile application (e.g., designated mobile application 131 ) that is designated for use within the predefined area may be installed on each of the plurality of client computing devices. In this case, the designated mobile application may allow access to the mobile applications 131 A, 131 B, .., 131 N via the designated mobile application. For example, a user may need to open up the designated mobile application first to be able to access the mobile applications 131 A, 131 B, .., 131 N. This means that the user may be prevented from accessing any of those mobile applications if the designated mobile application is not used. The designated mobile application can be provided by the owner of the pre-defined area (e.g., the stadium owner). In this way, the owner can share advertisements and/or other useful content related to the area and/or event that is being held in the area with users of the plurality of client computing devices. In addition, by effectively forcing users to use the designated mobile application while in the pre-defined area, the data items generated by the mobile applications 131 A, 131 B, .., 131 N can be forwarded to their respective server computing devices in the name of the designated mobile application and/or the stadium owner, rather than the users themselves. In other words, a creator of a particular data item (e.g., generated by a first mobile application) may be changed or otherwise modified before being forwarded to the first server computing device if the designated mobile application is used to access the first mobile application. For example, a social media post generated by a particular social media mobile application may be posted in the name of the event, stadium, stadium owner, and/or any other designated name if the designated mobile application is used to access the particular social media mobile application.

[0030] FIG. 2 is a block diagram depicting an example system 200 for distributing data items. System 200 may comprise a networking device 220. Network device 220 may comprise intercept engine 221 , distribute engine 222, and/or other engines. Engines 221 -222 represent engines 121 -122, respectively. Network device 220 may comprise an intercepting cache 229 that represents intercepting cache 129 of FIG. 1 .

[0031 ] FIG. 3 is a block diagram depicting an example machine-readable storage medium 310 comprising instructions executable by a processor for distributing data items.

[0032] In the foregoing discussion, engines 121 -123 were described as combinations of hardware and programming. Engines 121 -123 may be implemented in a number of fashions. Referring to FIG. 3, the programming may be processor executable instructions 321 -323 stored on a machine-readable storage medium 310 and the hardware may include a processor 31 1 for executing those instructions. Thus, machine-readable storage medium 310 can be said to store program instructions or code that when executed by processor 31 1 implements engines 121 -123 of FIG. 1 .

[0033] In FIG. 3, the executable program instructions in machine-readable storage medium 310 are depicted as intercept instructions 321 , distribute instructions 322, and forward instructions 323. Instructions 321 -323 represent program instructions that, when executed, cause processor 31 1 to implement engines 121 -123.

[0034] FIG. 4 is a block diagram depicting an example machine-readable storage medium 410 comprising instructions executable by a processor for distributing data items.

[0035] Referring to FIG. 4, the programming may be processor executable instructions 421 -423 stored on a machine-readable storage medium 410 and the hardware may include a processor 41 1 for executing those instructions. At least one of client computing devices 130 of FIG. 1 may comprise processor 41 1 .

[0036] In FIG. 4, the executable program instructions in machine-readable storage medium 410 are depicted as send instructions 421 , receive instructions 422, and update instructions 423.

[0037] Send instructions 421 may represent program instructions that, when executed, cause processor 41 1 to send, from a first client computing device (e.g., having processor 41 1 ) of a plurality of client computing devices (e.g., client computing devices 130A, 130B, ..., 130N of FIG. 1 ) that are located in a predefined area (e.g., pre-defined area 139 of FIG. 1 ), a data item generated by a mobile application (e.g., mobile application 132A of FIG. 1 ) that runs on the first client computing device to a networking device (e.g., networking device 120 of FIG. 1 ). The data item may be intercepted by the networking device.

[0038] Receive instructions 422 may represent program instructions that, when executed, cause processor 41 1 to receive, by a second client computing device (e.g., having processor 41 1 ) of the plurality of client computing devices, the data item from the networking device.

[0039] Update instructions 423 may represent program instructions that, when executed, cause processor 41 1 of the second client computing device to update the mobile application that runs on the second client computing device with the data item.

[0040] Machine-readable storage medium 310 (or machine-readable storage medium 410) may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. In some implementations, machine-readable storage medium 310 (or machine-readable storage medium 410) may be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. Machine-readable storage medium 310 (or machine-readable storage medium 410) may be implemented in a single device or distributed across devices. Likewise, processor 31 1 (or processor 41 1 ) may represent any number of processors capable of executing instructions stored by machine-readable storage medium 310 (or machine- readable storage medium 410). Processor 31 1 (or processor 41 1 ) may be integrated in a single device or distributed across devices. Further, machine- readable storage medium 310 (or machine-readable storage medium 410) may be fully or partially integrated in the same device as processor 31 1 (or processor

41 1 ) , or it may be separate but accessible to that device and processor 31 1 (or processor 41 1 ).

[0041 ] In one example, the program instructions may be part of an installation package that when installed can be executed by processor 31 1 (or processor 41 1 ) to implement system 1 10. In this case, machine-readable storage medium 310 (or machine-readable storage medium 410) may be a portable medium such as a floppy disk, CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, machine-readable storage medium 310 (or machine- readable storage medium 410) may include a hard disk, optical disk, tapes, solid state drives, RAM, ROM, EEPROM, or the like.

[0042] Processor 31 1 may be at least one central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 310. Processor 31 1 may fetch, decode, and execute program instructions 321 -323, and/or other instructions. As an alternative or in addition to retrieving and executing instructions, processor 31 1 may include at least one electronic circuit comprising a number of electronic components for performing the functionality of at least one of instructions 321 -323, and/or other instructions.

[0043] Processor 41 1 may be at least one central processing unit (CPU), microprocessor, and/or other hardware device suitable for retrieval and execution of instructions stored in machine-readable storage medium 410. Processor 41 1 may fetch, decode, and execute program instructions 421 -423, and/or other instructions. As an alternative or in addition to retrieving and executing instructions, processor 41 1 may include at least one electronic circuit comprising a number of electronic components for performing the functionality of at least one of instructions 421 -423, and/or other instructions.

[0044] FIG. 5 is a flow diagram depicting an example method 500 for distributing data items. The various processing blocks and/or data flows depicted in FIG. 5 (and in the other drawing figures such as FIG. 6) are described in greater detail herein. The described processing blocks may be accomplished using some or all of the system components described in detail above and, in some implementations, various processing blocks may be performed in different sequences and various processing blocks may be omitted. Additional processing blocks may be performed along with some or all of the processing blocks shown in the depicted flow diagrams. Some processing blocks may be performed simultaneously. Accordingly, method 500 as illustrated (and described in greater detail below) is meant to be an example and, as such, should not be viewed as limiting. Method 500 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.

[0045] In block 521 , method 500 may include intercepting a first data item generated by a first mobile application of a first client computing device, wherein a plurality of client computing devices including the first client computing device are located in a pre-defined area. Referring back to FIG. 1 , intercept engine 121 may be responsible for implementing block 521 .

[0046] In block 522, method 500 may include distributing the first data item to the plurality of client computing devices. Referring back to FIG. 1 , distribute engine 122 may be responsible for implementing block 522.

[0047] In block 523, method 500 may include forwarding the first data item to a first server computing device that communicates with the first mobile application. Referring back to FIG. 1 , forward engine 123 may be responsible for implementing block 523. [0048] FIG. 6 is a flow diagram depicting an example method 600 for displaying server capabilities. Method 600 as illustrated (and described in greater detail below) is meant be an example and, as such, should not be viewed as limiting. Method 600 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 310, and/or in the form of electronic circuitry.

[0049] In block 621 , method 600 may include intercepting a first data item generated by a first mobile application of a first client computing device, wherein a plurality of client computing devices including the first client computing device are located in a pre-defined area. Referring back to FIG. 1 , intercept engine 121 may be responsible for implementing block 621 .

[0050] In block 622, method 600 may include storing the first data item in an intercepting cache of a networking device that connects the plurality of client computing devices to a network. Referring back to FIG. 1 , intercept engine 121 may be responsible for implementing block 622.

[0051 ] In block 623, method 600 may include distributing the first data item to the plurality of client computing devices. Referring back to FIG. 1 , distribute engine 122 may be responsible for implementing block 623.

[0052] In block 624, method 600 may include sorting the first data item and a second data item in a particular order, the second data item generated by a second mobile application of the first client computing device. Referring back to FIG. 1 , forward engine 123 may be responsible for implementing block 624.

[0053] In block 625, method 600 may include forwarding the first and second data items in the particular order, wherein the first data item is forwarded to a first server computing device that communicates with the first mobile application, and the second data item is forwarded to a second server computing device that communicates with the second mobile applications. Referring back to FIG. 1 , forward engine 123 may be responsible for implementing block 625.

[0054] In block 626, method 600 may include receiving, from the first server computing device, a third data item. Referring back to FIG. 1 , distribute engine 122 may be responsible for implementing block 626. [0055] In blcok 627, method 600 may include distributing the third data item to the plurality of client computing devices. Referring back to FIG. 1 , distribute engine 122 may be responsible for implementing block 627.

[0056] The foregoing disclosure describes a number of example implementations for distributing data items. The disclosed examples may include systems, devices, computer-readable storage media, and methods for distributing data items. For purposes of explanation, certain examples are described with reference to the components illustrated in FIGS. 1 -4. The functionality of the illustrated components may overlap, however, and may be present in a fewer or greater number of elements and components.

[0057] Further, all or part of the functionality of illustrated elements may coexist or be distributed among several geographically dispersed locations. Moreover, the disclosed examples may be implemented in various environments and are not limited to the illustrated examples. Further, the sequence of operations described in connection with FIGS. 5-6 are examples and are not intended to be limiting. Additional or fewer operations or combinations of operations may be used or may vary without departing from the scope of the disclosed examples. Furthermore, implementations consistent with the disclosed examples need not perform the sequence of operations in any particular order. Thus, the present disclosure merely sets forth possible examples of implementations, and many variations and modifications may be made to the described examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.