WO2002030088A1 - Adaptive predictive delivery of information - Google Patents

Adaptive predictive delivery of information Download PDF

Info

Publication number
WO2002030088A1
WO2002030088A1 PCT/US2001/031316 US0131316W WO0230088A1 WO 2002030088 A1 WO2002030088 A1 WO 2002030088A1 US 0131316 W US0131316 W US 0131316W WO 0230088 A1 WO0230088 A1 WO 0230088A1
Authority
WO
WIPO (PCT)
Prior art keywords
demand
information
response
client
server
Prior art date
Application number
PCT/US2001/031316
Other languages
French (fr)
Other versions
WO2002030088B1 (en
Inventor
Wei Yen
John Princen
Pramila Srinivasan
Original Assignee
Routefree, Inc.
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 Routefree, Inc. filed Critical Routefree, Inc.
Priority to AU2002213046A priority Critical patent/AU2002213046A1/en
Publication of WO2002030088A1 publication Critical patent/WO2002030088A1/en
Publication of WO2002030088B1 publication Critical patent/WO2002030088B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/55Push-based network services
    • 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
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • This invention relates to adaptive predictive delivery of information, including delivery of information at a time earlier than the information is requested, such as for use in an internetworking environment.
  • client devices also called “web browsers”
  • server devices also called “web sites”
  • client devices make requests for information from server devices (also called “web sites"), receive that information from the server devices, and deliver that information at those client devices to end-users.
  • server devices also called “web sites”
  • One problem when using the World Wide Web is that a rate of transfer of information from the server to the client is sometimes much less than desired. This problem is particularly acute when information to be transferred is requested at or about the same time by a relatively large number of clients.
  • a first known method is to deliver information to a relatively large number of clients on demand (i.e. immediately in response to a client request). This can be achieved by trying to respond to each demand individually.
  • Devices and systems using this known method include mirrored web servers. While this known method generally achieves the result of delivering information more rapidly at a plurality of clients, it is still subject to several drawbacks. First, devices and systems using this method must have the information they deliver coordinated, so that when requested information is identical when served by any mirrored server. Second, devices and systems using this method use significant information transmittal capacity when relatively large numbers of clients request the same information which often requires scaling up of the number of responding devices to meet demand.
  • a second known method for attempting to deliver information to a relatively large number of clients is to use a prearranged schedule for transmission of content. Clients then select to receive transmissions at the scheduled times. Thus, the service aggregates demand into a prearranged schedule that is convenient for the server. In an Internet protocol (IP) network this can be achieved using IP multicast, so that information can be duplicated by each router, conserving resources. Standard television broadcasting also fits this model of information delivery. While this known method generally achieves the result of delivering information to a plurality of clients, it is still subject to several drawbacks. First, it is generally only applicable in dealing with live broadcasts of information where the end client has no control over the presentation. Secondly, devices and systems that use this method use relatively fixed schedules, and do not consider information regarding known and projected demand for content amongst the client population.
  • IP Internet protocol
  • the invention provides a method and system for transferring data from a source to a plurality of clients that is not subject to the drawbacks of the known art. This can be achieved by using both known and predicted/projected demand (herein referred to as "total demand") for content required at selected times in the future, selecting times earlier than when information is required and adaptively using transmission capacity, scheduling (i.e. timing of transmissions) and multicast grouping to deliver that information to a plurality of clients.
  • total demand both known and predicted/projected demand (herein referred to as "total demand") for content required at selected times in the future, selecting times earlier than when information is required and adaptively using transmission capacity, scheduling (i.e. timing of transmissions) and multicast grouping to deliver that information to a plurality of clients.
  • the invention provides an enabling technology for a wide variety of applications for delivery of content from a remote source to a plurality of clients, so as to obtain substantial advantages and capabilities that are novel and non-obvious in view of the known art. Examples described below primarily relate to the World Wide Web, but the invention is broadly applicable to many different types of systems in which delivery of preferred content is desired.
  • Figure 1 shows a block diagram of a portion of a system capable of transferring data from a source to a plurality of clients.
  • Figure 2 shows a process flow diagram of a method for operating a system as in figure 1.
  • client device includes any device taking on the role of a client in a client-server relationship (such as an HTTP web client and web server).
  • client devices can be individual physical devices; they can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof.
  • server device includes any device taking on the role of a server in a client-server relationship.
  • server devices must be individual physical devices; they can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof.
  • client and “server” refer to relationships between the client and the server, not necessarily to particular physical devices.
  • source server - A server that contains the originating copy of a piece of content.
  • scheduler An element that controls the transfer of data between all servers and clients in a network so as to optimally deliver content from a server to a client. It is responsible for determining the timing of transmissions and optionally the formation of multicast groups.
  • This projection can be achieved by using the characteristics of the content, the characteristics of the client population, and/or some combination of both.
  • total demand The combination of known demand amongst a client population for a given piece of content and anticipated/projected demand for content amongst a client population.
  • Future demand A general term meaning demand for content required at a collection of clients at some future time. Future demand could be anticipated demand, known demand, or total demand.
  • network resources A general term for any property of an information delivery network that is available in a limited quantity. For example; link bandwidth, server cache capacity, and server transmission capacity.
  • Adaptive scheduling a method which uses the total demand, as defined above, to schedule the delivery of a set of content to a set of clients while minimizing the consumption of network resources.
  • Figure 1 shows a block diagram of a portion of a system capable of transferring data from a source to a plurality of clients.
  • a system 100 includes a set of source servers 110, a set of destination devices (called herein “clients”) 120, a communication network 130, and a scheduler 140.
  • Each server 110 is coupled to the communication network 130, and includes a processor, program and data memory, and mass storage, collectively disposed to maintain information content 111.
  • the server 110 is capable of providing at least some portion of the content 111 in response to a request.
  • each client 120 is coupled to the communication network 130, and includes a processor, program and data memory, and mass storage. The elements of each client 120 are collectively disposed to receive content 111, such as in response to a request.
  • content 111 that is presumed to include information that is relatively static (although the content 111 might be updated in response to time or in response to external events).
  • content 111 may be dynamically generated, such as in response to a state of a measurable system (such as for example telemetry or object-location circuits), in response to information in a database (such as for example stock prices or goods available for delivery), or in response to some combination or conjunction thereof.
  • the communication network 130 includes a store-and-forward network such as the Internet.
  • the communication network 130 may include alternative forms of communication, such as an intranet, extranet, virtual private network, private or public switched network (such as a satellite or telephone system), direct communication links, or some other combination or conjunction thereof.
  • the scheduler 140 controls each server 110 and client 120 connected to the communication network 130.
  • the communication network 130 could itself be capable of receiving instructions from the scheduler 140 regarding sending, timing, or multicast or broadcast of information within the communication network 130.
  • the communication network 130 may include any number of intermediate servers (not shown, but understood by one skilled in the art). These intermediate servers would function between the set of source servers 110 and the set of clients 120.
  • the scheduler 140 is coupled to the communication network 130, and includes a processor, program and data memory, and mass storage, collectively disposed to perform the functions described herein.
  • the scheduler 140 includes a first input port 141, capable of receiving future demand information 142 regarding the communication network 130.
  • future demand information 142 mcludes an identification of which portion of the content 111 (in a preferred embodiment, which of the elements forming a portion of the content 111) are intended to be delivered to which clients 120 by which times.
  • the indicated times might be absolute time values (such as known time stamps), or might be relative time values (such as known offsets from a present time).
  • future demand information 142 might include either known demand information 143, which would refer to specific requests for at least a portion of the content 111 to be delivered to specific clients 120 at specific future times.
  • the schedule might glean future demand information 142 from requests by a set of clients 120 to receive a movie or other information scheduled to be available at a known future time. The scheduler can then time delivery of the movie or other information and form multicast groups to "optimally" deliver the movie to the set of clients 120.
  • future demand information 142 might include anticipated demand information 144, which would refer to predicted likely requests for at least a portion of the content 111 to be delivered at predicted future times.
  • the scheduler 140 determines a best prediction for anticipated demand information 144 in response to characteristics of the content 111, characteristics of clients 120, or characteristics of some combination or conjunction thereof.
  • the scheduler 140 might determine anticipated demand information 144 in response to that information alone.
  • the scheduler 140 might determine anticipated demand information 144 in response to the combination of those two facts.
  • the scheduler 140 might determine anticipated demand information 144 in , response to that information alone.
  • sending and receiving of information between servers 110 and clients 120 may be adjusted by the scheduler 140 using the communication network 130 to optimize a selected objective measure.
  • the scheduler does not send or receive any of the information passing between the servers 110 and clients 120.
  • the scheduler 140 controls the servers and clients to adjust when information is sent in the communication network 130. Multicast grouping is controlled via the clients and servers.
  • Future demand information 142 input to the scheduler 140 represents anticipated and predicted demand for a set of future times, rather than a present time. Accordingly, the scheduler 140 can adjust timing of information delivery from servers 110, such as to times prior to when the information is actually needed at the client 120. Moreover, when timing of information delivery can be adjusted, the scheduler 140 can adjust multicast grouping to make optimal use of multicast delivery of information within the communication network 130.
  • the scheduler 140 can receive requests to deliver a particular set of data (such as an online book containing hundreds of pages) to a relatively large number of clients 120. Without multicast grouping, the mere number of such requests might have the effect of overloading the server 110 having that portion of content 111. However, the scheduler 140, if it receives these requests in good time, can construct one or more multicast groups to allow the server 110 having that portion of content 111 to deliver the set of data to all interested clients 120 without undue load.
  • a particular set of data such as an online book containing hundreds of pages
  • the scheduler 140 can be disposed to optimize to one or more of a set of different functions. For several examples, the scheduler 140 can attempt to optimize to one or more of, or some combination of, the following.
  • the scheduler 140 can attempt to minimize total cost of sending information from servers 110 to clients 120.
  • the scheduler 140 can attempt to maximize throughput (or to maximize bandwidth efficiency, or to minimize latency) in the communication network 130.
  • the scheduler 140 can attempt to minimize total cost of sending information from servers 110 to clients 120.
  • the scheduler 140 can alternatively or in addition attempt to minimize a difference between cost of sending information to clients 120 and a monetary value of those deliveries to those clients 120.
  • Figure 2 shows a process flow diagram of a method for operating a system as in figure 1.
  • a method 200 includes a set of flow points and a set of steps.
  • the system 100 performs the method 200.
  • the steps of the method 200 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 200 be performed in the same order in which this description lists the steps, except where so indicated.
  • the system 100 is in a quiescent state, and is ready to receive future demand information 142 regarding the communication network 130.
  • the system 100 includes one or more servers 110 maintaining selected information for delivery upon request, and includes one or more clients 120 capable of requesting that selected information in response to activity local to those particular clients 120 (such as user action).
  • the scheduler 140 receives future demand information
  • the scheduler 140 receives the future demand information 142 from one or more of, or some combination of, the following sources.
  • the scheduler 140 can receive future demand information 142 from one or more servers 110. Each server 110 can determine future demand information
  • Each server 110 might determine known demand information 143 in response to request messages or information messages from one or more clients 120.
  • Each server 110 might determine anticipated demand information 144 in response to information messages from one or more clients 110, in response to statistical information regarding past demand experience at that server 110, or some combination or conjunction thereof.
  • the scheduler 140 can receive future demand information 142 from one or more clients 120. Each client 120 can determine future demand information 142 in response to known demand information 143 or in response to anticipated demand information 144. Each client 120 might determine known demand information 143 in response to local activity responsible for generating request messages from that particular client 120 to one or more servers 110. Each client 120 might determine anticipated demand information 144 in response to local activity of similar nature, in response to statistical information regarding past demand experience from that client 120, or some combination or conjunction thereof.
  • the scheduler 140 determines an optimal schedule which includes timing of information transfer, and grouping of transfers into multicasts for each of the servers and clients in the network, so as to satisfy future demand. As a part of this step the scheduler 140 attempts to optimize one or more functions as described with regard to figure 1.
  • the scheduler 140 can be configured to optimize delivery based on a plethora of criteria (for example, minimizing costs and maximizing use of available bandwidth).
  • the scheduler 140 (utilizing control information 146) directs servers 110, clients 120, and routers or switches in the communication network 130 to perform information transfers at selected times earlier than actual requests, so as to best satisfy the determination of the just-prior step.
  • the servers 110, clients 120, and routers or switches in the communication network 130 perform the information transfers directed by the scheduler, at the selected times (earlier than actual requests) selected by the scheduler 140.
  • the servers 110 and clients 120 maintain transferred information at receiving elements until the actual requests for information transfer are made.
  • the clients 120 deliver transferred information to receiving software elements when the actual requests for information transfer are made.
  • the system 100 is in a quiescent state, and is ready to repeat the steps between the flow point 210 and the flow point 217.
  • the invention has general applicability to various fields of use, not necessarily related to the services described above.
  • these fields of use can include one or more of, or some combination of, the following: •
  • the invention is generally applicable to methods and systems where information is desired to be transferred at a time other than the time that information is requested, so that the information transfer is "time shifted" from the information request.

Abstract

The invention provides a technique for transferring data from a source to a relatively large number of clients that is not subject to the drawbacks of the known art. This can be achieved by using both known and predicted demand for content required at selected times in the future, selecting times earlier than when information is required and adaptively using transmission capacity, schedulijg (i.e. timing of transmissions) and multicast grouping to deliver that information to a plurality of clients.

Description

ADAPTIVE PREDICTIVE DELIVERY OF INFORMATION
Background of the Invention
1. Field of the Invention
This invention relates to adaptive predictive delivery of information, including delivery of information at a time earlier than the information is requested, such as for use in an internetworking environment.
2. Related Art
In the World Wide Web, client devices (also called "web browsers") make requests for information from server devices (also called "web sites"), receive that information from the server devices, and deliver that information at those client devices to end-users. One problem when using the World Wide Web is that a rate of transfer of information from the server to the client is sometimes much less than desired. This problem is particularly acute when information to be transferred is requested at or about the same time by a relatively large number of clients.
A first known method is to deliver information to a relatively large number of clients on demand (i.e. immediately in response to a client request). This can be achieved by trying to respond to each demand individually. Devices and systems using this known method include mirrored web servers. While this known method generally achieves the result of delivering information more rapidly at a plurality of clients, it is still subject to several drawbacks. First, devices and systems using this method must have the information they deliver coordinated, so that when requested information is identical when served by any mirrored server. Second, devices and systems using this method use significant information transmittal capacity when relatively large numbers of clients request the same information which often requires scaling up of the number of responding devices to meet demand.
A second known method for attempting to deliver information to a relatively large number of clients is to use a prearranged schedule for transmission of content. Clients then select to receive transmissions at the scheduled times. Thus, the service aggregates demand into a prearranged schedule that is convenient for the server. In an Internet protocol (IP) network this can be achieved using IP multicast, so that information can be duplicated by each router, conserving resources. Standard television broadcasting also fits this model of information delivery. While this known method generally achieves the result of delivering information to a plurality of clients, it is still subject to several drawbacks. First, it is generally only applicable in dealing with live broadcasts of information where the end client has no control over the presentation. Secondly, devices and systems that use this method use relatively fixed schedules, and do not consider information regarding known and projected demand for content amongst the client population.
Accordingly, it would be advantageous to provide a technique for transferring data from a source to a relatively large number of clients, that is not subject to the drawbacks of the known art. This can be achieved by using both known and predicted demand for content required at selected times in the future, selecting times earlier than when information is required and adaptively using transmission capacity, scheduling (i.e. timing of transmissions) and multicast grouping to deliver that information to a plurality of clients. Thus, reducing the total consumption of resources required to deliver a given content to all requesting clients and to deliver all content to all requesting clients.
Summary of the Invention
The invention provides a method and system for transferring data from a source to a plurality of clients that is not subject to the drawbacks of the known art. This can be achieved by using both known and predicted/projected demand (herein referred to as "total demand") for content required at selected times in the future, selecting times earlier than when information is required and adaptively using transmission capacity, scheduling (i.e. timing of transmissions) and multicast grouping to deliver that information to a plurality of clients.
The invention provides an enabling technology for a wide variety of applications for delivery of content from a remote source to a plurality of clients, so as to obtain substantial advantages and capabilities that are novel and non-obvious in view of the known art. Examples described below primarily relate to the World Wide Web, but the invention is broadly applicable to many different types of systems in which delivery of preferred content is desired.
Brief Description of the Drawings
Figure 1 shows a block diagram of a portion of a system capable of transferring data from a source to a plurality of clients.
Figure 2 shows a process flow diagram of a method for operating a system as in figure 1.
Detailed Description of the Preferred Embodiment
In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. Embodiments of the invention can be implemented using general-purpose processors or special purpose processors operating under program control, or other circuits, adapted to particular process steps and data structures described herein. Implementation of the process steps and data structures described herein would not require undue experimentation or further invention. Lexicography
The following terms refer or relate to aspects of the invention as described below. The descriptions of general meanings of these terms are not intended to be limiting, only illustrative.
• client device, server device - In general, the phrase "client device" includes any device taking on the role of a client in a client-server relationship (such as an HTTP web client and web server). There is no particular requirement that client devices must be individual physical devices; they can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof. Similarly, the phrase "server device" includes any device taking on the role of a server in a client-server relationship. There is no particular requirement that server devices must be individual physical devices; they can each be a single device, a set of cooperating devices, a portion of a device, or some combination thereof.
• client, server - In general, the terms "client" and "server" refer to relationships between the client and the server, not necessarily to particular physical devices.
• source server - A server that contains the originating copy of a piece of content.
• scheduler - An element that controls the transfer of data between all servers and clients in a network so as to optimally deliver content from a server to a client. It is responsible for determining the timing of transmissions and optionally the formation of multicast groups.
• anticipated demand - Projected demand for content amongst a client population. This projection can be achieved by using the characteristics of the content, the characteristics of the client population, and/or some combination of both.
• known demand - Demand for content which has been explicitly expressed by a client.
total demand - The combination of known demand amongst a client population for a given piece of content and anticipated/projected demand for content amongst a client population.
future demand - A general term meaning demand for content required at a collection of clients at some future time. Future demand could be anticipated demand, known demand, or total demand.
• multicast - A general term for any method that sends content from a source to multiple destinations.
• network resources - A general term for any property of an information delivery network that is available in a limited quantity. For example; link bandwidth, server cache capacity, and server transmission capacity.
• Adaptive scheduling - a method which uses the total demand, as defined above, to schedule the delivery of a set of content to a set of clients while minimizing the consumption of network resources.
As noted above, these descriptions of general meanings of these terms are not intended to be limiting, only illustrative. Other and further applications of the invention, including extensions of these terms and concepts, would be clear to those of ordinary skill in the art after perusing this application. These other and further applications are part of the scope and spirit of the invention, and would be clear to those of ordinary skill in the art, without further invention or undue experimentation. System Elements
Figure 1 shows a block diagram of a portion of a system capable of transferring data from a source to a plurality of clients.
A system 100 includes a set of source servers 110, a set of destination devices (called herein "clients") 120, a communication network 130, and a scheduler 140.
Each server 110 is coupled to the communication network 130, and includes a processor, program and data memory, and mass storage, collectively disposed to maintain information content 111. The server 110 is capable of providing at least some portion of the content 111 in response to a request.
Similar to each server 110, each client 120 is coupled to the communication network 130, and includes a processor, program and data memory, and mass storage. The elements of each client 120 are collectively disposed to receive content 111, such as in response to a request.
A preferred embodiment is described herein with regard to "content"
111 that is presumed to include information that is relatively static (although the content 111 might be updated in response to time or in response to external events). However, in alternative embodiments, content 111 may be dynamically generated, such as in response to a state of a measurable system (such as for example telemetry or object-location circuits), in response to information in a database (such as for example stock prices or goods available for delivery), or in response to some combination or conjunction thereof.
In a preferred embodiment, the communication network 130 includes a store-and-forward network such as the Internet. In alternative embodiments, the communication network 130 may include alternative forms of communication, such as an intranet, extranet, virtual private network, private or public switched network (such as a satellite or telephone system), direct communication links, or some other combination or conjunction thereof. In general, the scheduler 140 controls each server 110 and client 120 connected to the communication network 130. In an alternate embodiment the communication network 130 could itself be capable of receiving instructions from the scheduler 140 regarding sending, timing, or multicast or broadcast of information within the communication network 130.
Additionally, in alternate embodiments of the invention, it is contemplated that the communication network 130 may include any number of intermediate servers (not shown, but understood by one skilled in the art). These intermediate servers would function between the set of source servers 110 and the set of clients 120.
Similar to each server 110, the scheduler 140 is coupled to the communication network 130, and includes a processor, program and data memory, and mass storage, collectively disposed to perform the functions described herein.
The scheduler 140 includes a first input port 141, capable of receiving future demand information 142 regarding the communication network 130. As noted herein, future demand information 142 mcludes an identification of which portion of the content 111 (in a preferred embodiment, which of the elements forming a portion of the content 111) are intended to be delivered to which clients 120 by which times. The indicated times might be absolute time values (such as known time stamps), or might be relative time values (such as known offsets from a present time).
As noted herein, future demand information 142 might include either known demand information 143, which would refer to specific requests for at least a portion of the content 111 to be delivered to specific clients 120 at specific future times. For example, the schedule might glean future demand information 142 from requests by a set of clients 120 to receive a movie or other information scheduled to be available at a known future time. The scheduler can then time delivery of the movie or other information and form multicast groups to "optimally" deliver the movie to the set of clients 120.
Alternatively, future demand information 142 might include anticipated demand information 144, which would refer to predicted likely requests for at least a portion of the content 111 to be delivered at predicted future times. In a preferred embodiment, the scheduler 140 determines a best prediction for anticipated demand information 144 in response to characteristics of the content 111, characteristics of clients 120, or characteristics of some combination or conjunction thereof.
• For a first example, if a specific portion of the content 111 includes a very popular movie, the scheduler 140 might determine anticipated demand information 144 in response to that information alone.
For a second example, if a specific portion of the content 111 includes a Horror movie and a specific client 120 is known by the scheduler 140 to like horror movies, the scheduler 140 might determine anticipated demand information 144 in response to the combination of those two facts.
For a third example, if a specific client 120 is known by the scheduler 140 to be in a specific time zone where the content 111 will be delivered at 3 :00 a.m., the scheduler 140 might determine anticipated demand information 144 in , response to that information alone.
In a preferred embodiment, sending and receiving of information between servers 110 and clients 120 may be adjusted by the scheduler 140 using the communication network 130 to optimize a selected objective measure. The scheduler, however 140, does not send or receive any of the information passing between the servers 110 and clients 120. The scheduler 140 controls the servers and clients to adjust when information is sent in the communication network 130. Multicast grouping is controlled via the clients and servers.
Future demand information 142 input to the scheduler 140 represents anticipated and predicted demand for a set of future times, rather than a present time. Accordingly, the scheduler 140 can adjust timing of information delivery from servers 110, such as to times prior to when the information is actually needed at the client 120. Moreover, when timing of information delivery can be adjusted, the scheduler 140 can adjust multicast grouping to make optimal use of multicast delivery of information within the communication network 130.
For example, the scheduler 140 can receive requests to deliver a particular set of data (such as an online book containing hundreds of pages) to a relatively large number of clients 120. Without multicast grouping, the mere number of such requests might have the effect of overloading the server 110 having that portion of content 111. However, the scheduler 140, if it receives these requests in good time, can construct one or more multicast groups to allow the server 110 having that portion of content 111 to deliver the set of data to all interested clients 120 without undue load.
The scheduler 140 can be disposed to optimize to one or more of a set of different functions. For several examples, the scheduler 140 can attempt to optimize to one or more of, or some combination of, the following.
• Having been given a model of network link costs, the scheduler 140 can attempt to minimize total cost of sending information from servers 110 to clients 120.
• Having been given a model of bandwidth and latency between sub-elements of the communication network 130, the scheduler 140 can attempt to maximize throughput (or to maximize bandwidth efficiency, or to minimize latency) in the communication network 130.
• Having been given a model of financial cost for early delivery, on-time delivery, and late delivery of information, the scheduler 140 can attempt to minimize total cost of sending information from servers 110 to clients 120. The scheduler 140 can alternatively or in addition attempt to minimize a difference between cost of sending information to clients 120 and a monetary value of those deliveries to those clients 120.
Method of Operation
Figure 2 shows a process flow diagram of a method for operating a system as in figure 1.
A method 200 includes a set of flow points and a set of steps. The system 100 performs the method 200. Although the method 200 is described serially, the steps of the method 200 can be performed by separate elements in conjunction or in parallel, whether asynchronously, in a pipelined manner, or otherwise. There is no particular requirement that the method 200 be performed in the same order in which this description lists the steps, except where so indicated.
At a flow point 210, the system 100 is in a quiescent state, and is ready to receive future demand information 142 regarding the communication network 130. As part of this quiescent state, the system 100 includes one or more servers 110 maintaining selected information for delivery upon request, and includes one or more clients 120 capable of requesting that selected information in response to activity local to those particular clients 120 (such as user action).
At a step 211, the scheduler 140 receives future demand information
142 regarding the communication network 130. As part of this step, in a preferred embodiment, the scheduler 140 receives the future demand information 142 from one or more of, or some combination of, the following sources.
• The scheduler 140 can receive future demand information 142 from one or more servers 110. Each server 110 can determine future demand information
142 in response to known demand information 143 or in response to anticipated demand information 144. Each server 110 might determine known demand information 143 in response to request messages or information messages from one or more clients 120. Each server 110 might determine anticipated demand information 144 in response to information messages from one or more clients 110, in response to statistical information regarding past demand experience at that server 110, or some combination or conjunction thereof.
• The scheduler 140 can receive future demand information 142 from one or more clients 120. Each client 120 can determine future demand information 142 in response to known demand information 143 or in response to anticipated demand information 144. Each client 120 might determine known demand information 143 in response to local activity responsible for generating request messages from that particular client 120 to one or more servers 110. Each client 120 might determine anticipated demand information 144 in response to local activity of similar nature, in response to statistical information regarding past demand experience from that client 120, or some combination or conjunction thereof.
At a step 212, the scheduler 140 determines an optimal schedule which includes timing of information transfer, and grouping of transfers into multicasts for each of the servers and clients in the network, so as to satisfy future demand. As a part of this step the scheduler 140 attempts to optimize one or more functions as described with regard to figure 1. The scheduler 140 can be configured to optimize delivery based on a plethora of criteria (for example, minimizing costs and maximizing use of available bandwidth).
At a step 213, the scheduler 140 (utilizing control information 146) directs servers 110, clients 120, and routers or switches in the communication network 130 to perform information transfers at selected times earlier than actual requests, so as to best satisfy the determination of the just-prior step.
At a step 214, the servers 110, clients 120, and routers or switches in the communication network 130 perform the information transfers directed by the scheduler, at the selected times (earlier than actual requests) selected by the scheduler 140.
At a step 215, the servers 110 and clients 120 maintain transferred information at receiving elements until the actual requests for information transfer are made.
At a step 216, the clients 120 deliver transferred information to receiving software elements when the actual requests for information transfer are made.
At a flow point 217, the system 100 is in a quiescent state, and is ready to repeat the steps between the flow point 210 and the flow point 217.
Generality of the Invention
The invention has general applicability to various fields of use, not necessarily related to the services described above. For example, these fields of use can include one or more of, or some combination of, the following: • The invention is generally applicable to methods and systems where information is desired to be transferred at a time other than the time that information is requested, so that the information transfer is "time shifted" from the information request.
• The methods employed are equally applicable to wireless networks, cabled networks, and satellite networks.
Other and further applications of the invention in its most general form, will be clear to those skilled in the art after perusal of this application, and are within the scope and spirit of the invention.
Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.
Alternative Embodiments
Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.

Claims

Claims
1. A method including; determining a measure of future demand; optimizing total network resource consumption in response to said measure; and delivering, using optimized consumption, content from source servers to clients.
2. A method of claim 1, wherein said determining is accomplished by one or more server devices.
3. A method of claim 2, wherein said server determines future demand in response to known demand information.
4. A method of claim 2, wherein said server determines future demand in response to anticipated demand information.
5. A method of claim 2, wherein said server determines future demand from total demand.
6. A method of claim 2, wherein said server determines known demand information in response to request messages.
7. A method of claim 2, wherein said server determines known demand information in response to information from one or more clients.
8. A method of claim 2, wherein said server determines demand information in response to statistical information regarding past demand experience at said server.
. A method of claim 1, wherein said determining is accomplished by one or more client devices.
10. A method of claim 9, wherein said client determines future demand in response to known demand information.
11. A method of claim 9, wherein said client determines future demand in response to anticipated demand information.
12. A method of claim 2, wherein said client determines future demand from total demand.
13. A method of claim 9, wherein said client determines known demand information in response to request messages originating from said client to one or more servers.
14. A method of claim 9, wherein said client determines demand information in response to statistical information regarding past demand experience at said client.
15. A method of claim 1, wherein said optimizing is performed by a scheduling module.
16. A method of claim 15, wherein said optimizing is based on a plurality of user-selectable criteria.
17. A method of claim 1, wherein said delivery uses multicasting to simultaneously deliver content to a plurality of clients.
18. A method of claim 1, wherein said content is cached in the home.
19. An apparatus including; means for determining a measure of future demand; means for optimizing total network resource consumption in response to said measure; and means for delivering, using optimized consumption, content from source servers to clients.
20. The apparatus of claim 19, wherein said means of determining is accomplished by one or more server means.
21. The apparatus of claim 20, wherein said server means determines future demand in response to known demand information.
22. The apparatus of claim 20, wherein said server means determines future demand in response to anticipated demand information.
23. The apparatus of claim 20, wherein said server means determines future demand from total demand.
24. The apparatus of claim 20, wherein said server means determines known demand information in response to request messages.
25. The apparatus of claim 20, wherein said server means determines known demand information in response to information from one or more clients.
26. The apparatus of claim 20, wherein said server means determines demand information in response to statistical information regarding past demand experience at said server.
27. The apparatus of claim 19, wherein said means for determining is accomplished by one or more client means.
28. The apparatus of claim 27', wherein said client means determines future demand in response to known demand information.
29. The apparatus of claim 27, wherein said client means determines future demand in response to anticipated demand information.
30. The apparatus of claim 27, wherein said client means determines future demand from total demand.
31. The apparatus of claim 27, wherein said client means determines known demand information in response to request messages originating from said client to one or more servers.
32. The apparatus of claim 27, wherein said client means deteπnines demand information in response to statistical information regarding past demand experience at said client.
33. The apparatus of claim 19, wherein said means for optimizing is performed by a scheduling module.
34. The apparatus of claim 32, wherein said means for optimizing is based on a plurality of user-selectable criteria.
35. The apparatus of claim 19, wherein said means for delivery uses multicasting to simultaneously deliver content to a plurality of clients.
36. The apparatus of claim 19, wherein said content is cached in the home.
PCT/US2001/031316 2000-10-04 2001-10-04 Adaptive predictive delivery of information WO2002030088A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002213046A AU2002213046A1 (en) 2000-10-04 2001-10-04 Adaptive predictive delivery of information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68438400A 2000-10-04 2000-10-04
US09/684,384 2000-10-04

Publications (2)

Publication Number Publication Date
WO2002030088A1 true WO2002030088A1 (en) 2002-04-11
WO2002030088B1 WO2002030088B1 (en) 2002-07-25

Family

ID=24747822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/031316 WO2002030088A1 (en) 2000-10-04 2001-10-04 Adaptive predictive delivery of information

Country Status (2)

Country Link
AU (1) AU2002213046A1 (en)
WO (1) WO2002030088A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464058B2 (en) 2003-02-07 2008-12-09 Broadon Communications Corp. System and method for generating new licenses
CN100488106C (en) * 2003-10-17 2009-05-13 中国科学院计算技术研究所 Adaptive service quality ensuring method in multi-playing environment
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
CN101355461B (en) * 2008-09-05 2010-08-18 北京邮电大学 Self-adapting measuring apparatus and self-adapting measuring method
US8200961B2 (en) 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8856513B2 (en) 2006-11-09 2014-10-07 Acer Cloud Technology, Inc. Programming on-chip non-volatile memory in a secure processor using a sequence number
US9646142B2 (en) 2003-02-07 2017-05-09 Acer Cloud Technology Inc. Ensuring authenticity in a closed content distribution system
CN107707926A (en) * 2017-03-09 2018-02-16 贵州白山云科技有限公司 A kind of live TV stream transmission method, device and system
US10664575B2 (en) 2006-05-02 2020-05-26 Acer Cloud Technology, Inc. Virtual vault of licensed content

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NONNENMACHER J ET AL: "ASYNCHRONOUS MULTICAST PUSH: AMP", ICCC'97. 13TH INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION. KEYS TO A MATURE INFORMATION SOCIETY. CANNES, NOV. 18 - 21 1997, PROCEEDINGS OF INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION, [S.L.]: [S.N], vol. CONF. 13, 18 November 1997 (1997-11-18), pages 419 - 430, XP000753920, ISBN: 2-7261-1104-1 *
RODRIGUEZ P ET AL: "Improving the WWW: caching or multicast?", COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 30, no. 22-23, 25 November 1998 (1998-11-25), pages 2223 - 2243, XP004152174, ISSN: 0169-7552 *
WANG Z ET AL: "Prefetching in World Wide Web", GLOBAL TELECOMMUNICATIONS CONFERENCE, 1996. GLOBECOM '96. 'COMMUNICATIONS: THE KEY TO GLOBAL PROSPERITY LONDON, UK 18-22 NOV. 1996, NEW YORK, NY, USA,IEEE, US, 18 November 1996 (1996-11-18), pages 28 - 32, XP010220168, ISBN: 0-7803-3336-5 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US7464058B2 (en) 2003-02-07 2008-12-09 Broadon Communications Corp. System and method for generating new licenses
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US9646142B2 (en) 2003-02-07 2017-05-09 Acer Cloud Technology Inc. Ensuring authenticity in a closed content distribution system
US9985781B2 (en) 2003-02-07 2018-05-29 Acer Cloud Technology, Inc. Ensuring authenticity in a closed content distribution system
US10263774B2 (en) 2003-02-07 2019-04-16 Acer Cloud Technology, Inc. Ensuring authenticity in a closed content distribution system
CN100488106C (en) * 2003-10-17 2009-05-13 中国科学院计算技术研究所 Adaptive service quality ensuring method in multi-playing environment
US10664575B2 (en) 2006-05-02 2020-05-26 Acer Cloud Technology, Inc. Virtual vault of licensed content
US10733271B2 (en) 2006-05-02 2020-08-04 Acer Cloud Technology, Inc. Systems and methods for facilitating secure streaming of electronic gaming content
US8856513B2 (en) 2006-11-09 2014-10-07 Acer Cloud Technology, Inc. Programming on-chip non-volatile memory in a secure processor using a sequence number
US9881182B2 (en) 2006-11-09 2018-01-30 Acer Cloud Technology, Inc. Programming on-chip non-volatile memory in a secure processor using a sequence number
US8200961B2 (en) 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
CN101355461B (en) * 2008-09-05 2010-08-18 北京邮电大学 Self-adapting measuring apparatus and self-adapting measuring method
CN107707926A (en) * 2017-03-09 2018-02-16 贵州白山云科技有限公司 A kind of live TV stream transmission method, device and system

Also Published As

Publication number Publication date
AU2002213046A1 (en) 2002-04-15
WO2002030088B1 (en) 2002-07-25

Similar Documents

Publication Publication Date Title
US6377972B1 (en) High quality streaming multimedia
US5940391A (en) Method and apparatus for reconfigurable and adaptive stream multicast
TW563313B (en) Distributed multicast caching technique
Chawathe Scattercast: an adaptable broadcast distribution framework
US7133922B1 (en) Method and apparatus for streaming of data
Hua et al. Video delivery technologies for large-scale deployment of multimedia applications
US6286031B1 (en) Scalable multimedia distribution method using client pull to retrieve objects in a client-specific multimedia list
US6601107B1 (en) Adaptive fuzzy control of data acquisition and broadcasting
Aksoy et al. Research in data broadcast and dissemination
US7627549B1 (en) Methods and systems for transferring data over electronics networks
CN100571145C (en) Support network element, the receiving equipment of multicast and carry out the method that file transmits
JP2014059878A (en) Method and apparatus for distributing content
JP2007529073A (en) Cache server network and content file delivery scheduling method
US7051118B2 (en) Method and apparatus for anonymous subject-based addressing
US20020083193A1 (en) Parallel network data transmission
WO2002030088A1 (en) Adaptive predictive delivery of information
Chi et al. Deadline-aware network coding for video on demand service over P2P networks
JP2005018293A (en) Content delivery control device, content delivery control method and content delivery control program
Guo et al. Smooth workload adaptive broadcast
Wong et al. A preference clustering protocol for large-scale multicast applications
Guo et al. Seamless workload adaptive broadcast
Dakshayini et al. Client-to-client streaming scheme for vod applications
Chan et al. Tradeoff between system profit and user delay/loss in providing near video-on-demand service
Liu et al. Supporting low-cost video-on-demand in heterogeneous peer-to-peer networks
KR200244695Y1 (en) Network System with Web Accelerator

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP