GB2478336A - Bandwidth control system - Google Patents

Bandwidth control system Download PDF

Info

Publication number
GB2478336A
GB2478336A GB1003590A GB201003590A GB2478336A GB 2478336 A GB2478336 A GB 2478336A GB 1003590 A GB1003590 A GB 1003590A GB 201003590 A GB201003590 A GB 201003590A GB 2478336 A GB2478336 A GB 2478336A
Authority
GB
United Kingdom
Prior art keywords
content
running
user device
foreground
objects
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
GB1003590A
Other versions
GB201003590D0 (en
Inventor
Dean Ezra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to GB1003590A priority Critical patent/GB2478336A/en
Publication of GB201003590D0 publication Critical patent/GB201003590D0/en
Publication of GB2478336A publication Critical patent/GB2478336A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F17/30899
    • H04L12/2439
    • H04L29/08945
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A communications system is described in which a user device (3, Figure 1) can multitask a number of different web enabled software objects and/or that can run multiple instances or tabs of the same software. A network device (gateway 11, Figure 1) is provided for controlling the delivery of content to the different web application objects so that applications and instances running in the foreground 19-2 are provided with a larger portion of the available bandwidth than those running in the background 19-1, 19-3. The control of the content delivery is defined by the user device using priority data that can be changed dynamically if the context of the different applications and instances changes depending on user input that changes the software that is in the foreground and the software that is in the background. The network device may control when content requests are forwarded to one or more remote devices (servers 5, Figure 1) to control the delivery or may control the time and/or rate which the requested content is delivered to the user device. The system may further include a packet shaper (53, Figure 4) at the network device that uses a priority filter (55, Figure 4) to control delivery. The user device may have one or more web browser tabs (15-1, 15-2, 15-3 Figure 3), web applications (17-1, 17-2, 17-3, Figure 3) or widgets running which are competing for bandwidth over the link from the network device, the bandwidth being assigned to each one by the network device according to their respective priorities according to whether they are running in the foreground or the background on the user device.

Description

INTELLECTUAL
. .... PROPERTY OFFICE Application No. GB 1003590.5 RTM Date:23 June 2010 The following terms are registered trademarks and should be read as such wherever they occur in this document: Javascript Facebook Filch Intellectual Property Office is an operating name of the Patent Office www.ipo.gov.uk Bandwidth Control System The present invention relates to a user device and the control of bandwidth between a network device and the user device to allow for the efficient transfer of data between the servers on the network and the user device.
When the Internet was first introduced, web page content was traditionally static and limited to referring to media that could be downloaded in its entirety. The user would enter a website address, a full page of text and/or images would be downloaded and the web browser would wait until a link is pressed before downloading the content of the linked page. However, with the introduction of Web 2.0, web sites are increasingly making web pages more interactive with new types of media. Specifically adding content that is no longer static (it can change after the page is loaded). For example, a web page can download a small percentage of a video and then continue to download additional video as and when the web page needs to display it. It is also common to use a technique called AJAX' where a web page's JavaScript code can request and download more content and change the existing page without any interaction from the end user.
The effect of this content being able to be changed on the fly' is that web pages can use Network bandwidth without the end user's knowledge.
Due to Web 2.0 web pages becoming more interactive, developers are now using Web technologies to create Applications. For example, it is common to have a Widget' on your Mobile telephone or desktop PC (personal computer) showing the latest weather or news updates for your location. Because these new Widgets/Web 2.0 Applications inherit the ability to download new content on the fly, they can also use network bandwidth without the end user's knowledge. These web applications and web widgets use a web framework of the user device to access the internet. The web framework is a group of software components that a software developer can use to build the web widget. The web framework provides common functionality to the developer, such as APIs for common tasks such as accessing a database, connecting to a remote server etc.; and a web runtime that interprets and runs the widget scripts and provides the widget with access to the internet. The web framework may form part of the user device operating system or it may be provided separately, depending on the device.
Internet connected Mobile devices (and desktop PCs) have a finite amount of bandwidth that must be shared by all Applications that use the Internet. Currently there is no limit in the web browser or the web framework to stop a request for content consuming all of the available bandwidth. There is a limit to the number of requests that a web page can make, but this doesn't directly relate to bandwidth consumption. For example, if one Application decides to consume all of the available bandwidth by downloading a large file, the downloads of all other applications will be slowed down.
In the area of web applications, web widgets and web pages there is currently no way of prioritising who gets the available bandwidth (it is first come first served').
The inventor has realised that this traditional first come first served' approach (which has been used for decades) is not efficient when the first requester (the application making the content request) is not visible to the end user; and that it would be more efficient and beneficial to the end user if the web application, web Widget and/or the web page currently visible was to get priority when utilizing the available bandwidth.
The above problem happens in all of the following scenarios: 1. Web Browser: End user is browsing the Internet and they open a number of web pages up in separate tabs'. One page is a news site and has a ticker' news feature where the latest news headlines and video is updated every couple of minutes, another tab is a TV episode site showing the latest episode of a documentary. The end user has the TV site's tab in the foreground and is watching the video. At this time, the background tab (news site) is slowing the TV episode video down every couple of minutes when it downloads the news headlines.
During the adverts of the TV episode, the user switches over to the news site tab to read the latest headlines and perhaps watch the embedded video. At this time, the news video struggles to download fast enough to keep up with playback because it is sharing the bandwidth with the TV advert in the other tab.
2. Web widgets on separate screens: The end user has a Mobile handset that allows web widgets and web enabled applications to be shown on a number of virtual screens. Currently he has: a "Facebook" widget running on screen 1 downloading the latest friend updates and pictures every couple of minutes; a browser running on screen 2 (which he is currently using) and a gallery application running on screen 3, downloading his latest photos from the web site "Flickr". The end user can then switch between each screen in order to access the browser, the widget or the gallery application. The user's experience is slow when using the browser on screen 2 because the other two applications/widgets are consuming all of the available bandwidth.
3. Web widgets/application full screen stacked on top of each other: The end user is using his PC or mobile device and has several web enabled applications and/or web widgets open. All of the applications and widgets are consuming bandwidth. When the user switches to the full screen web browser he can no longer see the other applications or web widgets. However they are still affecting his web browsing experience (making pages load slowly, choppy streaming audio and video) by consuming the available bandwidth.
The above problem is worse when available bandwidth is at a premium. For example, 3G cellular networks used by Mobile telephone handsets have a more limited amount of bandwidth available compared to fixed line Broadband connections used by many desktop PCs. The problem is therefore more acute with mobile devices using 3G and earlier cellular standards.
The present invention aims to at least alleviate the above problem. In one embodiment, this is achieved by adding new functionality to existing web browsers and/or web frameworks that gives priority of bandwidth to the current visible foreground tab (in a web browser scenario) or web applications or Widgets (in a web application scenario). The web browser or web framework may also allow the current bandwidth consumption priority to be changed on the fly'. This caters for the end user switching between tabs or web applications, in which the old foreground tab's or web application's traffic will be throttled (reduced), and the tab or web application that comes into the foreground will get priority to use the newly available bandwidth.
In a preferred solution, the web browser or the web framework is able to create and set filters' on a packet shaper' component running on a network device, such as a gateway or router device. This could be done via a web API from the browser to the network device.
The present invention provides a network device comprising: a first interface for interfacing with a user device; a second interface for interfacing with one or more remote devices; and a controller operable: i) to receive priority data from the user device indicating one or more objects running in the foreground or the background of the user device; and ii) to use the received priority data to control the delivery of the requested content to the user device so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering
content to an object running in the background.
The controller may receive content requests from the user device and forward the content requests to the one or more remote devices and may control the delivery of the requested content by controlling the time at which the content requests are forwarded to the one or more remote devices. Alternatively, or in addition, the controller may receive the content requested by the user device from the one or more remote devices and then control the delivery of the requested content to the user devices by controlling the time and/or rate at which the requested content is delivered to the user device.
In one embodiment, the priority data provided by the user device identifies one or more objects running in the foreground. In an alternative embodiment, the priority data may identify one or more objects running in the background.
The priority data may define a filter for the one or more objects that defines the priority of the one or more objects and the controller comprises a packet shaper that uses the filter to control the delivery of the requested content to the user device.
The priority data may identify an object by a source port identifier associated with the object, although another identifier may be used if desired.
Each object may be a tab of a web browser, a web application or a web widget or any other software that can connect to a remote device to obtain content.
The present invention also provides a user device comprising: a plurality of objects, each being operable to generate requests for content from a remote device and to receive the requested content from the remote device over a communications network, each request including data identifying the object making the request; and a controller operable to provide priority data to a network device identifying one or more objects that are running in the foreground or the background, for use by the network device in controlling the delivery of the requested content over the communications network to the requesting object so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering content to an object running in the
background.
The controller may send the content requests to the network device for forwarding to the corresponding remote device or it may send the content requests directly to the remote device. The controller may receive the requested content from the network device or from the remote device and then forward the requested content to the object that requested the content.
The priority data may identifies one or more objects running in the foreground or in the background. The priority data may define a filter for the one or more objects that defines the priority of the one or more objects and the controller may comprise a packet shaper that uses the filter to control the delivery of the requested content to the user device.
In one embodiment, the priority data identifies an object by a source port identifier associated with the object, although another identifier may be used.
The controller can dynamically update priority data for one or more objects when an object changes from being in the foreground to the background or when an object changes from being in the background to the foreground. In this case, the controller will send the updated priority data to the network device so that the requested content for the objects now in the foreground are given priority over objects in the background.
The invention also provides a method performed by a user device, the method comprising: running a plurality of objects on the user device; the objects generating requests for content from a remote device and receiving the requested content from the remote device over a communications network, each request including data identifying the object making the request; and providing priority data to a network device identifying one or more objects that are running in the foreground or the background, for use by the network device in controlling the delivery of the requested content over the communications network to the requesting object so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering content to an object running in the background.
The invention also provides a method performed by a network device, the method comprising: interfacing with a user device; interfacing with one or more remote devices; and receiving priority data from the user device indicating one or more objects running in the foreground or the background of the user device; and using the received priority data to control the delivery of the requested content to the user device so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering content to an object running in the
background.
These and other various aspects and features of the invention will become clear from the following detailed description of exemplary embodiments that are described with reference to the accompanying drawings in which: Figure 1 is a schematic overview of a mobile communication system embodying the present invention; Figure 2a illustrates a web browser scenario to which the present invention is applicable; Figure 2b illustrates a web application scenario to which the present invention is applicable; Figure 2c illustrates a virtual screen scenario to which the present invention is applicable; Figure 3 is a block diagram illustrating the main components of a user mobile device forming part of the system shown in Figure 1; Figure 4 is a block diagram illustrating the main components of a gateway forming part of the system shown in Figure 1; Figure 5a is a flow chart illustrating a first part of the operation of the system shown in Figure 1 for a web browser scenario; and Figure 5b is a flow chart illustrating a second part of the operation of the system shown in Figure 1 for the web browser scenario.
Overview Figure 1 illustrates a mobile computing system 1 having a mobile user device 3 (in this case a cellular telephone) that communicates with remote servers 5 located on the Internet 7 via a base station 9 and a gateway device 11 of a cellular telephone network 13. As will be explained in more detail below, the gateway device 11 is arranged to intercept all content requests sent by different applications or tabs running on the user device 3 and to prioritise the delivery of the content to the user device 3 over the limited bandwidth connection 15 between the user device 3 and the base station 9. In this embodiment, the gateway device 11 does this by controlling the timing of when the content requests are actually released to the internet 7. In an alternative embodiment, the gateway device 11 may buffer all the data obtained from the web servers 5 and control the delivery of the content in accordance with the currently defined priority.
The control of the content delivery can be used to prioritise content delivery for a number of different applications running on the user device 3, including a web browser, web applications and web widgets. Different operating scenarios are illustrated in Figure 2. In particular, Figure 2a illustrates a scenario in which a web browser application 14 is running with different tabs 15-1, 15-2 and 15-3, each of which can make requests for content. In this scenario the gateway device 11 is arranged to prioritise content requests for tab 15-2 that is currently in the foreground of the user interface/display. Figure 2b illustrates a scenario in which a plurality of web applications (or widgets) 17-1, 17-2 and 17-3 are open and running, with the top application 17-1 being visible and in the foreground of the user interface. In this scenario the gateway device 11 is arranged to prioritise content requests for the application 17-1 that is currently in the foreground. Figure 2c illustrates a scenario in which multiple web applications (or widgets) are running on different virtual screens 19- 1, 19-2 and 19-3, with one screen 19-2 being visible at a current time. In this scenario the gateway device 11 is arranged to prioritise content requests for the screen 19-2 that is currently in the foreground. In order that the gateway device 11 can prioritise the correct traffic, the user device 3 is arranged to inform the gateway device 11 (when a content request is transmitted to it) if the request relates to a tab or application that is running in the foreground or the background. If the tab or application that is running in the foreground changes, then the user device 3 will inform the gateway 11 of the new foreground/background situation, so that the content requests can be re-prioitised accordingly.
User Device Figure 3 schematically illustrates the main components of the user device 3 shown in Figure 1. As shown, the user device 3 includes transceiver circuit 21 which is operable to transmit signals to and to receive signals from the base station 9 via one or more antennae 23. As shown, the user device 3 also includes a controller 27 to control the operation of the user device 3 and a SIM (Subscriber Identity Module) 22. The controller 27 is associated with a memory 29 and is coupled to the transceiver circuit 21 and to a user interface 28 having a loudspeaker 28a, a microphone 28b, a display 28c, and a keypad 28d. Although not necessarily shown in Figure 3, the user device 3 will have all the usual functionality of a cellular telephone and this may be provided by any one or any combination of hardware, software and firmware, as appropriate. Software may be pre-installed in the memory 29 and/or may be downloaded via the telecommunications network 13 or from a removable data storage device (RMD) 23, for example.
The controller 27 is configured to control overall operation of the user device 3 by, in this example, program instructions or software instructions stored within memory 29. As shown, these software instructions include, among other things, an operating system 31, a web browser 14, web applications 17-1, 17-2 and 17-3 and a virtual screen module 33.
As shown in Figure 3, the web browser 14 includes a tab controller 35 that keeps track of the tabs 15-1, 15-2 and 15-3 that have been opened by the user. The tab controller 35 maintains tab data 39 that includes details of the website associated with each tab and which tab(s) are currently in the foreground (ie are currently being displayed to the user on the display 28c) and which tab(s) are currently in the background (and thus not being displayed to the user). The tab data also includes data identifying the content requests that have been made by the web page shown in each tab. The tab controller 35 uses the tab data 39 to inform the gateway device 11 which tab(s) are in the foreground so that the gateway device 11 can perform the above described prioritisation.
Gateway Device Figure 4 is a block diagram illustrating the main components of the gateway device used in this embodiment. As shown the gateway device 11 includes a controller 41 that is arranged to transmit data to and to receive data from the user device 3 via a mobile interface 43; and that is arranged to transmit data to and to receive data from internet servers 5 via an internet interface 44. The transmitted and received data may include the above described content requests and priority requests made by the user device and the web content data obtained from the internet in response to the requests. The controller 41 is configured to control overall operation of the gateway device 11 by, in this example, program instructions or software instructions stored within memory 49. As shown, these software instructions include, among other things, an operating system 51 and a packet shaper 53. The packet shaper 53 is arranged to intercept the content requests made by a user device 3 and to prioritise them so that content for a foreground application 17 or tab is given priority over background applications 17 or tabs 15. To do this, the packet shaper 53 includes a number of packet filters 55 that effectively define the priorities for the requests; and a content requester 57 that requests content depending on the outputs of the packet filters 55.
Operation A detailed description of the operation of this embodiment will now be described with reference to Figures 5a and Sb, for an example scenario in which the user is using the web browser 14 to view a number of different websites in a number of tabs 15. Initially, a URL for content is passed, in step si, to the browser 14. The URL may be passed to the browser 14 as a result of any of the following actions: 1) a new tab 15 is opened and a website address entered; 2) an existing tab in the foreground makes a content request either as a result of the user entering a URL into the tab or the tab automatically making the content request; 3) an existing tab in the background automatically making a content request; 4) the user causing an existing background tab to come to the foreground by switching from one tab to another.
In this example, the URL is received from "Tab 1". In step s3, the browser 14 schedules a request for content using the received URL. In step s5, the browser 14 generates a "source port id" that identifies the tab 15 (in this case "Tab 1") that will receive the response to the content request, and stores the information in the tab data 39. In step s7, the browser 14 determines if "Tab 1" has changed from running in the background to running in the foreground from the Tab data 39. The table below gives an example of the data that the browser 14 maintains in the tab data 39, when there are two tabs open in the browser 14 with two content requests each. In this example, the web browser 14 groups all content requests (identified by their source port ids') against their tab number.
Tab number content request (source State port id) 1 3001 Foreground 1 3002 Foreground
2 3003 Background
2 3004 Background
If "Tab 1" has changed from the background to the foreground, then the browser 14 sends, in step s9, an instruction to the packet shaper 53 (in the gateway device 11) to delete all existing packet shaping filters for that user (but not the filters associated with other users). The packet shaper 53 deletes the packet shaping filters for the corresponding user in step sli.
In step s15, the browser 14 determines if "Tab 1" is currently in the foreground and if it is then the browser 14 sends, in step s17, an instruction to the packet shaper 53 to add a new filter that will ensure that a request with a "source port id" corresponding to the one generated in step s5 will be treated as a high priority request. In step si 9, the new filter is added to the packet shaper 53. The browser 14 then sends, in step s21, the content request (that includes both the URL and the "source port id" associated with the request (generated in step s5).
As discussed above, the gateway device 11 intercepts all content requests made by the user device 3. The content request sent by the browser 14 in step s21 is therefore received by the gateway device 11 and passed to the packet shaper 53. When the packet shaper 53 receives the content request, it retrieves the "source port id" from the content request and determines, in step s23, if that "source port id" matches a high priority filter. If it does not match, then the packet shaper 53 assumes that the content request is a low priority request. In order that low priority requests are still able to be serviced, the packet shaper 53 allocates a small percentage (e.g. about 25%) of the available bandwidth for low priority requests; and all low priority requests share this restricted bandwidth. If the packet shaper 53 determines that the received request is a low priority request, then it determines, in step s25, if the available bandwidth for low priority traffic has already been consumed by other low priority requests. If the low priority bandwidth has already been consumed, then the packet shaper 53 delays, in step s27, the low priority content request until bandwidth for low priority traffic is available. Once bandwidth for low priority traffic is available, the packet shaper allows, in step s29, the content request to be forwarded (by the content requester 57 in step s31) towards the internet server 5 defined by the URL contained in the request.
Returning to step s23, if the packet shaper 53 determines that the request does match a high priority filter, then the processing jumps to step s29 where the packet shaper 53 immediately allows the content request to be forwarded, in step s31, towards the internet server 5 defined by the URL in the content request. Similarly, if the packet shaper 53 determines, in step s25, that the available bandwidth for low priority traffic has not been consumed, then the processing jumps to step s29 where the packet shaper 53 immediately allows the content request to be forwarded, in step s31, towards the internet server 5 defined by the URL in the content request.
In step s33, the internet server 5 retrieves and sends (in a conventional manner) the content corresponding to the URL back to the gateway device 11. In step s35, the packet shaper 53 forwards the content to the "source port id" of the user device 3 identified in the original content request. This ensures that the content is returned to the correct tab 15, in this case "Tab 1". In order to control the delivery of the content, the packet shaper 53 also buffers the received content and delivers the content at a rate defined by the bandwidth allocated to the corresponding filter. For example, low priority data are allocated 25% of the available bandwidth and so low priority content is delivered within this part of the bandwidth. High priority content share the remaining 75% of the available bandwidth.
Finally, in step s37, the browser 14 provides the requested content to "Tab 1".
Modifications and Alternatives A detailed embodiment has been described above. As those skilled in the art will appreciate, a number of modifications and alternatives can be made to the above embodiment whilst still benefiting from the inventions embodied therein.
In the above embodiment, a mobile telephone based messaging system was described.
As those skilled in the art will appreciate, the techniques described in the present application can be employed in other computing systems such as, for example, personal digital assistants, laptop computers, desktop computers, etc. The invention has broad application whenever there is a limited bandwidth connection between the user device and a remote server providing content to a number of different objects running on the user device.
In the above embodiment, priority for the tab, web application or web widget was defined based on whether the tab/application/widget was in the foreground or the background. In an alternative embodiment, in addition to the above user defined rules may be provided that allow users to always allocate a set percentage or give priority to a specific web page or web application or web widget. This information may be provided to the packet shaper to allow it to define the relevant filters to achieve the desired priority.
In the above embodiment, the packet shaper filters were defined by the packet shaper in accordance with information provided by the user device. In an alternative embodiment, the filters may be generated by the user device and transmitted to the packet shaper for implementation.
In the above embodiment, the content requests will typically be made using the HTTP protocol. However, other protocols can be used to transmit the content requests to the packet shaper.
In the above embodiment, packet shaping techniques were provided in the gateway device to prioritise the content delivery and hence control the rate at which different content is delivered to the user device. As those skilled in the art will appreciate, other techniques can be used for controlling the bandwidth consumption on a network could be used if a remote API is provided to allow the user device to define what content should take priority. Here the "remote API" simply means an agreed procedure that allows a remote device (in this case the user device) to be able to control how the content requests are prioritised.
In the above embodiment, the content requests made by the user device were intercepted by the gateway device and the requested content was delivered to the user device via the gateway device. As those skilled in the art will appreciate, this is not essential. In particular, the gateway device may just receive the content requests from the user devices and may then control the content delivery to those devices by controlling when the requests are actually transmitted to the relevant server; and in which the servers are then arranged to deliver the content directly back to the relevant user device. Similarly, the requests for content can be sent directly to the relevant servers from the user device (without going through the gateway), but with the requested content then being delivered to the gateway device for buffering and delivery control to the user device. The second approach is not, however, preferred as it may require substantial buffering of content in the gateway device.
In the above embodiment, the user device sent priority data to the gateway device identifying one or more tabs, web applications and/or widgets that are running in the foreground. In an alternative embodiment, the user devices may send priority data identifying the tabs, applications and/or widgets that are running in the background. In this case, the gateway device would assume that the identified tabs, applications or widgets are to share a small portion of the available bandwidth (e.g. 25% as per the above embodiment), whilst content requests for any other tabs, applications and widgets should share the larger remaining portion of the available bandwidth.
In the above embodiment, the user device informed the gateway of the tab, application or widget that is running in the foreground and the gateway device generated the appropriate filter to ensure that the desired delivery control was provided. In an alternative embodiment, the user device may generate the filter(s) used by the packet shaper, which it then uploads to the gateway device.
In the above embodiment, the gateway device performed the delivery control. As those skilled in the art will appreciate, other network devices may be used instead, such as a router, a server an access point etc. In the above embodiments, a number of software modules were described. As those skilled in the art will appreciate, the software modules may be provided in compiled or un-compiled form and may be supplied as a signal over a computer network, or on a recording medium. Further, the functionality performed by part or all of this software may be performed using one or more dedicated hardware circuits. However, the use of software modules is preferred as it facilitates the updating of the computer system.
Additionally, the functionality of one or more of the software modules described above may be combined into a single module or split into a number of different modules if desired.
A communications system is described above in which a user device can multitask a number of different web enabled software and/or that can run multiple instances or tabs of the same software. A network device is provided for controlling the delivery of content to the different web applications so that applications and instances running in the foreground are provided with a larger portion of the available bandwidth (between the network and the user device) than those running in the background. The control of the content delivery is defined by the user device using priority data that is transmitted to the network device and that can be changed if the context of the different applications and instances changes depending on user input that changes the software that is in the foreground and the
software that is in the background.
Various other modifications will be apparent to those skilled in the art and will not be described in further detail here.

Claims (19)

  1. Claims: 1. A network device comprising: a first interface for interfacing with a user device; a second interface for interfacing with one or more remote devices; and a controller operable: i) to receive priority data from the user device indicating one or more objects running in the foreground or the background of the user device; and ii) to use the received priority data to control the delivery of the requested content to the user device so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for deliveringcontent to an object running in the background.
  2. 2. A device according to claim 1, wherein the controller is operable to receive content requests from the user device and to forward the content requests to the one or more remote devices and is operable to control the delivery of the requested content by controlling the time at which the content requests are forwarded to the one or more remote devices.
  3. 3. A device according to claim 1 or 2, wherein the controller is operable to receive the content requested by the user device from the one or more remote devices and is operable to control the delivery of the requested content to the user devices by controlling the time and/or rate at which the requested content is delivered to the user device.
  4. 4. A device according to any of claims 1 to 3, wherein the priority data identifies one or more objects running in the foreground.
  5. 5. A device according to any of claims 1 to 3, wherein the priority data identifies oneor more objects running in the background.
  6. 6. A device according to any of claims 1 to 5, wherein the priority data defines a filter for the one or more objects that defines the priority of the one or more objects and wherein the controller comprises a packet shaper that uses the filter to control the delivery of the requested content to the user device.
  7. 7. A device according to any of claims 1 to 6, wherein the priority data identifies an object by a source port identifier associated with the object.
  8. 8. A device according to any of claims 1 to 7, wherein one or more of the objects are one of: a tab of a web browser, a web application and a web widget.
  9. 9. A user device comprising: a plurality of objects, each being operable to generate requests for content from a remote device and to receive the requested content from the remote device over a communications network, each request including data identifying the object making the request; and a controller operable to provide priority data to a network device identifying one or more objects that are running in the foreground or the background, for use by the network device in controlling the delivery of the requested content over the communications network to the requesting object so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering content to an object running in the background.
  10. 10. A device according to claim 9, wherein the controller is operable to send the content requests to the network device for forwarding to the corresponding remote device.
  11. 11. A device according to claim 9 or 10, wherein the controller is operable to receive the requested content from the network device and to forward the requested content to the object that requested the content.
  12. 12. A device according to any of claims 9 to 11, wherein the priority data identifies one or more objects running in the foreground.
  13. 13. A device according to any of claims 9 to 12, wherein the priority data defines a filter for the one or more objects that defines the priority of the one or more objects and wherein the controller comprises a packet shaper that uses the filter to control the delivery of the requested content to the user device.
  14. 14. A device according to any of claims 9 to 13, wherein the priority data identifies an object by a source port identifier associated with the object.
  15. 15. A device according to any of claims 9 to 14, wherein one or more of the objects are one of: a tab of a web browser, a web application and a web widget.
  16. 16. A device according to any of claims 9 to 15, wherein the controller is operable to dynamically update priority data for one or more objects when an object changes from being in the foreground to the background or when an object changes from being in the background to the foreground and is operable to send the updated priority data to the network device.
  17. 17. A method performed by a user device, the method comprising: running a plurality of objects on the user device; the objects generating requests for content from a remote device and receiving the requested content from the remote device over a communications network, each request including data identifying the object making the request; and providing priority data to a network device identifying one or more objects that are running in the foreground or the background, for use by the network device in controlling the delivery of the requested content over the communications network to the requesting object so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering content to an objectrunning in the background.
  18. 18. A method performed by a network device, the method comprising: interfacing with a user device; interfacing with one or more remote devices; receiving priority data from the user device indicating one or more objects running in the foreground or the background of the user device; and using the received priority data to control the delivery of the requested content to the user device so that a larger portion of an available bandwidth is provided for delivering content requested by an object running in the foreground than for delivering content to anobject running in the background.
  19. 19. A computer implementable instructions product comprising computer implementable instructions for causing a programmable electronic device to become configured as the device of any of claims 1 to 16.
GB1003590A 2010-03-04 2010-03-04 Bandwidth control system Withdrawn GB2478336A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1003590A GB2478336A (en) 2010-03-04 2010-03-04 Bandwidth control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1003590A GB2478336A (en) 2010-03-04 2010-03-04 Bandwidth control system

Publications (2)

Publication Number Publication Date
GB201003590D0 GB201003590D0 (en) 2010-04-21
GB2478336A true GB2478336A (en) 2011-09-07

Family

ID=42136454

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1003590A Withdrawn GB2478336A (en) 2010-03-04 2010-03-04 Bandwidth control system

Country Status (1)

Country Link
GB (1) GB2478336A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024825A (en) * 2011-09-26 2013-04-03 中国移动通信集团公司 Method and device of distributing network source among multiple applications of terminal
US20220021628A1 (en) * 2016-06-14 2022-01-20 Maxell, Ltd. Communication control method

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
WO2001090912A1 (en) * 2000-05-25 2001-11-29 Qmgn, Inc. Enhanced downloading from a computer network and profiling of a user of a computer network
WO2004029779A2 (en) * 2002-09-27 2004-04-08 Danger, Inc. System and a method for efficiently managing data transports
EP1434131A2 (en) * 2002-09-17 2004-06-30 TeliaSonera Finland Oyj Method for controlling terminal equipment
US6898654B1 (en) * 1999-07-29 2005-05-24 Microsoft Corporation Method and system for managing bandwidth on a master-slave bus
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
EP1904930A2 (en) * 2005-07-15 2008-04-02 Microsoft Corporation Background network bandwidth sharing behind gateway devices
EP1980069A2 (en) * 2006-01-31 2008-10-15 Roundbox, Inc. Reliable event broadcaster with multiplexing and bandwidth control functions
US20090059791A1 (en) * 2007-09-04 2009-03-05 Computer Associates Think, Inc. System and Method for Bandwidth Control
US20090248845A1 (en) * 2008-03-31 2009-10-01 Waltermann Rod D Network bandwidth control for network storage

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
US6898654B1 (en) * 1999-07-29 2005-05-24 Microsoft Corporation Method and system for managing bandwidth on a master-slave bus
WO2001090912A1 (en) * 2000-05-25 2001-11-29 Qmgn, Inc. Enhanced downloading from a computer network and profiling of a user of a computer network
EP1434131A2 (en) * 2002-09-17 2004-06-30 TeliaSonera Finland Oyj Method for controlling terminal equipment
WO2004029779A2 (en) * 2002-09-27 2004-04-08 Danger, Inc. System and a method for efficiently managing data transports
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
EP1904930A2 (en) * 2005-07-15 2008-04-02 Microsoft Corporation Background network bandwidth sharing behind gateway devices
EP1980069A2 (en) * 2006-01-31 2008-10-15 Roundbox, Inc. Reliable event broadcaster with multiplexing and bandwidth control functions
US20090059791A1 (en) * 2007-09-04 2009-03-05 Computer Associates Think, Inc. System and Method for Bandwidth Control
US20090248845A1 (en) * 2008-03-31 2009-10-01 Waltermann Rod D Network bandwidth control for network storage

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024825A (en) * 2011-09-26 2013-04-03 中国移动通信集团公司 Method and device of distributing network source among multiple applications of terminal
CN103024825B (en) * 2011-09-26 2015-07-01 中国移动通信集团公司 Method and device of distributing network source among multiple applications of terminal
US20220021628A1 (en) * 2016-06-14 2022-01-20 Maxell, Ltd. Communication control method
US11750529B2 (en) * 2016-06-14 2023-09-05 Maxell, Ltd. Communication control method

Also Published As

Publication number Publication date
GB201003590D0 (en) 2010-04-21

Similar Documents

Publication Publication Date Title
CN107743698B (en) Method and apparatus for multi-path media delivery
US10700969B2 (en) Communication path selection for content delivery
US8972519B2 (en) Optimization of multimedia service over an IMS network
EP3780637A1 (en) Webpage video playback method and apparatus, electronic device and storage medium
KR20230098845A (en) Communication method and apparatus, computer readable medium and electronic device
CN110891123B (en) Interactive information transmission method and device
JP2017531957A (en) Method and system for implementing a content distribution network based on a software defined network
JP7100154B6 (en) Processor core scheduling method, device, terminal and storage medium
US10581993B2 (en) Method for forwarding traffic in application on mobile intelligent terminal
WO2022111027A1 (en) Video acquisition method, electronic device, and storage medium
US11374992B2 (en) Seamless social multimedia
EP4287591A1 (en) Data transmission method and apparatus, and server, storage medium and program product
WO2022262433A1 (en) Resource allocation method, and terminal and computer-readable storage medium
KR20130140434A (en) Method for controlling receiving of content data through a plurality of wireless networks connected in multiple mode and an apparatus for said method
CN111475754B (en) Page loading method, device, terminal and storage medium
CN110535839B (en) Information processing method, device, system and computer readable storage medium
EP4315819A1 (en) Method and system for integrating video content in a video conference session
US20140208352A1 (en) Flash video enabler for ios devices
CN112235642B (en) Video data processing method, device, equipment and storage medium
GB2478336A (en) Bandwidth control system
US9178711B2 (en) Method and system for the dynamic management of the transmission of streams within a plurality of terminals
JP2012530304A (en) Method and device for controlling presence information of a user terminal
CN111866100A (en) Method, device and system for controlling data transmission rate
CN106210867A (en) A kind of method and apparatus of data sharing
WO2017204580A1 (en) Method and apparatus for presentation customization and interactivity

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)