A home-networking gateway may provide a service to a device on a home network by transparently accessing (or spoofing) a capability of a different device on the home network. The device capabilities may be automatically detected and used. A home-networking gateway also may transparently provide a service from a host system to a device on a home network by accessing a service on a host system.
|
0. 94. A proxy server for performing a requested function, comprising:
means for advertising, to a first device, a function that a second device is capable of performing as a function that the proxy server is capable of performing;
means for receiving, at the proxy server, a request to perform the function from the first device;
means for, in response to receiving the request to perform the function, coordinating, with the second device, performance of the requested function: and
means for spoofing the first device such that it appears to the first device that the proxy server performed the requested function.
0. 79. A method in a proxy server for performing a requested function, comprising:
advertising, to a first device, a function that a second device is capable of performing as a function that the proxy server is capable of performing;
receiving, at the proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, using the proxy server to coordinate with the second device, thereby performing the function requested by the first device; and
spoofing the first device such that it appears to the first device that the proxy server performed the requested function.
0. 86. A non-transitory computer-readable storage medium having instructions stored thereon, that if executed by a proxy server, cause the proxy server to perform acts, including:
advertising, to a first device, a function that a second device is capable of performing as a function that the proxy server is capable of performing;
receiving a request to perform the function from the first device;
in response to receiving the request to perform the function, coordinating with the second device to perform the function requested by the first device; and
spoofing the first device such that it appears to the first device that the proxy server performed the requested function.
0. 90. A proxy server for performing a requested function, comprising:
a processor; and
a memory that stores instructions usable to control the proxy server, wherein the proxy server is configured to:
advertise, to a first device, a function that a second device is capable of performing as a function that the proxy server is capable of performing;
receive, at the proxy server, a request to perform the function from the first device,
in response to receiving the request to perform the function, coordinate with the second device, to perform the function requested by the first device; and
spoof the first device such that the local proxy server performed the requested function.
0. 95. A method for identifying a function of a first device, comprising:
receiving, at the proxy server, an indication of a function that the first device is capable of performing;
associating the indication of the function that the first device is capable of performing with a first device identifier;
advertising, by the proxy server to devices other than the first device and the proxy server, that the proxy server is capable of performing the function that the first device is capable of performing; and
storing, at the proxy server, the indication of the function that the first device is capable of performing and the association of the indication with the first device identifier for use in using the proxy server to coordinate with the first device to perform the function at the first device in response to a request from a second device to perform the function at the proxy server.
14. A method for performing a requested function through a local proxy server, the method comprising:
establishing a communications session between a first device in a home network and a local proxy server in the home network;
establishing a communications session between the local proxy server in the home network and a trusted system;
advertising, to the first device, a function that the trusted system is capable of performing as a function that the local proxy server is capable of performing;
receiving, at the local proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, using the local proxy server to coordinate with the trusted system to perform the function requested by the first device at the trusted system; and
spoofing the first device such that it appears to the first device that the local proxy server performed the requested function.
1. A method for performing a requested function through a local proxy server, the method comprising:
establishing a communications session between a first device in a home network and a local proxy server in the home network;
establishing a communications session between a second device in the home network and the local proxy server in the home network;
advertising, to the first device, a function that the second device is capable of performing as a function that the local proxy server is capable of performing;
receiving, at the local proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, using the local proxy server to coordinate with the second device, thereby performing the function requested by the first device; and
spoofing the first device such that it appears to the first device that the local proxy server performed the requested function.
0. 100. A method in a first device for providing a function, comprising:
transmitting, to a proxy server, an indication of the function that the first device is capable of performing;
transmitting, to the proxy server, a first device identifier that is associated with the first device, wherein the proxy server is configured to:
associate the indication of the function with first device identifier;
advertise, to devices other than the first device and the proxy server, that the proxy server is capable of performing the function; and
store the indication of the function and the association of the indication with the first device identifier to enable the proxy server to coordinate with the first device to perform the function at the first device in response to a request from a second device on the home network to perform the function at the proxy server;
receiving, from the proxy server, a request to perform the function; and
performing the requested function.
9. A method for automatically identifying a function of a first device on a home network, the method comprising:
establishing a communications session between a first device in the home network and a local proxy server in the home network;
receiving, at the local proxy server, an indication of a function that the first device is capable of performing;
associating the indication of the function that the first device is capable of performing with a first device identifier;
advertising, to other devices in the home network, that the local proxy server is capable of performing the function that the first device is capable of performing; and
storing, at the local proxy server, the indication of the function that the first device is capable of performing and the association of the indication with the first device identifier for use in using the local proxy server to coordinate with the first device to perform the function at the first device in response to a request from a second device on the home network to perform the function at the local proxy server.
62. An apparatus for performing a requested function through a local proxy server, the apparatus comprising a processor connected to a storage device and one or more input/output devices, wherein the processor is configured to:
establish a communications session between a first device in a home network and a local proxy server in the home network;
establish a communications session between the local proxy server in the home network and a trusted system;
advertise, to the first device, a function that the trusted system is capable of performing as a function that the local proxy server is capable of performing;
receive, at the local proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, use the local proxy server to coordinate with the trusted system to perform the function requested by the first device at the trusted system; and
spoof the first device such that it appears to the first device that the local proxy server performed the requested function.
49. An apparatus for performing a requested function through a local proxy server, the apparatus comprising a processor connected to a storage device and one or more input/output devices, wherein the processor is configured to:
establish a communications session between a first device in a home network and a local proxy server in the home network;
establish a communications session between a second device in the home network and the local proxy server in the home network;
advertise, to the first device, a function that the second device is capable of performing as a function that the local proxy server is capable of performing;
receive, at the local proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, use the local proxy server to coordinate with the second device and thereby perform the function requested by the first device; and
spoof the first device such that it appears to the first device that the local proxy server performed the requested function.
25. A non-transitory computer-readable storage medium having embodied thereon a computer program configured to perform a function through a local proxy server, the non-transitory computer-readable storage medium comprising one or more code segments configured to:
establish a communications session between a first device in a home network and a local proxy server in the home network;
establish a communications session between a second device in the home network and the local proxy server in the home network;
advertise, to the first device, a function that the second device is capable of performing as a function that the local proxy server is capable of performing;
receive, at the local proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, use the local proxy server to coordinate with the second device and thereby perform the function requested by the first device; and
spoof the first device such that it appears to the first device that the local proxy server performed the requested function.
38. A non-transitory computer-readable storage medium having embodied thereon a computer program configured to perform a requested function through a local proxy server, the non-transitory computer-readable storage medium comprising one or more code segments configured to:
establish a communications session between a first device in a home network and a local proxy server in the home network;
establish a communications session between the local proxy server in the home network and a trusted system;
advertise, to the first device, a function that the trusted system is capable of performing as a function that the local proxy server is capable of performing;
receive, at the local proxy server, a request to perform the function from the first device;
in response to receiving, from the first device, the request to perform the function, use the local proxy server to coordinate with the trusted system to perform the function requested by the first device at the trusted system; and
spoof the first device such that it appears to the first device that the local proxy server performed the requested function.
57. An apparatus for automatically identifying a function of a first device on a home network, the apparatus comprising a processor connected to a storage device and one or more input/output devices, wherein the processor is configured to:
establish a communications session between a first device in the home network and a local proxy server in the home network;
receive, at the local proxy server, an indication of a function that the first device is capable of performing;
associate the indication of the function that the first device is capable of performing with a first device identifier;
advertise, to other devices in the home network, that the local proxy server is capable of performing the function that the first device is capable of performing; and
store, at the local proxy server, the indication of the function that the first device is capable of performing and the association of the indication with the first device identifier for use in using the local proxy server to coordinate with the first device to perform the function at the first device in response to a request from a second device on the home network to perform the function at the local proxy server.
33. A non-transitory computer-readable storage medium having embodied thereon a computer program configured to automatically identify a function of a first device on a home network, the non-transitory computer-readable storage medium comprising one or more code segments configured to:
establish a communications session between a first device in the home network and a local proxy server in the home network;
receive, at the local proxy server, an indication of a function that the first device is capable of performing;
associate the indication of the function that the first device is capable of performing with a first device identifier;
advertise, to other devices in the home network, that the local proxy server is capable of performing the function that the first device is capable of performing; and
store, at the local proxy server, the indication of the function that the first device is capable of performing and the association of the indication with the first device identifier for use in using the local proxy server to coordinate with the first device to perform the function at the first device in response to a request from a second device on the home network to perform the function at the local proxy server.
2. The method of
4. The method of
accessing a set of rules, each rule associating a function with a device, to determine the capability of a device to perform a function for the first device,
wherein using the local proxy server to coordinate with the second device comprises:
using the local proxy server to coordinate with the second device an; and
enabling the second device to perform the function requested by the first device at the second device based on the accessed set of rules.
5. The method of
6. The method of
7. The method of
8. The method of
11. The method of
12. The method of
associating a priority with the first device identifier; and
storing the association of the priority with the first device identifier.
15. The method of
17. The method of
wherein using the local proxy server to coordinate with the trusted system to perform the function requested by the first device at the trusted system comprises leveraging the trusted system to provide the function requested by the first device at the trusted system based on the accessed set of rules.
18. The method of
wherein the local proxy server coordinates with the trusted system to perform the function requested by the first device at the trusted system only when the local proxy server is not capable of performing the function requested by the first device without the use of the trusted system.
19. The method of
20. The method of
21. The method of
22. The method of
accessing capability information to determine whether a home network device other than the first device is capable of performing the function requested by the first device, and
sending a request to the trusted system only if the home network device other than the first device is not capable of performing the function requested by the first device.
23. The method of
24. The method of
26. The non-transitory computer-readable storage medium of
27. The non-transitory computer-readable storage medium of
28. The non-transitory computer-readable storage medium of
29. The non-transitory computer-readable storage medium of
30. The non-transitory computer-readable storage medium of
31. The non-transitory computer-readable storage medium of
the one or more code segments are further configured to access capability information, and
the one or more code segments configured to determine whether the second device is capable of performing the function requested by the first device are configured to determine whether the second device is capable of performing the function requested by the first device based on the accessed capability information.
32. The non-transitory computer-readable storage medium of
34. The non-transitory computer-readable storage medium of
35. The non-transitory computer-readable storage medium of
36. The non-transitory computer-readable storage medium of
associate a priority with the first device identifier; and
store the association of the priority with the first device identifier.
37. The non-transitory computer-readable storage medium of
39. The non-transitory computer-readable storage medium of
40. The non-transitory computer-readable storage medium of
41. The non-transitory computer-readable storage medium of
42. The non-transitory computer-readable storage medium of
43. The non-transitory computer-readable storage medium of
44. The non-transitory computer-readable storage medium of
45. The non-transitory computer-readable storage medium of
46. The non-transitory computer-readable storage medium of
access capability information to determine whether a home network device other than the first device is capable of performing the function requested by the first device, and
only send a request to the trusted system if a home network device other than the first device is not capable of performing the function requested by the first device.
47. The non-transitory computer-readable storage medium of
48. The non-transitory computer-readable storage medium of
50. The apparatus of
51. The apparatus of
52. The apparatus of
access a set of rules, each rule associating a function and a device, to determine the capability of a device to perform a function for the first device,
wherein the processor is configured to use the local proxy server to coordinate with the second device and to enable the second device to perform the function requested by the first device based on the accessed set of rules.
53. The apparatus of
54. The apparatus of
55. The apparatus of
access capability information, and
determine whether the second device is capable of performing the function requested by the first device based on the accessed capability information.
56. The apparatus of
58. The apparatus of
59. The apparatus of
60. The apparatus of
associate a priority with the first device identifier; and
store the association of the priority with the first device identifier.
61. The apparatus of
63. The apparatus of
64. The apparatus of
65. The apparatus of
access a set of rules, each rule associating a function and a device, to determine the capability of a device to perform a function for the first device, and
use the local proxy server to coordinate with the trusted system to perform the function requested by the first device at the trusted system based on the accessed set of rules.
66. The apparatus of
67. The apparatus of
68. The apparatus of
access capability information, and
determine whether the trusted system is capable of performing the function requested by the first device based on the accessed capability information.
69. The apparatus of
70. The apparatus of
access capability information to determine whether a home network device other than the first device is capable of performing the function requested by the first device, and
send a request to the trusted system only if a home network device other than the first device is not capable of performing the function requested by the first device.
71. The apparatus of
72. The apparatus of
73. The method of
74. The method of
associating a network address with the first device;
storing, at the local proxy server, the network address and the association of the network address with the first device, wherein
storing the indication of the function that the first device is capable of performing and the association of the indication with the first device identifier enables a determination that the first device is capable of performing the function in response to a request for the function, and
storing the network address and the association of the network address with the first device enables sending a request to the first device to perform the function based on the determination that the first device is capable of performing the function and in response to the request for the function.
75. The method of
advertising, to the second device, the function that the first device is capable of performing as a function that the local proxy server is capable of performing,
receiving, at the local proxy server, a first request for the advertised function from the second device;
in response to receiving the first request from the second device, determining that the first device is capable of performing the requested function based on the stored association of the indication of the function that the first device is capable of performing with the first device identifier; and
based on a determination that the first device is capable of performing the requested function and in response to receiving the first request from the second device, sending a second request to the first device to perform the requested function in a manner that is transparent to the second device by sending the second request to the network address associated with the first device.
76. The method of
78. The method of
0. 80. The method of claim 79 further comprising:
accessing a set of rules, each rule associating a function with a device, to determine the capability of a device to perform a function for the first device,
wherein using the proxy server to coordinate with the second device comprises:
using the proxy server to coordinate with the second device; and
enabling the second device to perform the function requested by the first device at the second device based on the accessed set of rules.
0. 81. The method of claim 79 further comprising determining whether the proxy server is capable of performing the function requested by the first device without use of the second device, wherein the proxy server coordinates with the second device only when the proxy server is not capable of performing the function requested by the first device without the use of the second device.
0. 82. The method of claim 79 further comprising determining whether the second device is capable of performing the function requested by the first device.
0. 83. The method of claim 82 further comprising accessing capability information, wherein determining whether the second device is capable of performing the function requested by the first device comprises determining whether the second device is capable of performing the function requested by the first device based on the accessed capability information.
0. 84. The method of claim 82 wherein using the proxy server to coordinate with the second device comprises sending a request to the second device to perform the function requested by the first device, the request being sent to the second device only if the second device is determined to be capable of performing the function requested by the first device.
0. 85. The method of claim 79 wherein the second device is a system endorsed by an Internet service provider or by an Internet access service.
0. 87. The non-transitory computer-readable storage medium of claim 86 wherein the acts further comprise determining whether the second device is capable of performing the function requested by the first device.
0. 88. The non-transitory computer-readable storage medium of claim 87 wherein the acts further comprise accessing capability information, wherein determining whether the second device is capable of performing the function requested by the first device comprises determining whether the second device is capable of performing the function requested by the first device based on the accessed capability information.
0. 89. The non-transitory computer-readable storage medium of claim 86 wherein the second device is a system endorsed by an Internet service provider or by an Internet access service.
0. 91. The proxy server of claim 90 wherein the proxy server is further configured to determine whether the second device is capable of performing the function requested by the first device.
0. 92. The proxy server of claim 91 wherein the proxy server is further configured to access capability information, and to determine whether the second device is capable of performing the function requested by the first device based on based on the accessed capability information.
0. 93. The proxy server of claim 90 wherein the second device is an endorsed system of an Internet service provider or of an Internet access service.
0. 96. The method of claim 95 wherein the received indication includes a message that announces the presence of the first device on a home network.
0. 97. The method of claim 95 further comprising:
associating a priority with the first device identifier; and
storing the association of the priority with the first device identifier.
0. 98. The method of claim 95 further comprising:
associating a network address with the first device;
storing, at the proxy server, the network address and the association of the network address with the first device, wherein storing the indication of the function that the first device is capable of performing and the association of the indication with the first device identifier enables a determination that the first device is capable of performing the function in response to a request for the function, and storing the network address and the association of the network address with the first device enables sending a request to the first device to perform the function based on the determination that the first device is capable of performing the function and in response to the request for the function.
0. 99. The method of claim 95 wherein the first device identifier comprises a MAC address and the network address comprises an IP address.
|
Additionally or alternatively, the host system 120 may be used for off-site storage of memorable or valuable data files. For example, irreplaceable historic or family pictures may be digitized using scanner 112f and saved both on storage located on the home-network 110 and on storage located on the host system 120. The redundant pictures on the host system 120 may be preserved in the event of a catastrophic loss of the storage on the home network 110. The irreplaceable content may be more easily accessible outside of the home network, which may encourage a greater use of off-site storage for important or irreplaceable items.
In another example, the home-networking gateway 115 may spoof a music stream from a host system as local music storage. The music service on the host system may be advertised as local music storage.
The home-networking gateway 115 may provide a service or a capability available from one of the devices 112 or from the host system 120 based on the detection of a device or a capability, without requiring an explicit request from a device for the service. For example, the home-networking gateway 115 may detect a particular type of device or a particular capability, for example, when a device announces its presence and its capability on the network using UPnP. The home-networking gateway 115 may determine whether a script is associated with the detected device or the detected capability by capability workflow information 115d. If so, the home-networking gateway 115 executes the associated script to provide a service or capability to the home network.
For example, when the digital camera 112e is connected to the home network, the digital camera 112e announces its presence using UPnP by sending a message over the home network. The digital camera 112e also announces in the message a capability as a camera and a storage capability that includes stored digital photographs. The home-networking gateway 115 receives the message and sends a reply message. The reply message by the home-networking gateway 115 announces the presence of the home-networking gateway 115 and the capabilities available through the home-networking gateway 115. The capabilities included in the reply message are the capabilities identified in the device capability information 115b and/or the services identified in the host system capability information 115c.
Based on the capability workflow information 115d, the home-networking gateway 115 executes a script associated with the detection of photographs at a remote device with which it communicates. The script also may be part of capability workflow information 115d or may be stored elsewhere, as described either with respect to capability workflow information 115d. The home-networking gateway 115 may access the photographs stored in the digital camera 112e and may store the photographs in a location specified in the script (e.g., on storage associated with the personal computer 112a), send the stored photographs to a photograph print service available from a website and order a predetermined quantity and type of photograph prints, and/or post the stored photographs to a family photograph album web page so that family members may access the photographs from a remote location. Using the device capability spoofing ability and the host system capability spoofing ability of the home-networking gateway 115, the photographs taken with the digital camera 112e are stored locally, sent to a photograph print service, and/or published in a family photograph album, without user intervention.
The use of capability spoofing by home-networking gateway with a device synchronization function may be particularly advantageous. For example, when a PDA establishes a wireless connection with the home-networking gateway, the PDA may announce its presence on the home network. Based on the detection of the PDA, the home-networking gateway 115 may initiate a synchronization function that transparently uses storage that is available through the home-networking gateway and a personal information management function that provides a calendar and address book by the host system 120. For example, the home-networking gateway 115 may synchronize, or otherwise copy, a portion or all of the information from a calendar and an address book on the PDA 112k to storage on the home network, such as storage associated with the personal computer 112a. The home-networking gateway 115 also may send the calendar and address book information to a calendar and address book provided by the host system 120. The PDA calendar and address book information is available locally on the home network and available on the host system 120, without requiring user intervention. The availability of the calendar and address book information on the host system 120 may be advantageous. For example, the calendar and address book information may be accessible from any location that is able to access the host system.
The process 200 begins when a message that announces the presence of a device on the home network is received by the home-networking gateway (step 210). The message identifies the device that sent the message and identifies one or more capabilities that may be performed using the device.
The home-networking gateway stores the capability identified in the received message (step 220) and associates the identity of the message sender with the stored capability (step 230). For example, the home-networking gateway may modify device capability information, such as item 115b of
The home-networking gateway broadcasts a list of capabilities available using the home-networking gateway over the network (step 240). The list of capabilities may include capabilities of the home-networking gateway itself and capabilities that are available from other devices that are accessible through the home-networking gateway. For example, the list of capabilities accessed may be an implementation of the device capability information 115b and/or host system capability information 115c of
The process 200 also may be used by a home-networking gateway to identify the services that are available from a host system, such as host system 120 of
The process 300 begins when the requesting device 310 sends to the home-networking gateway 315 a request to use a particular capability of the home-networking gateway (step 330r). For example, the requesting device 310 may be aware of capabilities available from the home-networking gateway, for example, through a mutual discovery process, as described previously with respect to
The home-networking gateway 315 receives the request to use a particular capability of the home-networking gateway (step 330g). The home-networking gateway 315 determines whether the requested capability is available on the home-networking gateway 315 itself (step 334g). If so, the home-networking gateway 315 provides the capability using the resources of the home-networking gateway 315 itself. This may be referred to as using the native home-networking gateway resources (step 338g).
When the home-networking gateway 315 determines that the requested capability is not available on the home-networking gateway 315 itself (step 334g), the home-networking gateway accesses device capability information (340g). The device capability information may include a list of capabilities available using other devices on the home network, as described previously with respect to device capability information 115b of
The home-networking gateway 315 determines whether the requested capability is included in the capabilities included in the device capability information (step 344g). In other words, the home-networking gateway 315 determines whether the capability may be spoofed using another device on the home network. If not, the home-networking gateway 315 sends a message to the requesting device 310 that the operation failed (e.g., that the particular capability is not available through the home-networking gateway 315) (step 348g). The requesting device 310 receives the message that the operation failed and the process 300 ends (step 348r).
When the home-networking gateway 315 determines that the capability may be spoofed using another device on the home network (here, the providing device 325) (step 344g), the home-networking gateway 315 sends to the providing device 325 a request to use the capability (step 350g).
The providing device 325 receives the request (step 350p), provides the capability (step 354p), and sends an acknowledgment to the home-networking gateway 315 (step 358p).
In one example, the providing device 325 may receive a request to provide storage for a data file that is included in the request to use a capability (here, a storage capability) in step 350p. The providing device 325 stores the data file on a storage device accessible to the providing device 325. The providing device 325 sends an acknowledgment message to the home-networking gateway 315 that indicates the data file was successfully stored and the location in which the data file was stored.
In another example, the providing device 325 may receive a request to retrieve a particular data file in storage in the request to use a capability (here, a capability to retrieve from storage) in step 350p. The providing device 325 retrieves the data file from a storage device accessible to the providing device 325. The providing device 325 sends an acknowledgment message to the home-networking gateway 315 that includes the retrieved data file.
The home-networking gateway 315 receives the acknowledgment message (step 358g). Steps 350g-358g may be referred to as a device capability spoofing sub-process 360.
When the home-networking gateway 315 provides the capability using native home-networking gateway resources (step 338g) or when the home-networking gateway 315 uses the providing device 325 to provide the capability (sub-process 360), the home-networking gateway 315 sends to the requesting device 310 a message that the operation succeeded (step 364g). The message may include data or information that is appropriate to the particular capability requested by the requesting device 310. For example, the message that the operated succeeded may include a retrieved data file or a location that was used to store data file. The requesting device 310 receives the message that the operation succeeded (step 364r).
The home-networking gateway may be said to spoof, or otherwise fool, the requesting device 310 by the appearance that the home-networking gateway 315 itself provided the capability. In other words, the requesting device 310 is unaware of that the providing device 325 provided the capability. This may be referred to as making a capability transparently available to a requesting device.
The process 400 begins when the requesting device 410 sends to the home-networking gateway 415 a request to use a particular capability of the home-networking gateway 415 (step 430r). The home-networking gateway 415 receives the request (step 430g), determines whether the request can be satisfied using the native capabilities of the home-networking gateway 415 (step 434g), and, if so, provides the capability using native home-networking gateway resources (step 438g), all of which have been described previously with respect to steps 330g-338g of
When the home-networking gateway 415 determines that the capability is not able to be provided by a device on the home network (step 444g), the home-networking gateway 415 accesses host system capability information (step 468g). The host service capability information may include a list of services available from the host system 420 and how to access each service. The host system capability information may be an implementation of host system capability information 115c of
The home-networking gateway 415 determines whether the requested capability is included in the capabilities included in the host system capability information (step 470g). In other words, the home-networking gateway 415 determines whether the capability may be spoofed using the host system. If not, the home-networking gateway 415 sends a message to the requesting device 410 that the operation failed (e.g., that the particular capability is not available through the home-networking gateway 415) (step 472g). The requesting device 410 receives the message that the operation failed and the process 400 ends (step 472r).
When the home-networking gateway 415 determines that the capability may be spoofed using the host system 420 (step 470g), the home-networking gateway 415 sends to the host system 420 a request to access a host system service to use the host system capability (step 474g).
The host system 420 receives the request (step 474p), provides the capability by performing the requested service (step 476p), and sends an acknowledgment to the home-networking gateway 415 (step 478p).
In one example, the host system 420 may receive a request to provide a particular movie that is available from the host system 420. The host system 420 accesses the movie and sends an acknowledgment message to the home-networking gateway 415 that includes the movie.
The home-networking gateway 415 receives the acknowledgment message (step 478g). Steps 474g-478g may be referred to as a host system capability spoofing sub-process 480.
When the home-networking gateway 415 provides the capability using native home-networking gateway resources (step 438g), when the home-networking gateway 415 uses a device spoofing capability to provide the capability (sub-process 360), or when the home-networking gateway 415 uses the host system to provide the capability (sub-process 480), the home-networking gateway 415 sends a message that the operation succeeded (step 484g). The message may include data or information that is appropriate to the particular capability requested by the requesting device 410. For example, the message that the operated succeeded may include a retrieved data file, a location that was used to store data file, a requested movie, or a requested song. The requesting device 410 receives the message that the operation succeeded (step 484g).
In some implementations, the home-networking gateway may use a process that is less hierarchical than the process 400. For example, the home-networking gateway may access a consolidated list of capabilities that includes all of the capabilities available using the home-networking gateway itself, using any of the devices on the home network, or using the host system. The home-networking gateway then accesses the requested capability from the appropriate source (e.g., the home-networking gateway, a device on a home network, or the host system).
The process 500 begins with the home-networking gateway monitoring the home network (step 510). For example, the home-networking gateway may be waiting to receive a UPnP announcement of the presence and/or capability of a device. A device may be detected (step 520), for example, when the home-networking gateway receives a UPnP message announcing that a device has connected to the network.
When a device is detected (step 520), the home-networking gateway determines whether action is required (step 530). The home-networking gateway may determine whether action is required based on the type of the device detected (e.g., a PDA, a camera with stored photographs, and an automobile stereo system). The home-networking gateway may determine whether action is required by determining whether a script is associated with the particular type of device detected. This may be accomplished, for example, when the home-networking gateway accesses capability workflow information, such as capability workflow information 115d of
In some implementations, the home-networking gateway may determine whether action is required based on the detection of a particular device (e.g., a particular PDA of several PDAs that may connect to the home network) or may determine whether action is required based on a particular capability detected.
When the home-networking gateway determines that no action is required (step 540), the home-networking gateway continues monitoring the home network (step 510).
When the home-networking gateway determines that action is required (step 540), the home-networking gateway performs the required action (step 550). For example, the home-networking gateway accesses and executes the script associated with the detected type of device in capability workflow information.
The techniques described with respect to
Although the techniques and concepts have been described in which a home-networking gateway spoofs a host system, a trusted system that may not necessarily be in a host-client relationship with the home-networking gateway may be used in place of the described host system. Another type of trusted computing device also may be used to perform the described techniques and concepts. For example, a general-purpose computer accessible to the network, such as in a peer-to-peer relationship, or another trusted computer system may be used to perform the functions described as being performed by the host system.
The techniques and concepts are applicable to home network devices other than a home-networking gateway. For example, a router, a digital hub, a general-purpose computer, or a single-purpose configuration management device may perform the functions described as being performed by the home-networking gateway. The home-networking gateway or other similar devices may be referred to as a local proxy or a local proxy server.
Implementations may include a method or process, an apparatus or system, or computer software on a computer medium. It will be understood that various modifications may be made that still fall within the following claims. For example, advantageous results still could be achieved if steps of the disclosed techniques were performed in a different order and/or if components in the disclosed systems were combined in a different manner and/or replaced or supplemented by other components.
Meenan, Patrick, Chiles, David Clyde, Damick, Jeffrey J.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5826000, | Feb 29 1996 | Oracle America, Inc | System and method for automatic configuration of home network computers |
5852722, | Feb 29 1996 | Oracle America, Inc | System and method for automatic configuration of home network computers |
6052750, | Jan 06 1998 | Sony Corporation | Home audio/video network for generating default control parameters for devices coupled to the network, and replacing updated control parameters therewith |
6085236, | Jan 06 1998 | Sony Corporation | Home audio video network with device control modules for incorporating legacy devices |
6198479, | Jun 25 1997 | SAMSUNG ELECTRONICS CO , LTD | Home network, browser based, command and control |
6314447, | Oct 04 1999 | Sony Corporation; Sony Electronics Inc. | System uses local registry and load balancing procedure for identifying processing capabilities of a remote device to perform a processing task |
6314459, | Aug 13 1998 | KONINKLIJKE PHILIPS ELECTRONICS N V | Home-network autoconfiguration |
6349352, | Jan 06 1998 | Sony Corporation | Home audio/video network with both generic and parameterized device control |
6363434, | Mar 30 1999 | Sony Corporation | Method of managing resources within a network of consumer electronic devices |
6434596, | Jan 29 1999 | Sony Corporation; Sony Electronics, INC | Method and system for distributed queues in a multimedia network with proxies |
6523696, | Oct 15 1996 | Kabushiki Kaisha Toshiba | Communication control device for realizing uniform service providing environment |
6546419, | May 07 1998 | SAMSUNG ELECTRONICS CO , LTD , A KOREAN CORP | Method and apparatus for user and device command and control in a network |
6643684, | Oct 08 1998 | SNAP INC | Sender- specified delivery customization |
6691150, | Dec 22 1997 | MAXELL, LTD | Information device, information device system control method, and information device system |
6694349, | Nov 25 1998 | Sony Corporation | Method and system for message dispatching in a home audio/video network |
6801507, | Jul 27 1999 | Samsung Electronics Co., Ltd. | Device discovery and configuration in a home network |
6806977, | Dec 31 1998 | FREENY, JAMES P , III; FREENY, CHARLES C , III; FREENY, BRYAN E | Multiple integrated machine system |
6868447, | May 09 2000 | Oracle America, Inc | Mechanism and apparatus for returning results of services in a distributed computing environment |
6898618, | May 09 2000 | Oracle America, Inc | Client-specified display services in a distributed computing environment |
6904519, | Jun 12 1998 | Microsoft Technology Licensing, LLC | Method and computer program product for offloading processing tasks from software to hardware |
6918123, | Oct 02 1998 | UNILOC 2017 LLC | Calls identify scenario for control of software objects via property routes |
6924727, | Sep 27 2000 | Vivint, Inc | Method for remote control of home-located electronic devices and a management facility |
6950875, | May 09 2000 | Oracle America, Inc | Message conductors in a distributed computing environment |
7016966, | May 09 2000 | Oracle America, Inc | Generating results gates in a distributed computing environment |
7200644, | Mar 31 2000 | TEXAS INSTUMENTS INCORPORATED | Proxy internet browsing |
20010038392, | |||
20040203606, | |||
20040240451, | |||
20050246624, | |||
20050273508, | |||
20060053375, | |||
20060218650, | |||
20060288071, | |||
20070094366, | |||
20070157260, | |||
WO122661, | |||
WO122661, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 07 2003 | DAMICK, JEFFREY J | AMERICA ONLINE, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025611 | /0816 | |
Mar 07 2003 | MEENAN, PATRICK | AMERICA ONLINE, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025611 | /0816 | |
Mar 25 2003 | CHILES, DAVID CLYDE | AMERICA ONLINE, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025611 | /0816 | |
Apr 03 2006 | AMERICA ONLINE, INC | AOL LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 025718 | /0610 | |
Sep 17 2009 | AOL LLC | TARQUIN CONSULTING CO , LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025611 | /0870 | |
Jan 04 2010 | Tarquin Consulting Co., LLC | (assignment on the face of the patent) | / | |||
Aug 27 2015 | TARQUIN CONSULTING CO , LLC | CALLAHAN CELLULAR L L C | MERGER SEE DOCUMENT FOR DETAILS | 037396 | /0647 | |
Dec 22 2022 | CALLAHAN CELLULAR L L C | INTELLECTUAL VENTURES ASSETS 186 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 062708 | /0463 | |
Feb 14 2023 | MIND FUSION, LLC | INTELLECTUAL VENTURES ASSETS 186 LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 063155 | /0300 | |
Feb 14 2023 | INTELLECTUAL VENTURES ASSETS 186 LLC | MIND FUSION, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 064271 | /0001 | |
Apr 02 2023 | MIND FUSION, LLC | RECEPTREXX LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 063299 | /0627 |
Date | Maintenance Fee Events |
Jun 24 2015 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 14 2019 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 15 2015 | 4 years fee payment window open |
Nov 15 2015 | 6 months grace period start (w surcharge) |
May 15 2016 | patent expiry (for year 4) |
May 15 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 15 2019 | 8 years fee payment window open |
Nov 15 2019 | 6 months grace period start (w surcharge) |
May 15 2020 | patent expiry (for year 8) |
May 15 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 15 2023 | 12 years fee payment window open |
Nov 15 2023 | 6 months grace period start (w surcharge) |
May 15 2024 | patent expiry (for year 12) |
May 15 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |