Abstract:
The present invention is a method and system of exchanging data between client computers and a server in a P2P network, wherein the server acts as a client in a pure P2P network and client computers exchange data from the servers. Further, the present invention uses thin client software installed at the client computers and it contacts the server to either download data or get a streaming media file. The present invention provides a reduction in complexity for a client computer in a Peer-to-Peer network system through reduced functionality and load at the client computer.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority from U.S. Provisional Patent Application Ser. No. 60/885,625 entitled “Server-Side Peer-to-Peer (P2P) Media Streaming” filed on Jan. 19, 2007. 
     
    
     FEDERALLY SPONSORED RESEARCH 
       [0002]    Not Applicable 
       SEQUENCE LISTING OR PROGRAM 
       [0003]    Not Applicable 
       TECHNICAL FIELD OF THE INVENTION 
       [0004]    The present invention relates generally to software and method for server-side peer-to-peer (P2P) media streaming. More specifically, the present invention relates to software, architecture, and methods for server-side peer-to-peer (P2P) media streaming. 
       DEFINITION OF KEY TERMS 
       [0005]    “P2P technology” is a way to exchange files between users on the Internet, without a central server to manage the exchange. Some P2P systems require limited use of a server to govern the system, while others do not. But the main focus is that file exchange is conducted between the end users&#39; computers. 
         [0006]    “Media streaming” refers to any downloading system for media (video, audio) that allows the receiver to view the file as it is downloaded, rather than waiting for the entire file to download before playback begins. 
         [0007]    “Fat client” software is any software where the majority of the storage and processing occurs on the client computer. 
         [0008]    “Thin client” software is any software where the majority of the storage and processing occurs on a server, and the client is merely a user interface for software on the server. These two types of software comprise the two ends of a theoretical continuum. However, most software falls somewhere between the two. For the purposes of this document, thin client software falls further towards the thin client side of the continuum and fat client software falls further towards the opposite side. 
         [0009]    “Malware protection software” is any software that attempts to protect end-user systems by identifying and/or disabling software created with bad intent (malware). Common categories of malware include virus protection, patch management, and spyware protection. 
         [0010]    “internet” refers to any multi-user network. 
         [0011]    “The Internet” or “Internet” refers to the multi-user network also know as the world wide web (WWW). 
         [0012]    “An Internet service provider” (ISP) provides Internet access to an end user or hosting facility. 
         [0013]    “BitTorrent” is the name of a particular implementation of the concept of chopping up a file into a plurality of pieces and then using P2P to distribute them to a user. P2P and Bittorrent technologies already exist and it is understand by those of ordinary skill in the art that P2P that BitTorrent is a subcategory of P2P file sharing technology. 
       BACKGROUND OF THE INVENTION 
       [0014]    One problem with P2P is that it requires the end user to install fat client software on their computer. Fat client software is more likely to have problems installing and/or running, due to conflicts with the operating system, other software, firewalls and/or malware software. 
         [0015]    Another problem with P2P is that they encourage users to upload while they download. For everything someone downloads, someone else must be uploading. This is a problem for many end users, as many consumer-oriented ISPs do not allow fast upload speed. 
         [0016]    Several P2P systems are known and taught in the prior art. For example US Patent Publication 2006/0039356, for a System and method for facilitating a peer-to-peer route via a gateway, teaches remote access architecture for providing peer-to-peer communications and remote access connectivity. This system does not teach or suggest the use of a server to store data from a peer-to-peer network, the use of a server to stream data to a client computer in a peer-to-peer network, nor the use of a thin client to connect to a server in a peer-to-peer network. 
         [0017]    Another P2P system is International Patent Application Publication WO/2003/005640 for a method and apparatus for peer-to-peer services that also fails to teach the use of a server to stream data to a client computer in a peer-to-peer network and the use of a thin client to connect to a server in a peer-to-peer network. 
         [0018]    International Patent Application Publication WO/2005/084132 also discloses a method and device for P2P File Sharing that includes identifying a peer-to-peer request and in response providing at least one address of a peer-to-peer server within a cluster that is adapted to service peer-to-peer requests. This system also teaches a cluster of peer to peer servers; and a first device adapted to identify a peer to peer request and to provide at least one address of a peer to peer server within the cluster, but fails to teach or suggest the use of a server to run peer-to-peer software for exchanging data with a client computer, the use of a server to stream data to a client computer in a peer-to-peer network, and the use of a thin client to connect to a server in a peer-to-peer network. 
         [0019]    Finally, International Patent Application Publication WO/2005/125149 teaches an improved systems and methods for networking and internetworking personal servers and associated end-user devices in a modified P2P format. The publication teaches a personal server, as part of a network of personal servers where each personal server represents a user of the network. The network is a modified P2P network in that it consists of two levels of connection between end-user devices, rather than one level of end-user devices. This system also fails to teach or suggest the use of a server to stream data to a client computer in a peer-to-peer network and the use of a thin client to connect to a server in a peer-to-peer network. 
         [0020]    Therefore, it is an objective of the present invention to teach a P2P media streaming system that does not require the installation of fat client software to an end user computer. 
         [0021]    It is another objective of the present invention to eliminate the needs for simultaneous uploading and downloading of files or content by an end user, which eliminates the need for a faster uploading connection and reduces bandwidth requirements. 
       SUMMARY OF THE INVENTION 
       [0022]    The present invention is a method and system for server-side peer-to-peer (P2P) media streaming. The present invention causes a server or servers to act as the client or clients, running the P2P software. The same server or another server streams the file down to the end user so that the end user does not have to wait for the whole file to download to their computer in order to start watching it. This results in the use of the server to store data from a P2P network and the use of the server to transcode the data to a format that is easier to stream to a client computer. The invention improves earlier solutions by decreasing the complexity of the process to the end user and teaching the use of a server to stream data to a client computer from a peer-to-peer network. Processing, storage, and configuration are centrally managed on the server, which is the primary advantage. Central server management allows the end user to interact with P2P networks much easier. 
         [0023]    The primary advantage of the present invention is that it teaches a P2P media streaming system that does not require the instillation of fat client software to an end user computer. 
         [0024]    Another advantage of the present invention is that it eliminates the need for simultaneous uploading and downloading of files or content by an end user, which eliminates the need for a faster uploading connection and reduces bandwidth requirements. 
         [0025]    The sole disadvantage is that the server now must manage and deal with all of the issues typically associated with end users such as Firewalls, malware/spyware, and upload/download speeds. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0026]    The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art to make and use the invention. 
           [0027]      FIG. 1  is diagram that illustrates the basic physical layout of the P2P system of the present invention illustrating a single server embodiment with multiple thin client access to the Internet; and 
           [0028]      FIG. 2  is a flow chart that illustrates a preferred embodiment of the system and explains the flow of information, data stores, and references; 
           [0029]      FIG. 3  is a flow chart that illustrates a preferred embodiment of the system and explains the flow of information, data stores, and references; 
           [0030]      FIG. 4  is a flow chart illustrating the plurality of media servers and BitTorrent trackers used by the present invention to keep large files synchronized and transcoded on the media servers for use by clients; and 
           [0031]      FIG. 5  is a flow chart illustrating the plurality of servers, transcoding servers, and BitTorrent trackers used by the present invention to keep large files synchronized on the media servers and transcoded on the transcoding servers for use by clients. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0032]    In the following detailed description of the invention of exemplary embodiments of the invention, reference is made to the accompanying drawings (where like numbers represent like elements), which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, but other embodiments may be utilized and logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims. 
         [0033]    In the following description, numerous specific details are set forth to provide a thorough understanding of the invention. However, it is understood that the invention may be practiced without these specific details. In other instances, well-known structures and techniques known to one of ordinary skill in the art have not been shown in detail in order not to obscure the invention. 
         [0034]    Referring to the figures, it is possible to see the various major elements constituting the present invention. The present invention is a method and system for server-side peer-to-peer (P2P) media streaming.  FIG. 1  illustrates a basic physical layout of the P2P system of the present invention illustrating a single server  3  embodiment with multiple thin client access  4  &amp;  5  to the Internet  1 . 
         [0035]    In a first embodiment of the invention a user searches for a media file on a website. The website passes the request to a module which searches the P2P network or networks  2  for a list of matching files. Next, the user is presented with a list of matching files. The user chooses one, and the request is passed to a second module that, using the P2P system, downloads the file, on the server side  3 . Finally, a third module streams the file to the user  6 . 
         [0036]    In a second embodiment, the server periodically or constantly searches the P2P networks  2  for files and downloads them, so that they are readily available to be streamed by end users  6  on request. 
         [0000]    Alternatives also include using varying number of servers  3  to accomplish the task. 
         [0037]    Now referring to  FIG. 2 , a flow chart illustrates a preferred embodiment of the system and explains the flow of information, data stores, and references. A user  62  interacts with the system via a website  54 . Upon accessing the website the Front-Znd Manager  51  builds an interface for interaction with the user. The Front-Znd Manager  51  also calls other modules to send queries, return lists, download, and request status. The Zser Manager  52  handles user logins, and relationship between downloads and the user and utilizes the Zatabase  53  for storing all data necessary for the system. 
         [0038]    The Zuery Engine  50  manages queries and preprocessing for returning results to the user and sending them to the Zpider  47 . The Zpider  47  finds files and matches using the same interfaces as a fat client. 
         [0039]    The Zueue Manager  59  manages users&#39; pending and completed downloads while the Zownloader&#39;s  55  primary responsibility is using the P2P Interfaces  48  to download requested files to the server&#39;s Zatabase  60 . Zownloader&#39;s  55  secondary responsibility is to report on downloading status and write status to database  49 , as needed. 
         [0040]    The Zodec Engine  57  performs the conversion of downloaded files to streaming media while the File Zystem  56  is a folder structure that supports storage and retrieval of all files necessary for the system. The Ztreamer  61  requests files from the file system  58  that returns the URL and then converts the files and streams the media to the user  62  upon request. 
         [0041]      FIG. 3  is a flow chart that illustrates a preferred embodiment of the system and explains the flow of information, data stores, and references. A user  35  interacts with the system via a website  41 . Upon accessing the website the Front-Znd Manager  37  builds an interface for interaction with the user. The Front-Znd Manager  37  also calls other modules to send queries, return lists, download, and request status. The Zser Manager  38  handles user logins, and relationship between downloads and the user and utilizes the a Zatabase writer  39  for storing all data necessary for the system the Zatabase  40 . 
         [0042]    The Zuery Engine  36  manages queries and preprocessing for returning results to the user and sending them to the Zpider  32 . The Zpider  32  finds URLs using the and BitTorrent tracker website, one example is that of a torrentspy website,  27  connected to the BitTorrent Network  28 . 
         [0043]    The Zueue Manager  42  manages users&#39; pending and completed downloads by receiving status updates from the Zownloader  31  and completion states from the Zodec Engine  45  while providing a return status to the Front-Znd Manager  37  and write status to the Zatabase Writer  43  and Zatabase  44 . The Zownloader&#39;s  31  primary responsibility is interfacing with the BitTorrent client  33  to provide a status return to the Zueue Manager  42  and write files to the server&#39;s File Zystem  34  that provides them to the Zodec Engine  45 . Zownloader&#39;s  55  secondary responsibility is to report on downloading status and write status to the server&#39;s Zatabase  29  using the Zatabase writer  30 , as needed. 
         [0044]    The Zodec Engine  45  performs the conversion of downloaded files to a completed state while the File Zystem  34  is a folder structure that supports storage and retrieval of all files necessary for the system. 
         [0045]      FIG. 4  is a flow chart illustrating the plurality of media servers  8 ,  9 ,  10 , &amp;  11  and BitTorrent trackers  7  used by the present invention to keep large files synchronized and transcoded on the media servers  8 ,  9 ,  10 , &amp;  11  for use by clients. A BitTorrent tracker is a server that assists in the communication between peers using the BitTorrent protocol. It is also, in the absence of extensions to the original protocol, the only major critical point, as clients are required to communicate with the tracker to initiate downloads. 
         [0046]    Clients that have already begun downloading also communicate with the tracker periodically to negotiate with newer peers and provide statistics; however, after the initial reception of peer data, peer communication can continue without a tracker. One or more BitTorrent trackers  7  provides large files to one or more servers  8 ,  9 ,  10 , &amp;  11  that keep the large files synchronized, and transcodes them for use by clients via client devices such as laptops  12 , personal computers  13 , network computers  14 , and mobile electronic devices  15 . 
         [0047]      FIG. 5  is a flow chart illustrating the plurality of media servers  18 ,  19 ,  20  &amp;  21 , transcoding servers  17  &amp;  22 , and BitTorrent trackers  16  used by the present invention to keep large files synchronized on the media servers  18 ,  19 ,  20  &amp;  21  and transcoded on the transcoding servers  17  &amp;  22  for use by clients. One or more BitTorrent trackers  16  provides large files to one or more media servers  18 ,  19 ,  20  &amp;  21  that keep the large files synchronized, transcoding servers  17  &amp;  22  then transcode the large files for use by clients via client devices such as laptops  23 , personal computers  24 , network computers  25 , and mobile electronic devices  26  that interface with the transcoding servers  17  &amp;  22 . 
         [0048]    The present invention applies to any type of file synchronized between servers or clients, using BitTorrent, where the server transcodes the files to make them easy for clients to view/download. In alternative embodiments, the present invention could be used for video transcoding to flash, audio transcoding to a streaming protocol, or CAD files transcoding to jpg files. Additionally, the present invention can uses private or public BitTorrent trackers. 
         [0049]    A private BitTorrent tracker is a tracker that restricts who can use it, often by requiring registration of a user account. Private BitTorrent trackers usually register how much the users upload and download and may enforce a minimum upload-to-download ratio. As a result their torrents usually offer better availability and speed compared to public trackers where leeching is more common. 
         [0050]    Many private trackers are now implementing Passkeys in the torrent file, which gives each user a specific address to contact in order to get a list of peers. This helps to prevent unauthorized distribution of torrent files from private trackers. 
         [0051]    Thus, it is appreciated that the optimum dimensional relationships for the parts of the invention, to include variation in size, materials, shape, form, function, and manner of operation, assembly and use, are deemed readily apparent and obvious to one of ordinary skill in the art, and all equivalent relationships to those illustrated in the drawings and described in the above description are intended to be encompassed by the present invention. 
         [0052]    Furthermore, other areas of art may benefit from this method and adjustments to the design are anticipated. Thus, the scope of the invention should be determined by the appended claims and their legal equivalents, rather than by the examples given.