Service and messaging infrastructure to support creation of distributed, peer to peer applications with a service oriented architecture
First Claim
1. A computer-readable medium having computer-readable instructions stored thereon that, upon execution by a processor, cause the processor to send a request for performing a service to a device in a network, the instructions comprising:
- receiving a request to perform a service from an application executing at a first device;
establishing communication between the first device and a plurality of devices in a network;
selecting a second device to perform the service from the plurality of devices in the network;
determining the availability of the selected second device;
if the selected second device is not available, storing the request at a third device, the third device selected from the plurality of devices in the network and from the first device; and
if the selected second device is available, sending the request to the selected second device.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and method allowing engineers to create large scale, consumer oriented, distributed applications that utilize peer to peer messaging patterns and service oriented architectures. Applications built using the method produce operational cost curves typical of successful peer to peer systems. The system includes mechanisms to deal with reliably and securely sending messages over consumer grade networks that are inherently unreliable and insecure while still permitting direct, consumer-to-consumer messaging by virtue of an extensible Network Address Translation traversal strategy. The system and method allows for the creation of consumer applications by facilitating the identification, location and assembly of services running in a network on a plurality of devices. While the application of the system and method to the distribution of large digital media is readily apparent, the system and method is, in no way, limited to this domain.
119 Citations
16 Claims
-
1. A computer-readable medium having computer-readable instructions stored thereon that, upon execution by a processor, cause the processor to send a request for performing a service to a device in a network, the instructions comprising:
-
receiving a request to perform a service from an application executing at a first device;
establishing communication between the first device and a plurality of devices in a network;
selecting a second device to perform the service from the plurality of devices in the network;
determining the availability of the selected second device;
if the selected second device is not available, storing the request at a third device, the third device selected from the plurality of devices in the network and from the first device; and
if the selected second device is available, sending the request to the selected second device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for sending a request for performing a service to a device in a network, the method comprising:
-
receiving a request to perform a service from an application executing at a first device;
establishing communication between the first device and a plurality of devices in a network;
selecting a second device to perform the service from the plurality of devices in the network;
determining the availability of the selected second device;
if the selected second device is not available, storing the request at the first device; and
if the selected second device is available, sending the request to the selected second device.
-
-
16. A device, the device comprising:
-
a computer-readable medium having computer-readable instructions stored thereon, the instructions comprising receiving a request to perform a service from an application executing at the device;
establishing communication between the device and a plurality of devices in a network;
selecting a second device to perform the service from the plurality of devices in the network;
determining the availability of the selected second device;
if the selected second device is not available, storing the request at the device; and
if the selected second device is available, sending the request to the selected second device;
a communication interface, the communication interface sending the request to the selected second device; and
a processor, the processor coupled to the communication interface and to the computer-readable medium and configured to execute the instructions.
-
Specification