Optimizing communication using scalable peer groups
First Claim
1. At a peer having an application and a smart transceiver component for communicating with one or more other peers in a peer group over a network, a method of dynamically adjusting a communication mechanism used in a communication channel between the application and the smart transceiver component without modifying the communication channel from the perspective of the application, the method comprising the acts of:
- establishing a communication channel between the application and the smart transceiver component using at least one initial communication mechanism, the communication channel including security and application-level logic which the application uses to communicate peer messages to the smart transceiver component, wherein the smart transceiver component selects the at least one initial communication mechanism by performing the following acts;
detecting that the peer is configured primarily to receive messages from one or more of the one or more other peers;
identifying a plurality of communication mechanisms for communicating peer messages between the peer and the one or more other peers;
automatically determining that, based on the peer being configured primarily to receive messages, the at least one initial communication mechanism of the plurality of communication mechanisms is preferable to another communication mechanism of the plurality of communication mechanisms for use within the communication channel between the application and the smart transceiver; and
automatically selecting the at least one initial communication mechanism to be used within the communication channel;
after the communication channel is established, receiving, by the application, at least one peer message from one or more of the one or more other peers using the established communication channel such that the selected at least one initial communication mechanism is used by the smart transceiver component to receive the at least one peer message;
without establishing a new communication channel, automatically replacing the at least one initial communication mechanism in the established communication channel with the selected at least one subsequent communication mechanism while retaining the security and application-level logic of the communication channel such that the communication channel from the perspective of the application remains unchanged, wherein the smart transceiver component replaces the at least one initial communication mechanism by performing the following acts;
while the communication channel is still established between the application and the smart transceiver component, the smart transceiver component detecting that the peer'"'"'s configuration has changed such that the peer is configured primarily to send messages to one or more of the one or more other peers;
automatically determining, by the smart transceiver component, that, based on the peer being configured primarily to send messages, at least one subsequent communication mechanism of the plurality of communication mechanisms that is different from the at least one initial communication mechanism is preferable to the at least one initial communication mechanism; and
automatically selecting the at least one subsequent communication mechanism to be used in the communication channel; and
after the at least one initial communication mechanism is replaced with the at least one subsequent communication mechanism in the communication channel, sending, by the application, at least one peer message to one or more of the one or more other peers over the established communication channel using the same security and application-level logic even though the at least one subsequent communication mechanism, rather than the at least one initial communication mechanism, is used within the established communication channel.
2 Assignments
0 Petitions
Accused Products
Abstract
Implementations of the present invention relate in part to optimizations to peer-to-peer communication systems. For example, one implementation relates to use of a smart transceiver that creates, caches, and manages communication channels dynamically between peers. Another implementation relates to use of a central tracking object that can be used to efficiently register and distribute peer messages among the various peers. In one implementation, the central tracking object is shared amongst peers in the group. Still another implementation relates to associating peer groups with namespaces, and for including peer groups of one namespace within still other peer groups of different namespaces. These and other aspects of the invention can also be used to ensure delivery intent of a given peer message is preserved, and to ensure that optimal numbers of messages are communicated to any given peer at any given time.
79 Citations
16 Claims
-
1. At a peer having an application and a smart transceiver component for communicating with one or more other peers in a peer group over a network, a method of dynamically adjusting a communication mechanism used in a communication channel between the application and the smart transceiver component without modifying the communication channel from the perspective of the application, the method comprising the acts of:
-
establishing a communication channel between the application and the smart transceiver component using at least one initial communication mechanism, the communication channel including security and application-level logic which the application uses to communicate peer messages to the smart transceiver component, wherein the smart transceiver component selects the at least one initial communication mechanism by performing the following acts; detecting that the peer is configured primarily to receive messages from one or more of the one or more other peers; identifying a plurality of communication mechanisms for communicating peer messages between the peer and the one or more other peers; automatically determining that, based on the peer being configured primarily to receive messages, the at least one initial communication mechanism of the plurality of communication mechanisms is preferable to another communication mechanism of the plurality of communication mechanisms for use within the communication channel between the application and the smart transceiver; and automatically selecting the at least one initial communication mechanism to be used within the communication channel; after the communication channel is established, receiving, by the application, at least one peer message from one or more of the one or more other peers using the established communication channel such that the selected at least one initial communication mechanism is used by the smart transceiver component to receive the at least one peer message; without establishing a new communication channel, automatically replacing the at least one initial communication mechanism in the established communication channel with the selected at least one subsequent communication mechanism while retaining the security and application-level logic of the communication channel such that the communication channel from the perspective of the application remains unchanged, wherein the smart transceiver component replaces the at least one initial communication mechanism by performing the following acts; while the communication channel is still established between the application and the smart transceiver component, the smart transceiver component detecting that the peer'"'"'s configuration has changed such that the peer is configured primarily to send messages to one or more of the one or more other peers; automatically determining, by the smart transceiver component, that, based on the peer being configured primarily to send messages, at least one subsequent communication mechanism of the plurality of communication mechanisms that is different from the at least one initial communication mechanism is preferable to the at least one initial communication mechanism; and automatically selecting the at least one subsequent communication mechanism to be used in the communication channel; and after the at least one initial communication mechanism is replaced with the at least one subsequent communication mechanism in the communication channel, sending, by the application, at least one peer message to one or more of the one or more other peers over the established communication channel using the same security and application-level logic even though the at least one subsequent communication mechanism, rather than the at least one initial communication mechanism, is used within the established communication channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16)
-
-
14. One or more computer storage media for use in a system where a peer having an application and a smart transceiver component for communicating with one or more recipient one or more other peers in a peer group over a network, the computer storage media having computer-executable instructions stored thereon that, when executed, cause one or more processors to perform a method of dynamically adjusting a communication mechanism used in a communication channel between the application and the smart transceiver component without modifying the communication channel from the perspective of the application, the method comprising the following:
-
establishing a communication channel between the application and the smart transceiver component using at least one initial communication mechanism, the communication channel including security and application-level logic which the application uses to communicate peer messages to the smart transceiver component, wherein the smart transceiver component selects the at least one initial communication mechanism by performing the following acts; detecting that the peer is configured primarily to receive messages from one or more of the one or more other peers; identifying a plurality of communication mechanisms for communicating peer messages between the peer and the one or more other peers; automatically determining that, based on the peer being configured primarily to receive messages, the at least one initial communication mechanism of the plurality of communication mechanisms is preferable to another communication mechanism of the plurality of communication mechanisms for use within the communication channel between the application and the smart transceiver; and automatically selecting the at least one initial communication mechanism to be used within the communication channel; after the communication channel is established, receiving, by the application, at least one peer messages from one or more of the one or more other peers using the established communication channel such that the selected at least one initial communication mechanism is used by the smart transceiver component to receive the at least one peer message; without establishing a new communication channel, automatically replacing the at least one initial communication mechanism in the established communication channel with the selected at least one subsequent communication mechanism while retaining the security and application-level logic of the communication channel such that the communication channel from the perspective of the application remains unchanged, wherein the smart transceiver component replaces the at least one initial communication mechanism by performing the following acts; while the communication channel is still established between the application and the smart transceiver component, the smart transceiver component detecting that the peer'"'"'s configuration has changed such that the peer is configured primarily to send messages to one or more of the one or more other peers; automatically determining, by the smart transceiver component, that, based on the peer being configured primarily to send messages, at least one subsequent communication mechanism of the plurality of communication mechanisms that is different from the at least one initial communication mechanism is preferable to the at least one initial communication mechanism; and automatically selecting the at least one subsequent communication mechanism to be used in the communication channel; and after the at least one initial communication mechanism is replaced with the at least one subsequent communication mechanism in the communication channel, sending, by the application, at least one peer messages to one or more of the one or more other peers over the established communication channel using the same security and application-level logic even though the at least one subsequent communication mechanism, rather than the at least one initial communication mechanism, is used to send the at least one peer message within the established communication channel. - View Dependent Claims (15)
-
Specification