Abstract:
A system and method for implementing a peer to peer (P2P) network that includes a plurality of nodes, wherein each of a majority of the nodes has less than a threshold number of P2P connections to other nodes in the network. A P2P network connection is established between a first node from the majority and an enhanced connection node in the network, wherein the enhanced connection node has more than the threshold number of P2P connections to other nodes in the network. A search request is issued from the first node by transmitting the search request from the first node to the enhanced connection node, and then forwarding the search request from the enhanced connection node to other nodes in the network. Responses to the search request are collected at the enhanced connection node, which filters, ranks or adds additional content to the responses prior to forwarding the responses back to the first node.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application claims priority to U.S. Provisional Application No. 60/857,334 entitled “System and Method for Enhanced Experience with a Peer-to-Peer Network” filed Nov. 7, 2006, incorporated herein by reference. 
    
    
     FIELD OF THE INVENTION 
     The present invention provides a method for using an Enhancement. System on a peer-to-peer network to enhance the experience of a user. 
     BACKGROUND OF THE INVENTION 
     As used herein, peer-to-peer networks which are one of the subjects of the present invention comprise multiple nodes, each node typically consisting both of file server and client that can send and receive data or “Communication messages” to or from a node to which such is connected and other nodes on the network. Common peer-to-peer networks and software applications are Gnutella, FastTrack, Edonkey, NeoNet, Kazaa, Limewire. Morpheus, Bear Share, Bit. Torrent, Shareaza, Emule, and Freenet. This list is not inclusive of all peer-to-peer file applications but rather serves as a general list. 
     In some peer-to-peer networks, each node is connected to other nodes over a communication medium such as the Internet either directly or through some type of proxy. For example, when a search request is issued such originating node sends a search request to all of the nodes to which it is connected, (see  FIG. 1 ) These nodes search their list of available files and if a match is found they send a response back with the location. However, a peer-to-peer proxy network typically consists of node A which is connected to a node B and node B is connected to a node C. (see  FIG. 2 ) Node A is not connected to node C such that if node A issues a search request it will be forwarded to node B and Node B will search its available files and if a match is found it will send a response back to node A. Node B will then forward node A&#39;s request to node C and Node C will search its available files and if a match is found it will send a response back to node B. Node B will then forward this response to node A.  FIG. 3  discloses a nonproxy loop network wherein each node is directly connected to another. 
     Some peer-to-peer networks utilize a leaf node/main node proxy topology (See  FIG. 4 ) where some nodes are classified as main nodes and the remaining nodes are classified as leaf nodes. Leaf nodes can only connect to main nodes. Only main nodes can connect to other main nodes. When a leaf node issues a search request it sends the request to the main node that it is connected to. The main node then forwards the request to any other leaf nodes that are connected to it and also to any main nodes it is connected to. These main nodes forward the request to any leaf nodes that are connected to them. Common names for main nodes are super nodes, ultra peers, or hubs. 
     Referring to  FIG. 5 , some peer-to-peer networks can be quite large, often in the hundreds of thousands or millions of nodes. To reduce the bandwidth and other resources required to operate such networks, nodes restrict the “distance” of messages traveling the network. Messages such as searches and responses to searches from nodes contain transmission distance parameters such as hops and time to live to help limit the number of nodes that see and process these messages. One is Hops, which is a value that normally starts at 0 and increments each time the communications is forwarded. Another is Time to Live (TTL) which is a value that normally starts at 5 and is decremented each time the communications is forwarded. When the Bops value reaches a preset limit, often 5, or Time to Live reaches 0, the communications is dropped from the network. Often nodes have a “Max time to live” setting and this value is often set to 5. If a node receives a communication message with a Time to Live which is higher than its configured max Time to Live, the packet is either dropped from the network or the communication message Time to Live is changed to a smaller value from another node. This effectively enforces a community time to live value and limits the amount of nodes that would receive communication message from a transmitting node. Some networks have other mechanisms for limiting the search capabilities of users. Referring to  FIG. 5 , if the network were configured for 5 hops, Node A would issue a search. Node B would receive it and pass it to Node C. This repeats until Node F receives it. Nodes B-F would process the search and Node F would drop and not forward the search to Node G because it was retransmitted 5 times. 
     Each node on a peer-to-peer network generally has 2-3 connections to the peer-to-peer network so that they can increase their odds of finding information. Because each connection is to a random node on the peer-to-peer network, each connection generally searches &amp; different group of nodes. Because searches are “repeated” by nodes on the network, sometimes connections have overlapping coverage in that a search sent out via one connection searches nodes available on another connection. This is known as an inefficient connection configuration. 
     Because the network enforces restrictions when a user searches and because of the nature of the architecture, the user can only search a limited number of nodes on the network. For instance, if the network is composed of twelve million users, a user searching for information may only be able to search 3,000 other users. If the user is searching for a file that is not popular it may not be within the searching radius of the user and the file will not be found, even if it is located on another node elsewhere on the network. It would therefore be advantageous if a user could search more nodes on a network then they normally could with a standard peer-to-peer application or system, thus raising the chance that they would find the information they are looking for. 
     SUMMARY OF THE INVENTION 
     Generally, the present invention provides a system for allowing a user to search more nodes on a peer-to-peer network then they normally would have access to. The preferred system comprises the steps of:
         a. User connects to an Enhancement System that has access to more peer-to-peer nodes than the user would; and   b. Enhancement System accepting messages from the peer-to-peer user; and   c. Enhancement System acting as a intermediate between the user and the peer-to-peer network in a way as to increase the capabilities or experience of the peer-to-peer user.       

     Thus, the present invention provides a system and method for enhanced experience with a peer-to-peer network. 
     More specifically, the present invention is directed to a system and method for implementing a peer to peer (P2P) network that includes a plurality of nodes, wherein each of a majority of the nodes has less than a threshold number of P2P connections to other nodes in the network. A P2P network connection is established between a first node from the majority and an enhanced connection node in the network, wherein the enhanced connection node has more than the threshold number of P2P connections to other nodes in the network. A search request is issued from the first node by transmitting the search request from the first node to the enhanced connection node, and then forwarding the search request from the enhanced connection node to other nodes in the network. Responses to the search request are collected at the enhanced connection node, and thereafter at least one of the following is performed by the enhanced connection node: (i) filtering the responses, and then forwarding results of the filtering to the first node; (ii) ranking the responses, and then forwarding ranked responses to the first node; and (iii) adding additional content (e.g., an advertisement selected in response to one or more search terms included in the search request) to the responses, and forwarding said additional content and at least some of the responses to the first node. 
     In some embodiments, the enhanced connection node accesses user profile information associated with the first node, and at least one of the following is performed by the enhanced connection node: (i) filtering the responses in accordance with the profile information, and then forwarding results of the filtering to the first node; (ii) ranking the responses in accordance with the profile information, and then forwarding ranked responses to the first node; and (iii) adding additional content to the responses, wherein, the additional content is selected at least in part using the profile information, and forwarding the additional content and at least some of the responses to the first node. 
     In some embodiments, the enhanced connection node includes dedicated content that is unavailable on all other nodes in the network, or pointers to dedicated content that is unavailable on all other nodes in the network. 
     In some embodiments, the first node uses middleware on the first node to establish the P2P network connection between the first node and the enhanced connection node. In such embodiments, the middleware may monitor for transmission of content that should not be shared on the P2P network and perform at least one of the following: (i) block transmission of the content that should not be shared; and (ii) notify another system that there has been transmission of content that should not be shared. 
     In some embodiments, the enhanced connection node sends a cached list of search responses back to the first node. 
     Other advantages of the present invention will become apparent from a perusal of the following detailed description of presently preferred embodiments of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a simplified schematic of a two node peer to peer network; 
         FIG. 2  is a simplified schematic of a peer to peer prosy network; 
         FIG. 3  is a simplified schematic view of a peer to peer, nonproxy, loop network. 
         FIG. 4  is a simplified schematic view of a leaf node/main node network. 
         FIG. 5  is a simplified schematic of a peer-to-peer network where nodes are connected to on another in a daisy chain fashion. 
         FIG. 6  is a simplified schematic view of a peer-to-peer user connected to the Enhancement System. 
         FIG. 7  is a flow chart, of a search utilizing the Enhancement System. 
         FIG. 8  is a flow chart of a search utilizing the Enhancement System in which the Enhancement System filters results 
         FIG. 9  is a flow chart of a search utilizing the Enhancement System in which the Enhancement System adds an advertisement to any search results. 
         FIG. 10  is a simplified schematic view of a peer-to-peer user connected to the Enhancement System via the Enhancement System Middleware. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention provides a system for allowing a user to search more nodes on a peer-to-peer network than one normally would have access to or by returning information that otherwise would not be available for searching on the peer-to-peer network. It also provides a system and method for filtering any search results that may be returned to the users. It also provides a system and method for adding its own results, such as advertisements, to any search results that may be returned to the user. It also provides a system and method for ranking any results that may be returned to a user, it also provides a system and method for storing attributes of the searcher, the searches that they issue, and the responses mat they receive. It also provides a system and method for storing a WWW browser cookie in the browser of the user based on their searches or any results that may be returned to them. It also provides a system and method to reduce traffic on the peer-to-peer network, and/or increase the speed of search by caching search results. Other advantages of the present invention will become apparent from a perusal of the following detailed description of presently preferred embodiments of the invention. 
     Generally the invention is comprised of an Enhancement System that is connected to a peer-to-peer network and has more nodes available to search than what a normal peer-to-peer user would have access to and/or it has access to dedicated information that would not be generally available for a peer-to-peer user to search for on the peer-to-peer network. A peer-to-peer user connects to the Enhancement System and sends his peer-to-peer messages (such as searches) to this system. The Enhancement System relays these messages to the peer-to-peer nodes to which it is connected to, which is more than what the peer-to-peer user would normally have been able to access. The Enhancement System receives results back then forwards these results to the peer-to-peer user, thus increasing the amount of results and/or the breadth of their search. 
     The Enhancement System has access to more nodes or dedicated information on the peer-to-peer network by using different methods. This may include having more connections into the peer-to-peer network than a normal user might or by using highly efficient connections so that each connection or combination of connections accesses more nodes than would a normal connection or combination of normal connections. The Enhancement System could be connected to more hub nodes than the user normally would be or could be. The Enhancement System could contain dedicated information and no connections to the peer-to-peer network. In this case the Enhancement System would have access to dedicated information not available for generalized searching on the peer-to-peer network. The Enhancement System could contain dedicated information and also access to more nodes than what a normal user would commonly have access to. 
     The Enhancement System may be comprised of multiple systems that share information and workload or ones that operate independently. The Enhancement System may have a system that primarily handles client connections, while other portions of the Enhancement System handle connections to the peer-to-peer network. The Enhancement System could contain filtering systems or systems that contain dedicated content. The Enhancement System may cache search results so that it does not have to issue searches onto the peer-to-peer network that have occurred within a certain time limit. 
     Generally the system works by connecting into the peer-to-peer network in a way that allows it to have access to more nodes than a normal peer-to-peer user would. A user wishing for enhanced access connects to the Enhancement System using his peer-to-peer application and by utilizing standard peer-to-peer protocols. This allows the user to use any peer-to-peer application that he chooses. The user&#39;s peer-to-peer application may also connect to a piece of middleware software that is located on his computer system or another system. This middleware software would then connect to the Enhancement System. The middleware would communicate with the peer-to-peer software application utilizing standard peer-to-peer protocols so that the user can use any peer-to-peer application that he would choose. The middleware application may connect to the Enhancement System and communicate using standard peer-to-peer protocols or it could communicate with a proprietary protocol. The middleware application may be configured to program or change the configuration of the peer-to-peer client application. For instance, the middleware software may configure the peer-to-peer client application so that the peer-to-peer client application connects to the middleware without any user intervention. The peer-to-peer client application could also be programmed with “support” for the middleware application and as such, if it detects that the middleware is installed, it will pass control over to the middleware for communications. 
     If the Enhancement System Middleware is located on the peer-to-peer user&#39;s system and can monitor data traffic it could also be configured to monitor the transmission of files. The Enhancement System Middleware could be configured to monitor for the transmission of files that should not be shared, such as personal information and block this transmission if it detects it. It could also be configured to notify another system if it detects that a file has been sent or received. 
     The Enhancement system will forward searches it receives from the peer-to-peer network to those peer-to-peer users that are utilizing it. The Enhancement System could be configured to filter and/or remove searches so that the user connected to the Enhancement System would be protected from malicious searches. The Enhancement System could be configured to not forward any searches at all, or to only forward selected searches. The Enhancement System could be configured to always remove certain terms. For instance, if an organization wanted to limit searches for their information the Enhancement System could be configured to not pass these searches in either direction. 
     Once the peer-to-peer user is utilizing the Enhancement System, either directly or through middleware, any searches or other messages that the user sends will be sent to the Enhancement System. There may be occasions when the peer-to-peer user would also want to search the peer-to-peer network by utilizing the Enhancement System and standard connections to the peer-to-peer network at the same time. In this case the user&#39;s peer-to-peer application would be configured to connect to the Enhancement System or Enhancement System Middleware and also to other standard nodes on the peer-to-peer network. 
     If the Enhancement System detects a search from the peer-to-peer user it will relay the search to the nodes on the peer-to-peer network that it is connected to. The Enhancement System may choose not to forward the search, if for instance if it would result in matches of copyrighted information or some other topic. In this instance, the Enhancement System may choose to respond back to the user with information alerting the user that the search may result in copyrighted or protected information. The Enhancement System could also record the search into a list or database. It could also record the IP address of the peer-to-peer user to a list or database. It could also record to a list or database any attributes it has access to concerning the communication. It could also analyze the search by comparing it to some criteria and setting a “Browser Cookie” in the peer-to-peer user&#39;s web browser. The cookie could be used to relay information to a website for target marketing or to enhance the user&#39;s experience on a website. It could be used to offer specials or services. It could be used to tailor web usage to the user&#39;s searching habits. 
     If the search that the peer-to-peer user issues would result in an excessive amount of responses (such in the case of a popular artist) the Enhancement System could choose to limit the number of nodes it relays the search to. It could also just drop the search. This would allow for throttling of responses and aim to not overload the Enhancement System or other nodes on the network. The Enhancement System could also choose to limit the number of searches from any one user, or any group of users. 
     The Enhancement System could change or modify the user&#39;s search so that it results in more, less, or more accurate results. It could also create multiple searches, relay these onto the peer-to-peer network and relay the combined list back to the peer-to-peer user as one result set. For instance, a user searches for Madonna and the Enhancement System relays, “Madonna” and “Madonna 2006”. 
     If two or more users are using the Enhancement System and they search for the same term, or the Enhancement System realizes that the terms would result in the same matches, and it&#39;s within certain criteria such as time, the Enhancement System could send a cached list of responses back to the second client. This would reduce the amount of searches that are relayed to other nodes of the network. 
     The Enhancement System could compare the search term to a list of criteria and respond back with a result set that contained a message. The message could be in the form of a file title, a file containing a message, or a pointer to file that contains a message. The message could be a warning that the user is searching for copyrighted information, that copyrighted information may result, or it could be an advertisement. It could also be a file with information different than what the user had asked for. For example a user could issue a search for “Madonna” and the Enhancement System could respond back with an advertisement on how to purchase tickets for her nest concert, or it may respond back with a video of Madonna that she has released for usage on the peer-to-peer network. 
     Once the Enhancement System issues the search onto the network and receives responses it will relay these responses back to the peer-to-peer user that issued the search. Before sending the results to the peer-to-peer user, the Enhancement System could change the ranking or order of the results, or modify the results to change the ranking or order. The Enhancement System could filter any results, for instance if results contain copyrighted works. It could do this by comparing the file titles, the contents, hashes, file size, or any combination thereof. The Enhancement System could send a message. The message could be in the form of a file title, or a file containing a message. The message may be a warning that the user is searching for copyrighted information or it could be an advertisement. It could also be a file with information different than what the user had asked for. The Enhancement System could send a pointer to a different file. For instance the Enhancement System could send a pointer to a lower quality version of the file or the file with an advertisement inserted into it. The Enhancement System could also record the IP address of the searcher and the results that were relayed and/or received into a list or database. The Enhancement System could be configured to not respond at all. 
     The Enhancement System could download files from the peer-to-peer network and cache these. If a user issues a search for something the Enhancement System is caching, the Enhancement System would provide pointers to these files. 
     The Enhancement System could also be utilized to perform filtering of the results so that when a user issues a search, any results would be scrubbed of erroneous files, filenames, or unavailable nodes on the network. This would increase the accuracy of the results that are sent back to the user. The Enhancement System could be configured to drop any results from a node on the network. It might do this because the node was rated low or has a high instance of sending incorrect data. 
     The Enhancement System could also create its own list of results and send these to the peer-to-peer user either as a replacement of the results or in addition to the results. It could be configured to not relay searches for certain information to the peer-to-peer network but rather create its own list of results. These results could point to files that are on dedicated servers for special purposes. For instance, a peer-to-peer user might search for the popular show “CSI Las Vegas” currently being aired on CBS. CBS could place CSI episodes onto a dedicated peer-to-peer server and when the user searches for “CSI” the Enhancement System would not relay the search to the peer-to-peer network but rather send results back consisting of all of the available CSI shows on the dedicated CBS server. 
     The Enhancement System might not be used to expand the breadth of the peer-to-peer user&#39;s search but rather provide information that would not otherwise be available for the user to search as it is not a part of the peer-to-peer network but merely communicates with the peer-to-peer protocol. For instance, a company could install a peer-to-peer client and add dedicated information but not allow their peer-to-peer client to connect to the peer-to-peer network. The Enhancement System would be configured so that if a user connects to it and searches for the company&#39;s information, the Enhancement System would respond back with pointers to files on the dedicated system. The peer-to-peer user could then download the files from the company&#39;s dedicated server. 
     The Enhancement System could utilize a database of IP addresses connected to it to provide information on their availability to other peer-to-peer users. It could also send peer-to-peer users that are connect to it a message and use the response times to determine a ranking. It could then use this information to modify search results back to other peer-to-peer users utilizing the Enhanced System. 
     The user&#39;s peer-to-peer client application could be configured to inform the Enhancement System Middleware program with a list of files that it is sharing. The Enhancement System Middleware could be configured to upload this information the Enhancement System of available files so that the Enhancement System would not have to issue searches onto the peer-to-peer network. 
     The Enhancement System Middleware could be configured to read the configuration of the user&#39;s peer-to-peer client application and build its own list of files available for sharing. The Enhancement System Middleware could be configured to upload this information the Enhancement System of available files so that the Enhancement System would not have to issue searches onto the peer-to-peer network. 
     An Enhancement System could comprise a hardware system such as a computer, thin appliance, ASIC based device or other similar device, which can be programmed with specific logic or programming code (i.e. software). The device preferably has the capability of being connected with a physical network either directly or though the use of a gateway. The programming logic provides the device with the capability to transmit and receive on both physical networks as well as the peer to peer networks which typically ride on top of a physical network. Programming logic is a software program but may also be hardcoded non-changeable procedural information such as typically found on an ASIC based device. 
     An Enhancement System Middleware could comprise a hardware system such as a computer, thin appliance, ASIC based device or other similar device, which can be programmed with specific logic or programming code (i.e. software). The device preferably has the capability of being connected with a physical network either directly or though the use of a gateway. The programming logic provides the device with the capability to transmit and receive on both physical networks as well as the peer to peer networks which typically ride on top of a physical network. Programming logic is a software program but may also be hardcoded non-changeable procedural information such as typically found on an ASIC based device. 
     EXAMPLES 
     The following Examples illustrate various embodiments of the systems according to the present Invention. 
     Example 1 
     This example describes a standard peer-to-peer user issuing a search to an Enhancement System where the Enhancement System has eight connections to the peer-to-peer network. Referring to  FIG. 6  and the flow chart in  FIG. 7 : 
     Peer-to-Peer User  FIG. 6-100  connects one time to Enhancement System  FIG. 6-102  through connection  FIG. 6-101  using normal peer-to-peer protocols. Enhancement System  FIG. 6-102  connects 8 times into Peer-to-Peer Network  104  through its Multiple Connections  FIG. 6-103 . Peer-to-Peer User  FIG. 6-100  issues a search via Standard P2P Connection  FIG. 6-101  to Enhancement System  FIG. 6-102 . Enhancement System  FIG. 6-102  relays the search to the Peer-to-Peer Network  FIG. 6-104  via its Multiple Connections  FIG. 6-103 . Search results are generated by nodes on the Peer-to-Peer Network  FIG. 6-104 . Results are received at Enhancement System  FIG. 6-102  via Multiple Connections  FIG. 6-103 . Enhancement system  FIG. 6-102  relays result set via Standard Connection  FIG. 6-101  to Peer-to-Peer User  FIG. 6-100 . Peer-to-Peer User  FIG. 6-100  received results from eight connections (Multiple Connections  FIG. 6-103 ) while it only had one connection (Standard P2P Connection  FIG. 6-101 ), thus improving the search result set. 
     Example 2 
     This example describes a standard peer-to-peer user issuing a search to an Enhancement System with eight connections to the peer-to-peer network and the Enhancement System filtering results. Referring to  FIG. 6  and the flow chart in  FIG. 8 : 
     Peer-to-Peer User  FIG. 6-100  connects one time to Enhancement System  FIG. 6-102  through connection  FIG. 6-101  using normal peer-to-peer protocols. Enhancement System  FIG. 6-102  connects 8 times into Peer-to-Peer Network  104  through its Multiple Connections  FIG. 6-103 . Peer-to-Peer User  FIG. 6-100  issues a search via Standard P2P Connection  FIG. 6-101  to Enhancement System  FIG. 6-102 . Enhancement System  FIG. 6-102  relays the search to the Peer-to-Peer Network  FIG. 6-104  via its Multiple Connections  FIG. 6-103 . Search results are generated by nodes on the Peer-to-Peer Network  FIG. 6-104 . Results are received at Enhancement System  FIG. 6-102  via Multiple Connections  FIG. 6-103 . Enhancement System  FIG. 6-102  filters out any results containing “Madonna”. Enhancement System  FIG. 6-102  relays resulting result set via Standard Connection  FIG. 6-101  to Peer-to-Peer User  FIG. 6-100 . Peer-to-Peer User  FIG. 6-100  received results from eight connections (Multiple Connections  FIG. 6-103 ) while it only had one connection (Standard P2P Connection  FIG. 6-101 ), thus improving the search result set. 
     Example 3 
     This example describes a standard Peer-to-Peer user issuing a search to an Enhancement System with eight connections to the peer-to-peer network and the Enhancement System adding an advertisement for “Madonna”. Referring to  FIG. 6  and the flow chart in  FIG. 9 : 
     Peer-to-Peer User  FIG. 6-100  connects one time to Enhancement System  FIG. 6-102  through connection  FIG. 6-101  using normal peer-to-peer protocols. Enhancement System  FIG. 6-102  connects 8 times into Peer-to-Peer Network  104  through its Multiple Connections  FIG. 6-103 . Peer-to-Peer User  FIG. 6-100  issues a search via Standard P2P Connection  FIG. 6-101  to Enhancement System  FIG. 6-102 . Enhancement System  FIG. 6-102  relays the search to the Peer-to-Peer Network  FIG. 6-104  via its Multiple Connections  FIG. 6-103 . Search results are generated by nodes on the Peer-to-Peer Network  FIG. 6-104 . Results are received at Enhancement System  FIG. 6-102  via Multiple Connections  FIG. 6-103 . Enhancement System  FIG. 6-102  adds an result to the result set that includes an advertisement for Madonna&#39;s newest song, Enhancement System  FIG. 6-102  relays new combined result set via Standard Connection  FIG. 6-101  to Peer-to-Peer User  FIG. 6-100 . Peer-to-Peer User  FIG. 6-100  received results from eight connections (Multiple Connections  FIG. 6-103 ) while it only had one connection (Standard P2P Connection  FIG. 6-101 ), thus improving the search result set. 
     Finally, it will be appreciated by those skilled in the art that, changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiments disclosed, but is intended to cover modifications within the spirit and scope of the present invention as defined in the appended claims.