1. Field
This disclosure generally relates to the field of data content. More particularly, the disclosure relates to the delivery of data content.
2. General Background
Content publishers and/or content distributors, hereafter referred to as content publishers, are entities that may publish various forms of media content such as movies, television shows, news, music, live concerts, or the like to end-users. For example, a content publisher such as a film studio or an online distributor may wish to deliver a movie to a large audience by streaming the movie to a video on demand service. To help facilitate the delivery of the media to the end-users, content publishers may wish to utilize a content delivery network (“CDN”). The CDN is a network that includes a plurality of computing devices positioned at various nodes in the distribution network such that each node may maintain a copy of the media, or a link to the media. The CDN may then deliver the media to the end-users from those nodes.
Further, a CDN provider may provide a content publisher with access to the CDN so that the content publisher may deliver large volumes of media content to end-users via said CDN. As a result, content publishers may manage and deliver large quantities of data to the end-users without having to directly invest in delivery infrastructure. The CDNs may provide massive storage and bandwidth to deliver high concurrency with high quality of service (“QoS”). The cost inferred by CDN providers for utilization of the CDNs may vary dramatically at any given time as a result of broad fluctuations in CDN resource utilization; accordingly the fees charged by CDN providers to content publishers may vary. For example, a CDN may have heavy demand for bandwidth when a new movie is published for video on demand services for the first few days after release. During such peak times, consumption demand may be so high that a content publisher may have to utilize multiple CDN providers to ensure adequate coverage.
Currently, content publishers have to establish individual relationships with each CDN provider. The CDN providers typically offer pricing structures that scale with usage, for example based on storage, resulting network traffic, and consumption patterns. Content publishers may also leverage multiple CDN providers to distribute the same media in order to optimize the delivery of such media to a broad set of end users. However, the content publisher has no mechanism for efficiently managing which CDN provider is most economical to utilize at any given point in time, present or future. As a result, a selected CDN provider may be overburdened and is not as cost effective or as reliable as it would be during times of less consumption demand.
In one aspect of the disclosure, a computer program product is provided. The computer program product includes a computer readable medium having a computer readable program stored thereon. The computer readable program when executed on a computer causes the computer to compose an auction set of publisher parameters for content delivery of a set of data. In addition, the computer readable program when executed on the computer causes the computer to send the auction set of publisher parameters from a content publisher to an auction engine that provides a subset of the auction set of publisher parameters to one or more of a plurality of content network delivery providers. The computer readable program when executed on the computer also causes the computer to receive, from the auction engine, a selected bid based upon a bid selection process that evaluates a bid from each of the one or more of the plurality of content delivery network providers based upon the auction set of publisher parameters.
In another aspect of the disclosure, a process is provided. The process composes an auction set of publisher parameters for content delivery of a set of data. In addition, the process sends the auction set of publisher parameters from a content publisher to an auction engine that provides a subset of the auction set of publisher parameters to one or more of a plurality of content network delivery providers. The process also receives, from the auction engine, a selected bid based upon an automatic bid selection process that evaluates, with a processor, a bid from each of the one or more of the plurality of content delivery network providers based upon the auction set of publisher parameters.
In yet another aspect of the disclosure, a system is provided. The system includes a processor that composes an auction set of publisher parameters for content delivery of a set of data, sends the auction set of publisher parameters to an auction engine that provides a subset of the auction set of publisher parameters to one or more of a plurality of content network delivery providers, and receives, from the auction engine, a selected bid based upon an automatic bid selection process that evaluates a bid from each of the one or more of the plurality of content delivery network providers based upon the auction set of publisher parameters.
In another aspect of the disclosure, a computer program product is provided. The computer program product includes a computer readable medium having a computer readable program stored thereon. The computer readable program when executed on a computer causes the computer to receive, from an auction engine, a subset of an auction set of publisher parameters established by a content publisher for content delivery of a set of data. Further, the computer readable program when executed on the computer causes the computer to send a bid to the auction engine. In addition, the computer readable program when executed on the computer causes the computer to receive a notification from the auction engine upon selection of the bid. The selection of the bid is based upon a bid selection process that evaluates a bid from each of one or more of the plurality of content delivery network providers based upon the auction set of publisher parameters.
In yet another aspect of the disclosure, a process is provided. The process receives, from an auction engine, a subset of an auction set of publisher parameters established by a content publisher for content delivery of a set of data. Further, the process sends a bid to the auction engine. In addition, the process receives a notification from the auction engine upon selection of the bid. The selection of the bid is based upon an automatic bid selection process that evaluates, with a processor, a bid from each of one or more of the plurality of content delivery network providers based upon the auction set of publisher parameters.
In another aspect of the disclosure, a system is provided. The system includes a processor configured to receive, from an auction engine, a subset of an auction set of publisher parameters established by a content publisher for content delivery of a set of data, send a bid to the auction engine, and receive a notification from the auction engine upon selection of the bid. The selection of the bid is based upon an automatic bid selection process that evaluates a bid from each of one or more of the plurality of content delivery network providers based upon the auction set of publisher parameters.
In one aspect of the disclosure, a computer program product is provided. The computer program product includes a computer readable medium having a computer readable program stored thereon. The computer readable program when executed on a computer causes the computer to receive, at an auction engine, an auction set of publisher parameters for content delivery of a set of data from a content publisher. Further, the computer readable program when executed on the computer causes the computer to provide, from the auction engine, a subset of the auction set of publisher parameters to one or more of a plurality of content network delivery providers. In addition, the computer readable program when executed on the computer causes the computer to receive, at the auction engine, a bid from each of the one or more of the plurality of content network delivery providers. The computer readable program when executed on the computer also causes the computer to tabulate, at the auction engine, a score for each bid according to a plurality of weighting factors such that each weighting factor corresponds to each publisher parameter in the auction set of publisher parameters. Further, the computer readable program when executed on the computer causes the computer to select a bid according to a highest score. In addition, the computer readable program when executed on the computer causes the computer to provide notification to a corresponding content delivery network provider associated with the selected bid.
In yet another aspect of the disclosure, a process is provided. The process receives, at an auction engine, an auction set of publisher parameters for content delivery of a set of data from a content publisher. Further, the process provides, from the auction engine, a subset of the auction set of publisher parameters to one or more of a plurality of content network delivery providers. In addition, the process receives, at the auction engine, a bid from each of the one or more of the plurality of content network delivery providers. The process also tabulates, at the auction engine, a score for each bid according to a plurality of weighting factors such that each weighting factor corresponds to each publisher parameter in the auction set of publisher parameters. Further, the process automatically selects, with a processor, a bid according to a highest score. In addition, the process provides notification to a corresponding content delivery network provider associated with the selected bid.
In another aspect of the disclosure, a system is provided. The system includes a processor configured to receive, at an auction engine, an auction set of publisher parameters for content delivery of a set of data from a content publisher, provide, from the auction engine, a subset of the auction set of publisher parameters to one or more of a plurality of content network delivery providers, receive, at the auction engine, a bid from each of the one or more of the plurality of content network delivery providers, tabulate, at the auction engine, a score for each bid according to a plurality of weighting factors such that each weighting factor corresponds to each publisher parameter in the auction set of publisher parameters, automatically select a bid according to a highest score, and provide notification to a corresponding content delivery network provider associated with the selected bid.
The above-mentioned features of the present disclosure will become more apparent with reference to the following description taken in conjunction with the accompanying drawings wherein like reference numerals denote like elements and in which:
An automated auction system may be utilized to allow a content publisher to make CDN providers aware of upcoming storage and traffic requirements. In other words, a content publisher may project the size of the data and its anticipated consumption by end users. The CDN providers may then each evaluate their respective ability to provide content delivery based on the forecasted requirements of the content publisher. The various CDN providers may then provide bids to the automated auction system. As an example, a bid may stipulate a fee for the service, a list of features included in the service, an expiration date/time of the bid, and/or the like.
In one aspect, the automated auction system may have built-in logic that allows it to select a winning bid. Such logic may utilize parameters provided by the content publisher to the automated auction system. For example, a content publisher may set an automated threshold of what is acceptable for each feature, e.g., a maximum price. The set of content publisher parameters may be called the ask. The automated action system may then utilize its built-in logic to automatically determine which bids of the CDN providers, if any, meet the ask, i.e., the acceptable requirements of the content publisher. The automated auction system may then determine which of those CDN providers is the winning bid based on a scoring system and/or may send the acceptable bids to the content publisher for a final decision. Further, the automated auction system may provide a notification of the winning bid to the CDN provider with the winning bid.
It should be understood that the auction engine 108 may be implemented as one or more physical devices that are coupled to the processor 102. For example, the auction engine 108 may include a plurality of modules. Alternatively, the auction engine 108 may be represented by one or more software applications (or even a combination of software and hardware, e.g., using application specific integrated circuits (ASIC)), where the software is loaded from a storage medium, (e.g., a magnetic or optical drive, diskette, or non-volatile memory) and operated by the processor 102 in the memory 106 of the system 100. As such, the auction engine 108 (including associated data structures) of the present disclosure may be stored on a computer readable medium, e.g., RAM memory, magnetic or optical drive or diskette and the like.
The system 100 may be utilized to implement any of the configurations herein. In another aspect, the processor 102 is the auction engine 108. Accordingly, in such an aspect, an auction engine 108 that is separate from the processor 102 is unnecessary.
The auction engine 108 of the system 100 illustrated in
Further, the content publisher may interact with the auction engine 108 through a computing device 208. The computing device may be a personal computer (“PC”), laptop, smartphone, tablet device, set top box, or the like. The computing device 208 may be utilized by the content publisher 202 to input publisher parameters to the auction engine 108. For example, the publisher parameters may include a publisher projected set of storage requirements for the set of data, a publisher projected set of traffic requirements for the set of data, a QoS level guarantee, a reduced latency guarantee, a set of security requirements, a set of geographical requirements, a cost restriction, a service level agreement (“SLA”), a price threshold, and/or the like, and a list of preferred CDN providers. The terms QoS and SLA are defined as understood in the literature of data delivery over networks. Further, the content publisher 202 may select a subset of the publisher parameters that the auction engine 108 is allowed to provide to CDN providers. The remaining publisher parameters would not be provided to the CDN providers.
For example, the content publisher 202 may indicate that a publisher projected set of storage requirements for the set of data, a publisher projected set of traffic requirements for the set of data, a QoS level guarantee, a reduced latency guarantee, a set of security requirements, a set of geographical requirements, a cost restriction, and an SLA should be provided to the CDN providers. The remaining price threshold would not be provided to the CDN providers. For instance, the price threshold may be a reserve price, i.e., a maximum price that a bid has to meet. The content publisher 202 may not want the CDN providers to be aware of that reserve price during bidding.
In one aspect, the auction engine 108 may provide a notification to a CDN provider that a bid provided by the CDN provider has not met the reserve price. In another aspect, such notification may only inform the CDN provider that the bid has not met the reserve price without disclosing the reserve price. The CDN provider may then be given an opportunity to adjust its bid to attempt to meet the reserve price.
Further, the configuration 200 includes a plurality of CDN providers, e.g., a first CDN provider A 210, a second CDN provider B 212, a third CDN provider 214, a fourth CDN provider D 216, and a fifth CDN provider E 218. In one aspect, the CDN providers are unaware of other bids provided by the remaining CDN providers. Accordingly, each CDN provider interacts with the auction engine 108 based upon the information that the respective CDN provider has about its own capabilities and features. As a result, practical federation of resources between otherwise competing CDN providers may be achieved.
A particular CDN provider may have available storage space that meets the cost and space requirements of the content publisher 202 while another CDN provider may have the most cost effective backbone or last-mile capacity. Accordingly, each CDN provider may be able to win a bid for a project that most ideally matches its resource availability.
In another aspect, the auction engine 108 provides each CDN provider with the bids of the remaining CDN providers. As a result, each CDN provider may lower its respective bid and/or include improved features to compete with the other CDN providers.
In one aspect, the auction engine 108 may automatically modify the ask if no bid meets the ask. For example, the content publisher 202 may indicate a predetermined modification if no bid meets the ask. For instance, the content publisher may indicate that the price should automatically be reduced to fifty percent between the price of the ask and the price of the highest bid based upon no bid meeting the ask.
In another aspect, the auction engine 108 may modify the ask if no bid meets the ask based upon a manual input from the content publisher 202. For example, the auction engine 108 may send a message to the content publisher 202 indicating that no bid meets the ask and receive a message from the content publisher 202 indicating a modified ask.
For instance, the content publisher 202 may not want the CDN providers to be aware of the reserve price. The content publisher 202 may also indicate a list of preferred CDN providers, which indicates which CDN Providers the content publisher 202 is willing to accept bids from for a particular project. For instance, the content publisher 202 may want to only accept bids from particular CDN Providers from a particular geographic area, known capacity, and/or the like.
In one aspect, the content publisher 202 may establish a preference for manual bid selection upon at least two of the CDN providers having highest scores within a predetermined differential from each other. For example, two of the CDN providers may have the highest scores. If those scores are within a predetermined differential, e.g., five percent of each other, the auction engine 108 may send those bids to the content publisher 202 to perform a manual selection. The predetermined differential may be determined prior to the bidding process by the content publisher 202. Accordingly, the content publisher 202 may send the predetermined differential and an instruction for manual bid selection for the highest scores being within that predetermined differential to the auction engine 108 prior to bidding. In one aspect, manual bid selection may involve a human determination.
A variety of predetermined differentials may be utilized. The example of five percent is provided herein only as an example.
In one aspect, the process 400 determines that a baseline set of publisher parameters for content delivery of the set of data is unfulfilled by each of a plurality of CDN providers. Such determination may be a trigger for the process 400 to proceed from the process block 402 through the process bock 406 as illustrated in
Further,
In one aspect, the process 500 determines that a baseline set of publisher parameters for content delivery of the set of data is unfulfilled by each of the plurality of CDN providers. Such determination may be a trigger for the process 500 to proceed from the process block 502 through the process bock 506 as illustrated in
In addition,
In one aspect, the process 600 determines that a baseline set of publisher parameters for content delivery of the set of data is unfulfilled by each of a plurality of CDN providers. Such determination may be a trigger for the process 600 to proceed from the process block 602 through the process bock 610 as illustrated in
Any of the configurations provided herein may be utilized for unexpected changes in popularity or demand of content that involves an additional level of service to that of an accepted bid. For example, the auction engine 108 illustrated in
In another aspect, a temporal factor established by the content publisher 202 may be utilized by the auction engine 108 to determine a winning bid. For example, the auction engine 108 may select the bid that meets the ask and is the most quickly received as the winning bid. For instance, the content publisher 202 may have to obtain content delivery services very quickly and may not be able to wait for the auction engine 108 to determine which CDN provider better meets the ask than the others that meet the ask.
Accordingly, the various configurations provided for herein allow the content publisher 202 to establish a cost and resourcing requirement standard for a given set of content. Further, the various configurations allow CDN pricing and resource planning to be based on projected usage rather than on measured utilization. If the content publisher 202 did not forecast correctly, the CDN provider may utilize the measured utilization to correct any discrepancies.
The processes described herein may be implemented in a general, multi-purpose or single purpose processor. Such a processor will execute instructions, either at the assembly, compiled or machine-level, to perform the processes. Those instructions can be written by one of ordinary skill in the art following the description of the figures corresponding to the processes and stored or transmitted on a computer readable medium. The instructions may also be created using source code or any other known computer-aided design tool. A computer readable medium may be any medium capable of carrying those instructions and include a CD-ROM, DVD, magnetic or other optical disc, tape, silicon memory (e.g., removable, non-removable, volatile or non-volatile), packetized or non-packetized data through wireline or wireless transmissions locally or remotely through a network. A computer is herein intended to include any device that has a general, multi-purpose or single purpose processor as described above. For example, a computer may be a personal computer (“PC”), laptop, smartphone, tablet device, set top box, or the like.
It is understood that the apparatuses, systems, computer program products, and processes described herein may also be applied in other types of apparatuses, systems, computer program products, and processes. Those skilled in the art will appreciate that the various adaptations and modifications of the aspects of the apparatuses, systems, computer program products, and processes described herein may be configured without departing from the scope and spirit of the present apparatuses, systems, computer program products, and processes. Therefore, it is to be understood that, within the scope of the appended claims, the present apparatuses, systems, computer program products, and processes may be practiced other than as specifically described herein.