SHARING MEDIA AMONG REMOTE ACCESS CLIENTS IN A UNIVERSAL PLUG AND PLAY ENVIRONMENT
20230044568 · 2023-02-09
Inventors
Cpc classification
H04L12/5691
ELECTRICITY
H04L12/2809
ELECTRICITY
International classification
G06F15/16
PHYSICS
H04L12/28
ELECTRICITY
Abstract
In general, in one aspect, the disclosure describes a Universal Plug and Play (UPnP) Remote Access Server (RAS) to provide a communication channel between UPnP Remote Access Clients (RACs) connected thereto. The UPnP RAS maintains local discovery information for UPnP devices connected to a local network and remote discovery information for remote UPnP devices communicating therewith. The UPnP RAS provides the remote UPnP devices communicating therewith with the local discovery information and the remote discovery information. The remote discovery information is utilized by a first remote UPnP device to discover a second UPnP device and vice versa. After discovery, a first remote UPnP device can communicate with a second UPnP device and vice versa.
Claims
1. (canceled)
2. A system for remote communications between remote access clients connected thereto, the system comprising: a hardware processor that: establishes a first connection with a first device; in response to establishing the first connection with the first device, adds a first portion of network information received from the first device to aggregated network information; establishes a second connection with a second device; and in response to establishing the second connection with the second device, transmits at least the portion of aggregated network information to the second device based on allowance information specified by the first device that indicates whether the second device is allowed access to the first device.
3. The system of claim 2, wherein the hardware processor further determines whether to synchronize the network information for the first device and the second device based on the allowance information for accessing the first device, wherein the at least the portion of aggregated network information is transmitted to the second device in response to determining that the discovery information for the first device is to be exchanged with the second device.
4. The system of claim 1, wherein the hardware processor: detects local devices connected to a local network; receives discovery information associated with the local devices; and adds the discovery information associated with the local devices to aggregated discovery information.
5. The system of claim 4, wherein the first device discovers the local devices based on the aggregated discovery information and accesses one or more of the local devices using the first connection.
6. The system of claim 4, wherein the second device discovers the local devices based on the aggregated discovery information and accesses one or more of the local devices using the second connection.
7. The system of claim 4, wherein the hardware processor further: detects changes to the local devices connected to the local network; updates the discovery information for the local devices in a local branch of the aggregated discovery information; and transmits the updated local branch of aggregated discovery information to each of the first device and the second device.
8. A method for remote communications between remote access clients connected thereto, the method comprising: establishing a first connection with a first device; in response to establishing the first connection with the first device, adding a first portion of network information received from the first device to aggregated network information; establishing a second connection with a second device; and in response to establishing the second connection with the second device, transmitting at least the portion of aggregated network information to the second device based on allowance information specified by the first device that indicates whether the second device is allowed access to the first device.
9. The method of claim 8, wherein the method further comprises determining whether to synchronize the network information for the first device and the second device based on the allowance information for accessing the first device, wherein the at least the portion of aggregated network information is transmitted to the second device in response to determining that the discovery information for the first device is to be exchanged with the second device.
10. The method of claim 8, wherein the method further comprises: detecting local devices connected to a local network; receiving discovery information associated with the local devices; and adding the discovery information associated with the local devices to the aggregated discovery information.
11. The method of claim 10, wherein the first device discovers the local devices based on the aggregated discovery information and accesses one or more of the local devices using the first connection.
12. The method of claim 10, wherein the second device discovers the local devices based on the aggregated discovery information and accesses one or more of the local devices using the second connection.
13. The method of claim 10, wherein the method further comprises: detecting changes to the local devices connected to the local network; updating the discovery information for the local devices in a local branch of the aggregated discovery information; and transmitting the updated local branch of aggregated discovery information to each of the first device and the second device.
14. A non-transitory computer-readable medium containing computer executable instructions that, when executed by a processor, cause the processor to perform a method for remote communications between remote access clients connected thereto, the method comprising: establishing a first connection with a first device; in response to establishing the first connection with the first device, adding a first portion of network information received from the first device to aggregated network information; establishing a second connection with a second device; and in response to establishing the second connection with the second device, transmitting at least the portion of aggregated network information to the second device based on allowance information specified by the first device that indicates whether the second device is allowed access to the first device.
15. The non-transitory computer-readable medium of claim 14, wherein the method further comprises determining whether to synchronize the network information for the first device and the second device based on the allowance information for accessing the first device, wherein the at least the portion of aggregated network information is transmitted to the second device in response to determining that the discovery information for the first device is to be exchanged with the second device.
16. The non-transitory computer-readable medium of claim 14, wherein the method further comprises: detecting local devices connected to a local network; receiving discovery information associated with the local devices; and adding the discovery information associated with the local devices to the aggregated discovery information.
17. The non-transitory computer-readable medium of claim 16, wherein the first device discovers the local devices based on the aggregated discovery information and accesses one or more of the local devices using the first connection.
18. The non-transitory computer-readable medium of claim 16, wherein the second device discovers the local devices based on the aggregated discovery information and accesses one or more of the local devices using the second connection.
19. The non-transitory computer-readable medium of claim 16, wherein the method further comprises: detecting changes to the local devices connected to the local network; updating the discovery information for the local devices in a local branch of the aggregated discovery information; and transmitting the updated local branch of aggregated discovery information to each of the first device and the second device.
Description
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0021] The features and advantages of the various embodiments will become apparent from the following detailed description in which:
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
DETAILED DESCRIPTION
[0029] Referring to components illustrated in
[0030] Referring to components illustrated in
[0031] The RADA instructions 116 (or 156) can provide their local discovery information to the RAS (or RAC) when communications between the RAC and RAS are first established. In addition, RADA instructions 116 (or 156) can provide their local discovery information to the RAS (or RAC) when the local discovery information changes (e.g., local device added, local device removed). Based on the local and remote discovery information maintained for a RAC, the RAC can discover and access any devices connected to itself or the RAS. Based on the local and remote discovery information maintained for a RAS, devices connected to the RAS can discover and access any other devices connected to the RAS, or any RAC or any devices connected to any RAC in communication with the RAS.
[0032] According to one embodiment, the RADA instructions 156 can be modified to synchronize both its local discovery information and its remote discovery information with any RACs connected thereto. The RADA instructions 156 can synchronize the local and remote discovery information when communications is first established with a RAC and when changes are made to the local discovery information or the remote discovery information. The changes to the remote discovery information can include the addition of a new remote discovery information when communications with a new RAC is established or the update of a remote branch based on updated discovery information received from a current RAC. The synchronization of the remote discovery information by the RADA instructions 156 enables the RADA instructions 116 to receive and maintain remote discovery information for the RAS as well as other RACs in communication with the RAS.
[0033] The RADA configuration instructions 157 can be modified to enable the operator of the network or a user of a RAC to filter the remote discovery information that the RADA instructions 156 provide to the RADA instructions 116. For example, a user of a remote device containing proprietary data may want the number of remote users having access thereto blocked or limited. The RADA instructions 116 may need to be modified to maintain separate branches of remote discovery information (e.g., one branch for each remote connection).
[0034] With a RAC having the discovery information for other remote RACs maintained therein, the RAC can use the discovery information to discover and access the other remote RACs or devices connected thereto. Communications (e.g., file sharing) between remote RACs (or devices connected to the remote RACs) can be accomplished without the need to copy content to a device (e.g., media server) connected to the RAS via a local network.
[0035]
[0036] The second RAC (e.g., RAC 220 in
[0037] The addition of the discovery information for the second RAC to the remote discovery information for the RAS is a change to the discovery information of the RAS that can initiate the RAS synchronizing its discovery information. The synchronizing of the discovery information can be limited to the first RAC (since the changes were initiated by the second RAC and the second RAC remote branch of the RAS is the same as the local branch for the second RAC). The RAS can synchronize all of its discovery information, just the remote discovery information, or just the newly added remote discovery information. The first RAC can add the new discovery information to a remote branch (new remote branch separate from remote branch capturing RAS). The first RAC can propagate the new remote branch discovery information (provided by the RAS) to other devices connected thereto (e.g., the media server 212 or other devices connected to the network 214 in
[0038]
[0039]
[0040] Initially each of the media servers 212, 222, 234 connect to the respective networks 214, 224, 230 (600, 602, 604). The media servers 212, 222, 234 can send the networks 214, 224, 230 messages (e.g., ssdp:alive messages) to indicate they desire to connect thereto (606, 608, 610). The RACs 210, 220 and RAS 232 can receive these messages and discover the media servers 212, 222, 234 and then add the media servers 212, 222, 234 to their local branch of discovery information (612, 614, 616).
[0041] The RAC 210 can connect to the RAS 232 (618) and a secure RAT channel can be established between the RAC 210 and the RAS 232 (620). The RAS 232 can synchronize the device information from its local branch (e.g., media server 234) to RAC 210 (622). The RAC 210 can add the media server 234 to a remote branch of discovery information (624). The remote branch can be associated with the network 230. The RAC 210 can synchronize the device information from its local branch (e.g., media server 212) to the RAS 232 (626). The RAS 232 can add the media server 212 to a remote branch of discovery information (628). The remote branch can be associated with the network 214.
[0042] The RAC 220 can connect to the RAS 232 (630) and a secure RAT channel can be established between the RAC 220 and the RAS 232 (632). The RAS 232 can synchronize the device information from its local branch (e.g., media server 234) and from its remote branch (e.g., media server 212) to RAC 220 (634). The RAC 220 can add the media servers 212, 234 to a remote branch(s) of discovery information (636). The media server 212 can be added to a remote branch associated with network 214 and the media server 234 can be added to a remote branch for the network 230. The synchronization of media servers (634) and the adding of the media servers to remote branches (636) are illustrated as happening together, but could be preformed separately without departing from the current scope. That is, the RAS 232 could synchronize its local branch first and then synchronize its remote branch or vice versa.
[0043] The RAC 220 can synchronize the device information from its local branch (e.g., media server 222) to the RAS 232 (638). The RAS 232 can add the media server 222 to a remote branch of discovery information (640). The remote branch can be associated with the network 224. The RAS 232 can then synchronize the device information from its remote branch (e.g., media server 222) to the RAC 210 (642). The RAC 210 can add the media server 222 to a remote branch of discovery information (644). The media server 222 can be added to a remote branch associated with network 224.
[0044] The RACs 210, 220 now include discovery information for other remote networks. After the discovery information is propagated to the networks 214, 224, the RAC 220 can find and browse the media content of media server 212 (646) and the RAC 210 can find and browse the media content of media server 222 (648).
[0045] The synchronization of both local and remote discovery information by a RAS 232 enables communications between the remote devices (configured as authorized RACs) 210, 220 to occur while only utilizing a single RAS (avoid unnecessary complex configuration of an additional RAS, only require one public IP address). The remote devices (RACs) 210, 220 can easily share their own media content (or content from media servers 212, 222) with each other by connecting to the RAS 232. Digital home network users can more easily and conveniently share media content with each other even when the users are all remote from the home network 230.
[0046] Although the disclosure has been illustrated by reference to specific embodiments, it will be apparent that the disclosure is not limited thereto as various changes and modifications may be made thereto without departing from the scope. Reference to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described therein is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
[0047] The various embodiments are intended to be protected broadly within the spirit and scope of the appended claims.