Abstract:
A parimutuel provision manager provides an efficient incentive mechanism for content provision on peer-to-peer systems. The parimutuel provision manager generates a wide diversity of content offerings while responding adaptively to customer demand. Files are served and paid for through a parimutuel market similar to that commonly used for betting in horse races. An analysis of the performance of such a system shows that there exists an equilibrium with a long tail in the distribution of content offerings, which guarantees the real time provision of any content regardless of its popularity.

Description:
CROSS-REFERENCE TO RELATED PATENT APPLICATION 
   This patent application claims priority under 35 U.S.C. §119 from U.S. provisional patent application No. 60/808,652 filed May 26, 2006 entitled “An Efficient and Adaptive System for Content Provision,” with inventors Bernardo Huberman and Fang Wu, and which is hereby incorporated by reference. 

   TECHNICAL FIELD 
   This invention pertains generally to efficient serving of content, and more specifically to utilizing parimutuel methodology to provision content in a distributed network environment such that all content is made available regardless of popularity. 
   BACKGROUND 
   The provision of digitized content on-demand to millions of users presents a formidable challenge. With an ever increasing number of fixed and mobile devices with video capabilities, and a growing consumer base with different preferences, there is a need for a scalable and adaptive way of delivering a diverse set of files in real time to a worldwide consumer base. 
   These files should be accessible in such a way that the constraints posed by bandwidth and the diversity of demand is met without having to resort to client server architectures and specialized network protocols. This is addressed today by peer-to-peer networks, where each peer can be both a consumer and provider of a service. Peer-to-peer networks, unlike client server architectures, automatically scale in size as demand fluctuates. Furthermore, they are able to adapt to system failures. Examples of such systems are Bittorrent and Kazaa, which account for a sizable percentage of all the use of the Internet today. Furthermore, new services such as the British. Broadcasting Corporation Integrated Media Player show that it is possible to make media content available through a peer-to-peer system while still respecting digital rights. 
   However, providing such varied content presents a problem which peer-to-peer networks do not solve. Namely, as new content is created, the system ought to be able to swiftly respond to new demand on specific content, regardless of its popularity. This is a hard constraint on any distributed system, since providers with a finite amount of memory and bandwidth will tend to offer the most popular content, as is the case today with many peer-to-peer systems. 
   What is needed is an adaptable and efficient system and method, capable of robustly delivering any file, regardless of its popularity. 
   SUMMARY OF INVENTION 
   A parimutuel provision manager within a peer-to-peer system adaptably and efficiently delivers any file, regardless of its popularity. It does so by creating an incentive mechanism that ensures the existence of a diverse set of offerings which is in equilibrium with the available supply and demand, regardless of content and size. While the parimutuel provision manager delivers favorite mainstream content, it also provides files that are only of interest to small niche markets which only in the aggregate generate large revenues. 
   The parimutuel provision manager provides an efficient incentive mechanism for servers to store and serve files, thereby generating a wide diversity of content offerings while responding adaptively to customer demand. Files are served and paid for through a parimutuel market similar to that commonly used for betting on horse races. An analysis of the performance of such a system shows that there exists an equilibrium with a long tail in the distribution of content offerings, which guarantees the real time provision of any content regardless of its popularity. The bandwidth committed to a file by a server comprises that server&#39;s wager on the file. The files themselves correspond to the horses in a race, the downloads correspond to the races, and the current fraction of total bandwidth devoted to a file (a function of the file&#39;s current popularity) determines the “odds” on that file. 
   The features and advantages described in this summary and in the following detailed description are not all-inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the relevant art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram illustrating a high level overview of a system for the operation of a parimutuel provision manager, according to one embodiment of the present invention. 
   

   The Figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein. 
   DETAILED DESCRIPTION 
     FIG. 1  illustrates an example of a peer-to-peer system  100  in which an embodiment of the present invention can operate. A parimutuel provision manager  101  provides incentives to a plurality of peers  103  to store and serve content  105  (e.g., files). Content providers  107  make files  105  available to the peers  103  to serve to other peers  103  in response to download requests  109 . It is to be understood that in a peer-to-peer environment, a peer  103  can act as a server  111  or a downloader  113 , and individual peers  103  typically act in both capacities. It is to be further understood that the files  105  can be digital representations of text, video, audio or any other format. 
   The parimutuel provision manager  101  maintains a listing  115  indicating the current popularity of files  105  available for download. The calculating of this popularity information by the parimutuel provision manager  101  is explained in detail below. The less popular a file  105 , the greater the incentive that the parimutuel provision manager  101  provides for serving it. As explained in detail below, the payoff for successfully serving a requested file  105  is determined in a manor similar to a parimutuel horse racing market, with the bandwidth committed to a file  105  as a server&#39;s  111  “wager,” the files  105  themselves corresponding to the horses in a race, the downloads Corresponding to the races, and the current fraction of total bandwidth devoted to a file  105  (a function of the file&#39;s  105  current popularity) determining the “odds” on that file  105 . 
   Servers  111  consult the listing  115  of current “odds,” and make decisions as to which files  105  to store and serve, and hence how much of their bandwidth to commit to which files  105 . The parimutuel provision manager  101  keeps track of this information  117 . Downloaders  113  send download requests  109  for desired files  105  to the parimutuel provision manager  101 , which returns a list  117  of peers  103  serving that file  105  (in other embodiments the parimutuel provision manager  101  can publish this information, and the downloaders  113  can make their requests  109  directly to the servers  111 ). The downloader  113  then downloads the desired file  105  accordingly. Each server  111  that participated in the download provides the parimutuel provision manager  101  with proof of having served their portion (percentage) of the file  105 . The parimutuel provision manager  101  charges the downloader  113  a fee, and calculates the division thereof to the various participating servers  111 . The basis for the calculation of this division is parimutuel in nature, and is described in detail below. The parimutuel provision manager  101  also updates its current popularity listing  115  to indicate the download, as the download affects the popularity of the file  105 . 
   It is to be understood that  FIG. 1  illustrates an example of a system  100  on which an embodiment of the present invention can execute, but as will be apparent to those of ordinary skill in the relevant art, many variations on the system  100  are possible and are within the scope of the present invention. For example, the illustrated components can be distributed in other ways and/or can be centralized or localized. The various computing devices illustrated are only examples, and different, more, or fewer computing devices are utilized in other embodiments. Although a peer-to-peer network is illustrated and described, it is to be understood that the present invention can be applied in any network context in which multiple servers  111  can store and serve files  105 , such that a download of a specific file  105  can be served by more than one server  111 . 
   It to be understood that although the parimutuel provision manager  101  is illustrated as a single entity, as the term is used herein a parimutuel provision manager  101  refers to a collection of functionalities which can be implemented as software, hardware, firmware or any combination of these. Where a parimutuel provision manager  101  is implemented as software, it can be implemented as a standalone program, but can also be implemented in other ways, for example as part of a larger program, as a plurality of separate programs, as a kernel loadable module, as one or more device drivers or as one or more statically or dynamically linked libraries. 
   To analyze the performance of such a system  100  according to one embodiment of the present invention, we first make a set of assumptions that are restrictive. We then relax these assumptions so as to make them correspond to a more realistic set of users. As shown below, in all these cases there exists an equilibrium in which the demand for any file  105  can be fulfilled by the parimutuel provision manager  101 . Moreover this equilibrium exhibits a robust empirical anomaly which is responsible for generating a very long tail in the distribution of content offerings. 
   Consider a network-based file  105  exchange system  100  consisting of three types of traders: content provider  107 , server  111 , and downloader  113  (e.g., user). A content provider  107  supplies, typically at a fixed price per file  105 , a repertoire of files  105  to a number of people acting as peers  103  or servers  111 . Servers  111  then selectively serve a subset of those files  105  to downloaders  113  for a given price. In a peer-to-peer system  100 , a downloader  113  can also, and often does, act as a server. 
   If the files  105  are typically large in size, a server  111  can only afford to store and serve a relatively small subset of files  105 . The server  111  then faces the natural problem of choosing an optimal (from the point of view of maximizing his utility) subset of files  105  to store so as to sell them to downloaders  113 . 
   Suppose that the system  100  charges each downloader  113  a flat fee for downloading any one file  105  (as per Apple&#39;s iTunes music store), which we normalize to one for clarity of discussion. Since many servers  111  can help distribute a single file  105 , this unit of income has to be allocated to the servers  111  in ways that will incentivize them to always respond to a changing demand. 
   In order to do so, consider the case where there are m servers  111  and n files  105 . Let b ij  be the effective bandwidth of server i serving file j, normalized to 
                     ∑     i   ,   j               ⁢           ⁢     b   ij       =   1.           (   1   )               
Also, denote the bandwidth fraction of file j by
 
   
     
       
         
           
             
               
                 
                   π 
                   j 
                 
                 = 
                 
                   
                     ∑ 
                     k 
                     
                         
                     
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       b 
                       kj 
                     
                     . 
                   
                 
               
             
             
               
                 ( 
                 2 
                 ) 
               
             
           
         
       
     
   
   Suppose that when a downloader  113  starts downloading different parts of the file  105  simultaneously from all available servers  111  that have it. When it finishes downloading, it will have received a fraction of the file j 
                     q       ij   ⁢           ⁢   ∞     ⁢               ⁢       b   ij         ∑   k             ⁢           ⁢     b   kj           =       b   ij       π   j               (   3   )               
from server i. According to an embodiment of the present invention, the parimutuel provision manager  101  pays an amount q ij  to server i as its reward for serving file j.
 
   Now consider the case when server i&#39;s reserves an amount of bandwidth b ij  as his “bid” on file j. Because we have normalized the total bandwidth and the total reward for serving one request  109  both to one, the proportional share allocation scheme described by Eq. (3) can be interpreted as redistributing the total bid to the “winners,” in proportion to their bids. Thus, the payoff structure is similar to that of a parimutuel horse race betting market, where the π j  can be regarded as the odds, the bandwidth corresponds to bettors, the files  105  to horses, and the requests  109  are analogous to races. 
   It is worth pointing out however, that in a real horse race all players who have placed a bet on the winning horse receive a share of the total prize, whereas in this embodiment of the present invention only those servers  111  that stored the “winning” file  105  and also had a chance to serve it get paid. In spite of this difference, when rewritten in terms of expected payoffs, the two mechanisms behave in similar fashion. 
   We now make three simplifying assumptions. While not necessarily realistic, they serve to set the framework that is utilized below to address more realistic scenarios. First, assume for now that every server  111  is rational in the sense that he chooses the optimal bandwidth allocation that maximizes his utility, whose explicit form will be given below. Second, assume every server&#39;s allocation strategy is static, i.e., the b ij &#39;s are independent of time. Third, assume that each file j is requested randomly at a rate λj&gt;0 that does not change with time, and these rates are known to every server. 
   Consider a server i with the following standard additive form of utility:
 
 U=E[∫   υ   ∞   e   −δ1   u ( t ) dt],   (4)
 
where u(t) is his income density at time t, and δ&gt;0 is his future discount factor. Let X j1  be the (random) time that file j is requested for the first time, let X j2  be the time elapsed between the first request  109  and the second request  109 , and so on. According to our parimutuel reward scheme, server i receives a lump-sum reward b ij /π j  from every such request  109 , at times X j1 , X j1 +X j2 , etc. Thus the server i&#39;s total utility is given by
 
                 U   =         ∑   j             ⁢           ⁢         b   ij       π   j       ⁢       ∑     i   =   1     ∞     ⁢           ⁢     E   ⁡     [     e       -   δ     ⁢       ∑     k   =   1     1     ⁢           ⁢     χ   jk           ]             ≡       ∑   j             ⁢           ⁢         b   ij       π   j       ⁢       u   j     .                   (   5   )               
The sum of expectations in Eq. (5) (denoted by u j ) can be calculated explicitly. Because the X jk &#39;s are independent identically-distributed random variables with density λ j     −1    exp(λ j     x   ) we have
 
                   u   j     =       E   ⁡     (     e       -   δ     ⁢           ⁢     X     j   ⁢           ⁢   1           )       ⁢     (     1   +       ∑     l   =   2     ∞     ⁢           ⁢     E   ⁡     [     e         -   δ     ⁢     ∑   k   l       ⁢           =       2   X     ⁢   jk         ]           )     ⁢       λ   j         λ   j     +   δ       ⁢       (     1   +     u   j       )     .               (   6   )               
Solving for u j , we then find
 
                   u   j     =         λ   j     δ     .             (   7   )               
If we lets λ=Σ j λ j  be the total request rate and p j =λ j /λ be the probability that the next request  109  asks for the file j, then we can also write
 
                   u   j     =       λ   δ     ⁢       p   j     .               (   8   )               
Plugging this back into Eq. (5), we obtain
 
                 U   =       λ   δ     ⁢       ∑   j             ⁢           ⁢           p   j     ⁢     b   ij         π   j       .                 (   9   )               
Since we assume that server i is rational, he will allocate b ij  in a way that it solves the following optimization problem:
 
   
     
       
         
           
             
               
                 
                   
                     
                       ( 
                       
                         b 
                         ij 
                       
                       ) 
                     
                     
                       j 
                       = 
                       1 
                     
                     n 
                   
                   ⁢ 
                   
                     
                       max 
                       
                         ɛ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           R 
                           1 
                           v 
                         
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         j 
                         
                             
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           
                             
                               ρ 
                               j 
                             
                             ⁢ 
                             
                               b 
                               ij 
                             
                           
                           
                             
                               Σ 
                               k 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               b 
                               kj 
                             
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         subject 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         to 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             ∑ 
                             j 
                             
                                 
                             
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             b 
                             ij 
                           
                         
                       
                     
                   
                 
                 ≤ 
                 
                   b 
                   i 
                 
               
             
             
               
                 ( 
                 10 
                 ) 
               
             
           
         
       
     
   
   Thus we see that the servers  111  play a finite budget resource allocation game. This type of game has been studied intensively, and a Nash equilibrium has been shown to exist under mild assumptions. In such an equilibrium, the players&#39; utility functions are strongly competitive and in spite of a possibly large utility gap, the players behave in almost envy-free fashion (i.e., each player believes that that no other player has received more than they have). 
   we now relax some of the assumptions made above so as to address a more realistic case. It is typically difficult to discern the accurate request rate for a given file  105 , especially at the early stages when there is no historical data available. Thus, it is better to assume that every server i holds a subjective belief about those request rates. Let p ij  be server i&#39;s subjective probability that the next request  109  is for file j. Then server i believes that file j will be requested at a rate λ ij =λ pij . Eq. (10) then becomes 
                       (     b   ij     )       j   =   1     n     ⁢       max     ɛ   ⁢           ⁢     R   1   v         ⁢       ∑   j             ⁢           ⁢           ρ   ij     ⁢     b   ij           Σ   k     ⁢           ⁢     b   kj         ⁢           ⁢   subject   ⁢           ⁢   to   ⁢           ⁢       ∑   j             ⁢           ⁢     b   ij               ≤       b   i     .             (   11   )               
which is still a finite budget resource allocation game as considered above.
 
   It is interesting to note that when m is large, b ij  is small compared to π j Σ k b kj , so that π j  can be treated as a constant. In this case, the optimization problem can be well approximated by 
                       (     b   ij     )       j   =   1     n     ⁢       max     ɛ   ⁢           ⁢     R   1   V         ⁢       ∑   j             ⁢           ⁢           ρ   ij     ⁢     b   ij         π   j       ⁢           ⁢   subject   ⁢           ⁢   to   ⁢           ⁢       ∑   j             ⁢           ⁢     b   ij               ≤     b   i             (   12   )               
Thus, server i should use all his bandwidth to serve those files  105  j with the largest ratio p ij /π j .
 
   This scenario (12) corresponds to the so-called parimutuel consensus problem, which has been studied in detail. In this problem a certain probability space is observed by a number of individuals, each of which endows it with their own subjective probability distributions. The issue then is how to aggregate those subjective probabilities in such a way that they represent a good consensus of the individual ones. The parimutuel consensus scheme is similar to that of betting on horses at a race, the final odds on a given horse being proportional to the amount bet on the horse. As has been shown by Eisenberg and Gale, an equilibrium then exists such that the bettors as a group maximize the weighted sum of logarithms of subjective expectations, with the weights being the total bet on each horse. 
   Moreover a number of empirical studies of parimutuel markets have shown that such markets do indeed exhibit a high correlation between the subjective probabilities of the bettors and the objective probabilities generated by the racetracks. Equally interesting is the existence of a robust empirical anomaly called the favorite-longshot bias. The anomaly shows that favorites win more frequently than the subjective probabilities imply, and longshots less often. Besides implying that favorites are better bets than long shots, this anomaly ensures the existence of the long tail, populated by those files  105  which, while not singly popular, in aggregate are responsible for a large amount of the traffic in the system  100 . 
   We now consider the case where the rate at which files  105  are requested can change with time. Because of this, each server  111  has to actively adjusts its bandwidth allocation to adapt to such changes. As we have seen above, server i has an incentive to serve those files  105  with large values of p ij /π j . Recall that π j (t) is just the fraction of total bandwidth spent to serve file j at time t, which can be estimated from information tracked by the parimutuel provision manager  101 . The parimutuel provision manager  101  makes current information  115  concerning file  105  popularity (i.e., the real-time π j  for each file  105 ) available to all servers  111 , so as to help them decide on how to adjust their own allocations of bandwidth. 
   From Eq. (3) we see that, by serving file j, server i&#39;s expected per bandwidth earning from the next request  109  is 
                       p   j     ⁢     q   ij         b   ij       =         p   j       π   j       .             (   13   )               
Hence a server  111  benefits most by serving those files  105  with the largest “p/π ratio”. However, as soon as a given server  111  starts serving file j, the corresponding p/π ratio decreases. As a consequence, the system  100  self-adapts to the limit of uniform p/π ratios. If the system  100  is perfectly efficient, we would expect that
 
                     p   i       π   j       =     constant   .             (   14   )               
Because p j  and π j  both sum up to one, this implies that
 π j =p j   (15) or 
                     ∑   k             ⁢           ⁢     b   kj       =         λ   j     λ     ⁢     αλ   j     ⁢     k   .               (   16   )               
In other words, the total bandwidth used to serve a file  105  is proportional to the file&#39;s  105  request rate.
 
   This result has interesting implications when considering the social utility of the downloaders  113 . Tewari and Kleinrock have shown that in a homogeneous network the average download time is minimized when 
               ∑   k             ⁢           ⁢     b   kj       =         λ   j     λ     ⁢     αλ   j     ⁢     k   .             
This implies that in the perfectly efficient limit, the pari-mutuel provision manager  101  maximizes the social utility of the downloaders  113 , which is measured by their average download times.
 
   Since in reality a market is never perfectly efficient, the above analysis only makes sense if the characteristic time it takes for the system  100  to relax back to uniformity from any disturbance is short. As a concrete example, consider a new file j released at time 0, being shared by only one server. Suppose that every downloader  113  starts sharing his piece of the file  105  immediately after downloading it. Because there are initially few servers  111  serving the file  105  but many downloaders  113  requesting the file  105 , for very short times afterwards the upload bandwidth will he fully utilized. That is, during time dt, an amount π j (t)dt of data is downloaded and added to the total upload bandwidth immediately. Hence we have
 
 dπ   j ( t )=π j ( t ) dt.   (17)
 
So we see that π j (t) grows exponentially until π j (T)˜p j . Solving out T, we find
 
                 T   ∼       log   ⁡     (       p   j         π   j     ⁡     (   0   )         )       .             (   18   )               
Thus the system  100  reaches uniformity in logarithmic time, a signature of its high efficiency.
 
   This discussion has so far assumed that all servers  111  are rational, so that they will actively seek those files  105  that are most under-supplied so as to serve them to downloaders  113 . In reality however, while some servers  111  do behave rationally, a lot of others do not This is because even a perfectly rational server  111  sometimes can make wrong decisions as to which files  105  to store because his subjective probability estimate of what is in demand can be inaccurate. Also, such a bounded-rational server  111  can at times be too lazy to adjust his bandwidth allocation, so that he simply keeps serving his current offerings. At other times he might simply imitate the behavior of other servers  111  by choosing to serve what they believe to be the most popular files  105 . 
   As a simple example, assume there are only two files  105 , A and B. Let p=λ A /λ be file A&#39;s real request  109  probability, and let 1−p be file B&#39;s real request  109  probability. Suppose the servers  111  are divided into two classes, with α fraction rational and 1−α fraction irrational, arriving one by one in a random order. Each rational server&#39;s subjective probability in general can be described by an identically distributed random variable P t  ε[0, 1] with mean p. Then with probability P[P t &gt;π(t)] he will serve file A, and with probability P[P t &lt;π(t)] he will serve file B. In order to carry out some explicit calculation below, we consider the simplest choice of P t , namely a Bernoulli variable
 
P[P 1 =1]=p,  P[P   1 =0]=1 −p.   (19)
 
   Clearly E[P 1 ]=p, so the subjective probabilities are accurate on average. Given this choice a rational server  111  chooses A with probability p and B with probability 1−p. 
   On the other hand, consider the situation where an irrational server  111  chooses an existing server  111  at random and copies that server&#39;s bandwidth allocation. That is, with probability π(t) an irrational server  111  will choose file A. This assumption can also be interpreted as follows. Suppose a downloader  113  starts serving his files  105  immediately after downloading them, but never initiates to serve a file  105  it has not downloaded anyway. (This is the way a non-seed peer  103  behaves within Bittorrent.) Then the probability that he will serve file j is exactly the probability that he just downloaded file j, which is π j  (t). 
   From these two assumptions we see that
 
 P [server  t  serves  A]=αp +(1−α)π( t ),  (20)
 
and
 
 P [server  t  serves  B ]=α(1 −p )+(1−α)(1−π( t )).  (21)
 
   The stochastic process described by the above two equations has been recently studied in the context of choices among technologies for which evidence of their value is equivocal, inconclusive, or even nonexistent. As has been shown, the dynamics generated by such equations leads to outcomes that appear to be deterministic in spite of being governed by a stochastic process. In the context of the present invention this means that when the objective evidence for the choice of a particular file  105  is very weak, any sample path of this process quickly settles down to a fraction of files  105  downloaded that is not predetermined by the initial conditions: ex ante, every outcome is just as (un)likely as every other. Thus under that condition one cannot ensure an equilibrium that is both optimum and repeatable. In the opposite case, when the objective evidence is strong, the process settles down to a value that is determined by the quality of the evidence. In both cases the proportion of files  105  downloaded never settles into either zero or one. 
   In the general case that we have been considering, there are typically a number of servers  111  that will behave in bounded rational fashion, and a few that are perfectly rational. Specifically, when α&gt;0, which corresponds to the case where a small number of servers  111  are rational, the π(t) will converge to p in the long time limit. That is, a small fraction of rational servers  111  is enough for the system  100  to reach an optimum equilibrium. However, it is worth pointing out that since the characteristic convergence time diverges exponentially in 1/α, the smaller the value of alpha α, the longer it will take for the system  100  to reach such an optimum state. 
   As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, agents, managers, functions, procedures, actions, layers, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different name divisions and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, agents, managers, functions, procedures, actions, layers, features, attributes, methodologies and other aspects of the invention can be implemented as software, hardware, firmware or any combination of the three. Of course, wherever a component of the present invention is implemented as software, the component can be implemented as a script, as a standalone program, as part of a larger program, as a plurality of separate scripts and/or programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.