A method of aggregating control in a first network and a second network, the first network having first devices and the second network having second devices. A communication channel is established between the first and second networks; from the first network the second devices in the second network are discovered through the communication channel; and from the first network one of the second devices in the second network is controlled through the communication channel. The first and second network can be connected but isolated. Further, the first and second networks can implement different network protocols, or the same network protocol.
|
18. A non-transitory program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform a method of aggregating control point information in a first home network, the method comprising:
at a control point aggregator in the first home network, acquiring information regarding one or more control points located in a second home network, wherein the one or control points located in the second home network are not discoverable directly by control points in the first home network due to the presence of at least one firewall between the first home network and the second home network;
storing the information in a data structure;
receiving a discovery request from a first control point in the first home network;
accessing the data structure to retrieve the information regarding the one or more control points located in the second home network;
forwarding the discovery request to the one or more control points located in the second home network using the information from the data structure.
1. A method of aggregating control point information in a first home network, the method comprising:
at a first control point aggregator in the first home network, acquiring information regarding one or more control points located in a second home network, wherein the information was compiled by intercepting multicast discovery requests in the second home network at a second control point aggregator in the second home network, wherein the one or control points located in the second home network are not discoverable directly by control points in the first home network due to the presence of at least one firewall between the first home network and the second home network;
storing the information in a data structure at the first control point aggregator;
receiving, at the first control point aggregator, a multicast discovery request from a first control point in the first home network, the multicast discovery request intended to discover all available devices in the first home network;
accessing the data structure to retrieve the information regarding the one or more control points located in the second home network;
forwarding the discovery request to the one or more control points located in the second home network using the information from the data structure.
9. A first home network comprising:
one or more control points;
a firewall logically separating the first home network from the second home network such that the one or more control points in the first home network cannot discover control points in the second home network;
a first control point aggregator adapted to:
aggregate control point information from the second home network by directly addressing a second control point aggregator in the second home network using a previously known address for the control point aggregator in the second home network, wherein the second control point aggregator gathers control point information about the second home network via interception of multicast discovery requests from control points in the second home network;
aggregate control point information from the first home network by discovering the one or more control points in the first home network;
respond to a multicast discovery request from a control point in the first home network by providing at least aggregated control point information from the second home network; and
respond to a multicast discovery request from the second control point aggregator in the second home network by providing at least aggregated control point information from the first home network.
14. A control point for use in a first home network having one or more control points, the control point comprising:
a processor;
a memory; and
a first control point aggregator, comprising:
a control point layer;
an aggregation layer, wherein the aggregation layer provides communication among the control points and a second control point aggregator in a second home network, wherein the first home network and the second home network are separated by a firewall; and
a device architecture stack layer including:
a discovery layer which responds to control point discovery requests from the control point layer and forwards the discovery result to the second control point aggregator in the second home network via the aggregation layer, and which is invoked by control points through the aggregation layer to update control point information stored on the first control point aggregator;
a description layer, which is invoked by control points in the second home network through the aggregation layer and forwards description request to control points in the first home network through the control point layer;
an invocation layer, which is invoked by control points through the aggregation layer and forwards a control point invocation to control points through the control point layer; and
an eventing layer, which responds to control point events and forwards them to other control points, including control points in the second home network, through the aggregation layer.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
10. The first home network of
11. The first home network of
12. The first home network of
13. The first home network of
15. The control point of
16. The control point of
17. The control point of
19. The non-transitory program storage device of
20. The non-transitory program storage device of
21. The non-transitory program storage device of
22. The non-transitory program storage device of
23. The non-transitory program storage device of
24. The non-transitory program storage device of
25. The non-transitory program storage device of
26. The non-transitory program storage device of
27. The method of
|
The present invention relates to control of middleware, and in particular to control of middleware in home networks.
Many middlewares for networks such as home networks use two device types: control points (controllers) and controlled devices. Control points manipulate devices by discovering devices and controlling devices. It is desirable for control points to discover all devices in the network in order to control all the devices. However, there are cases where control points can discover only a limited number of devices or control only a few of the devices because of network configuration (such as multiple routers) or usage of special hardware (such as firewire).
For example, Universal Plug and Play (UPnP) defines a control protocol in a network of interconnected device, wherein the first step in UPnP networking is discovery. When a device is added to the network, the UPnP discovery protocol allows that device to advertise its services to control points (e.g., controllers) in the network. Similarly, when a control point is added to the network, the discovery protocol allows that control point to search for devices of interest in the network.
The UPnP discovery protocol relies on multicast over IP in the network. If a network configuration uses multiple routers, multicast packets from a control point for discovery may not be visible for another control point. This is because multicast is not always forwarded between networks. In that case, control points in the network are separated into groups and controls for devices are limited only to devises “visible” to the control points.
Home Audio Visual Interoperability Architecture (HAVi) uses firewire for discovery. If a control point does not have firewire port, it cannot discover any of devices in the firewire network. HAVi to UPnP bridges can be used to connect HAVi devices to UPnP devices or vice versa. However, the bridges are designed with only specific home network middlewares with limited functionalities and do not provide a general method of aggregating control points.
There is therefore a need for a method and system for aggregating the control of middleware control points in a network.
The present invention addresses the above problems. In one embodiment, the present invention provides a method and system whereby the control points in a network can discover all of devices in the network and to control the devices by using communication a channel between control points.
In one version, such a method of aggregating control in a first network and a second network, the first network having first devices and the second network having second devices, comprises the steps of: establishing a communication channel between the first and second networks; from the first network discovering the second devices in the second network through the communication channel; and from the first network controlling a second device in the second network through the communication channel. The first and second network can be connected but isolated. Further, the first and second networks can implement different network protocols, or the same network protocol.
The method can further include the steps of maintaining a device table in the second network, wherein the device table includes a local address and a corresponding proxy address for each of one or more of the second devices. The step of discovering second devices in the second network further includes the steps of obtaining the proxy address for said one or more second devices from the device table for accessing one of the second devices from the first network using the proxy address through the communication channel. Alternatively, the step of controlling the second devices in the second network further includes the steps of obtaining the proxy address for that second device from the device table, and accessing that second device from the first network using the proxy address through the communication channel.
The method can further include the steps of: from the second network discovering the first devices in the first network through the communication channel; and from the second network controlling a first device in the first network through the communication channel. Further, a device table is maintained in the first network, wherein the device table includes a local address and a corresponding proxy address for each of one or more of the first devices. In that case, the step of discovering the first devices in the first network further includes the steps of obtaining the proxy address for said one or more first devices from the device table for accessing a first device from the second network using the proxy address through the communication channel. Alternatively, the step of controlling a first device in the first network further includes the steps of obtaining the proxy address for that first device from the device table, and accessing that first device from the second network using the proxy address through the communication channel.
In another embodiment the present invention provides a system for aggregating control in a first network and a second network, the first network having a first control point and first devices and the second network having a second control point and second devices, the system comprising: a first aggregator for the first network; and a second aggregator for the second network; wherein the first and second aggregators establish a communication channel therebetween whereby the first control point discovers and controls the second devices in the second network via the communication channel. The system can further include a device table in the second network, wherein the device table includes a local address and a corresponding proxy address for one or more of the second devices. In that case, the first control point discovers the devices in the second network by further obtaining the proxy address for each of one or more second devices from the device table. Alternatively, the first control point further obtains the proxy address for one of the second devices from the device table to control that second device using the proxy address through the communication channel via the first and second aggregators.
In addition, the second control point can discover the first devices in the first network through the communication channel via the first and second aggregators. The second control point further controls one of the first devices in the first network through the communication channel via the first and second aggregators. The system can also include a device table in the first network, wherein the device table includes a local address and a corresponding proxy address for each of one or more of the first devices. In that case, the second control point further discovers the first devices in the first network by obtaining the proxy address for said one or more first devices from the device table. Alternatively, the second control point further controls a first device in the first network by obtaining the proxy address for that first device from the device table, and accessing that first device using the proxy address through the communication channel via the first and second aggregators.
As such, the present invention provides a method for control points to discover all devices in the network and to control devices regardless of network configuration. By discovering all devices in the network, control points can perform more operations without limitation. Such a method further provides home federation by aggregating control points in different home networks. Further, home networks are typically connected to Internet Service Provider (ISP)s using gateways, wherein the gateways usually implement either Network Address Translation (NAT) or firewall which isolates home network outside of network. According to another embodiment of the present invention, by aggregating control points in different homes, control points can perform operations on devices from another home network or aggregate operations to create a new operation.
Other embodiments, features and advantages of the present invention will be apparent from the following specification taken in conjunction with the following drawings.
In one embodiment, the present invention provides a method and system whereby the control points in a network can discover all of devices in the network and to control the devices by using communication a channel between control points regardless of network configuration. By discovering all devices in the network, control points can perform more operations without limitation.
The networks 20 and 21, though physically connected, are logically isolated wherein devices and controllers in one network cannot access the controller and devices of another network without the CPAs 50 and 51. The two CPAs 50, 51 create an explicitly addressed communication channel 55 between the two isolated networks 20 and 21 and allow the controller in one network to discover and control devices in the other network.
For example, in a home network it is possible that a controller (e.g., remote control, terminal, etc.) is not able to see all the controllable devices. That may be because, e.g., some of the devices are on some other network (with a different network protocol, firewall or on the other side of a router) that the controller cannot discover with a multicast message, or there is no permission to access those other devices, or the other devices are in another physical location, or though they are on the same type of network they are out of the controller's domain, etc. This is because basic device discovery within a network is typically limited to the devices within the domain (scope) of that network, and does not span to discovery of devices in other networks.
According to one embodiment of the present invention, for a controller in one network to control devices in another network, the controllers in the two networks are aggregated such that the controllers 40 and 41 communicate with one another. In the case of the example networks 20 and 21 in
The CPA 51 allows the second controller 41 to function as a proxy for the first controller 40 such that the first controller 40 can control the second devices 31 through the second controller 41. Similarly, the CPA 50 allows the first controller 40 to function as a proxy for the second controller 41 such that the second controller 41 can control the first devices 30 through the first controller 40.
The CPAs 50, 51 establish the communication channel 55 that allows the controllers 40 and 41 to share information. As a result, the device discovery scope in the networks 20, 21 is combined at the controllers, as opposed to bridging the networks 20 and 21. As such, a controller in one network can act as a proxy for a controller in the other network, and vice versa.
The link 55 between the two CPAs 50, 51 can be pre-setup or there can be a discovery process where the two CPAs 50, 51 share information between the two networks. This allows both of the controllers 40 and 41 to “see” all the devices 30, 31 in the networks 20, 21. This is transparent to the devices 30, 31 so that when a device 30 receives a command from the local controller 40, the device 30 is unaware whether the command was initiated from the local controller 40 itself, or whether the command was initiated from the controller 41 and that the local controller 40 is acting as a proxy for the controller 40.
In one example, the CPAs 50 and 51 comprise software executing on controllers 40 and 41 themselves, respectively. Each controller may further include multiple network interface types to communicate with other controllers on different types of networks. In another case, though the two networks 20, 21 are of the same type (e.g., both are Ethernet), the device discovery process in each network is limited to only devices in each network because the other network is in another domain. As noted, local (basic) device discovery is limited by a scope so that the packets in a network only travel a certain distance within each domain.
In the example of
In the example embodiment described herein, the CPAs 50, 51 utilize proxy implementation, wherein each of the controllers 40 and 41 maintains a proxy device table 60 as shown by example in
For a device in a network, the device's local URL address is used by the local controller, and the device's proxy URL address is used by the remote controller. For example, the local URL for devices 30 is used by the local controller 40, and the proxy URL for devices 30 is used by the controller 41, and vice versa.
For example, if the controller 41 is to control a device 30, the controller 41 receives from the local CPA 51, a proxy URL which points to the remote (external) CPA 50 in the controller 40, wherein the remote CPA 50 in the controller 40, acts as a proxy for the controller 41 for accessing/controlling the device 30. In another example, in the network 21, local URLs 61 for the devices 31 are used by the local controller 41 to control the devices 31, and the proxy URLs 62 for the devices 31 are used by the remote controller 40 to control the devices 31.
Only the controllers 40 and 41 have knowledge of devices 30 and 31. The devices 30 have no direct knowledge of devices 31, and vice versa. As such, in one example, for communication between devices 30 and 31, the controller 41 controls device 31 to communicate with device 30. The controller 41 introduces the devices 30 and 31 to one another.
For the device 31 to access a device 30, the device 31 uses the proxy URL 62 for the device 30. That proxy URL 62 is passed to the controller 41 and CPA 51, and is translated to the local URL 61 for device 30 at the CPA 50 of the controller 40. The controller 40 then emits the local URL 61 for device 30 to access the device 30 in the network 20.
Both CPAs 50, 51 maintain device tables for mapping between local and proxy URLs 61, 62, respectively. As such, the CPA 50 maintains the local URL addresses 61 (local mappings) for its local devices 30, and sends the proxy URL addresses 62 of devices 30 to the CPA 51. Likewise, the CPA 51 maintains the local URL addresses 61 for its local devices 31, and sends the proxy URLs 62 of the devices 31 to the CPA 50. When a CPA receives proxy URLs 62 from a local device, it passes the proxy URL to the remote CPA, as this indicates that the local device is attempting to access a remote device. For example, when the CPA 51 receives proxy URLs 62 from a local device 31, it passes the proxy URL to the remote CPA 50, as this indicates that the local device 31 is attempting to access a remote device 30.
In one example, each CPA looks to its associated controller as a set of logical devices. As such, for example, the software in the controller 40 views the CPA 50 as if it is its neighboring devices. The controller 40 itself may not know that it includes a CPA because the CPA can be a virtual device to the controller 40 depending on configuration. In this configuration, the CPA is logically separated from the controller, allowing standard controller software to be used.
The aggregation layer 72 provides communication among the control points 40, 41.
The discovery layer 78 responds to local device discoveries from the control point layer 74 and forwards the discovery result to the remote control points through the aggregation layer 72. The discovery layer 78 is also invoked by other control points through the aggregation layer 72 to update the device table in
The description component 80 is invoked by remote control points through the aggregation layer 72 and forwards the description request to local devices through the control point layer 74. The result of this request is sent back to the aggregation layer 72 and ultimately the remote CP.
The invocation layer 82 is invoked by other control points through the aggregation layer 72 and forwards a remote control invocation to local devices through the control point layer 74. Any results from this path are referred by the same path.
The eventing layer 84 responds to local device events (e.g., media removed, position updates, etc.) and forwards them to other control points through the aggregation layer 72. The remote CP can then see and interpret these events.
Once devices are discovered by the method described herein, device invocation and events can be sent directly to the remote device if a directly addressable network path is found. Otherwise, device invocations and events follow the same path as remote discovery by being sent from the local CP to the remote CP and then on to the remote device. Events follow the reverse path and flow from the remote device to remote CP where they are forwarded to the local CP.
As those skilled in the art will recognize, the controllers and devices are logical device types, and as such it is possible for a unit to contain both a controller and a device. Further, the control point functionality can be incorporated into a device.
The present invention provides a method for control points to discover all devices in the network and to control devices regardless of network configuration. By discovering all devices in the network, control points can perform more operations without limitation. Such a method further provides home federation by aggregating control points in different home networks. Further, home networks are typically connected to Internet Service Provider (ISP)s using gateways, wherein the gateways usually implement either Network Address Translation (NAT) or firewall which isolates home network outside of network. According to an embodiment of the present invention, by aggregating control points in different homes, control points can perform operations on devices from another home network or aggregate operations to create a new operation.
For example, as noted many middlewares for networks such as home networks use two device types: control points (controllers) and controlled devices. Control points manipulate devices by discovering devices and controllers. The present invention allows for control points to discover all devices in a network in order to control all the devices. However, there are cases where control points can discover only a limited number of devices or control only a few of the devices because of network configuration (such as multiple routers) or usage of special hardware (such as firewire).
While this invention is susceptible of embodiments in many different forms, there are shown in the drawings and will herein be described in detail, preferred embodiments of the invention with the understanding that the present disclosure is to be considered as an exemplification of the principles of the invention and is not intended to limit the broad aspects of the invention to the embodiments illustrated. The aforementioned example architectures in
The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
Messer, Alan, Park, Hoyong, Kumar, Praveen, Zhu, Victor
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5544321, | Dec 03 1993 | UBICOMM, LLC | System for granting ownership of device by user based on requested level of ownership, present state of the device, and the context of the device |
5555376, | Dec 03 1993 | UBICOMM, LLC | Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request |
5611050, | Dec 03 1993 | UBICOMM, LLC | Method for selectively performing event on computer controlled device whose location and allowable operation is consistent with the contextual and locational attributes of the event |
5812865, | Dec 03 1993 | UBICOMM, LLC | Specifying and establishing communication data paths between particular media devices in multiple media device computing systems based on context of a user or users |
5910799, | Apr 09 1996 | MEDIATEK INC | Location motion sensitive user interface |
6169991, | Dec 09 1992 | Mitsubishi Denki Kabushiki Kaisha | Client server system and control method thereof |
6256019, | Mar 30 1999 | RAKUTEN, INC | Methods of using a controller for controlling multi-user access to the functionality of consumer devices |
6389288, | Jun 27 1997 | Fujitsu Limited | Mobile communication terminal capable of executing location-related services |
6563430, | Dec 11 1998 | Koninklijke Philips Electronics N.V. | Remote control device with location dependent interface |
6618764, | Jun 25 1999 | Koninklijke Philips Electronics N.V. | Method for enabling interaction between two home networks of different software architectures |
6640218, | Jun 02 2000 | HUDSON BAY MASTER FUND LTD | Estimating the usefulness of an item in a collection of information |
6748462, | Dec 20 2001 | Koninklijke Philips Electronics N.V. | Activity-based remote control device |
6791467, | Mar 23 2000 | Flextronics AP, LLC | Adaptive remote controller |
6817028, | Jun 11 1999 | SYNAMEDIA LIMITED | Reduced screen control system for interactive program guide |
6822698, | Jun 16 2000 | Intel Corporation | Remotely controlling video display devices |
6823519, | Jun 24 1999 | Microsoft Technology Licensing, LLC | Control object and user interface for controlling networked devices |
6857128, | Feb 14 2000 | Sharp Laboratories of America | Electronic programming guide browsing system |
6859197, | May 02 2001 | NISEL INVESTMENTS LIMITED LIABILITY COMPANY | Universal remote control with display and printer |
6954737, | Nov 05 2001 | JOHNSONDIVERSEY, INC | Method and apparatus for work management for facility maintenance |
6957075, | Feb 01 1999 | Intel Corporation | Method and apparatus for providing a location based appliance personality |
6986133, | Apr 14 2000 | GOAHEAD SOFTWARE INC | System and method for securely upgrading networked devices |
7024256, | Jun 27 2002 | Microsoft Technology Licensing, LLC | Method, system, and computer program product for automatically managing components within a controlled environment |
7046263, | Dec 18 1998 | Microsoft Technology Licensing, LLC | Requesting computer user's context data |
7064675, | Aug 15 2003 | Microsoft Technology Licensing, LLC | Context-sensitive remote controls |
7076255, | Apr 05 2000 | Microsoft Technology Licensing, LLC | Context-aware and location-aware cellular phones and methods |
7170422, | Jun 24 2002 | MATSUSHITA, ELECTRIC INDUSTRIAL CO , LTD ; MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Personal programmable universal remote control |
7184848, | Jun 27 2002 | Microsoft Technology Licensing, LLC | Method, system, and computer program product for managing controlled residential or non-residential environments |
7206559, | Oct 16 2001 | Qualcomm Incorporated | System and method for a mobile computing device to control appliances |
7237260, | Jul 08 2003 | Carl Zeiss Industrielle Messtechnik GmbH | Method for dynamic selection for secure and firewall friendly communication protocols between multiple distributed modules |
7307746, | Apr 11 2002 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method, and program |
7336942, | Apr 05 2005 | 3E Technologies International, Inc. | Method and system for location-aware wireless mobile devices including mobile user network message interfaces and protocol |
7337217, | Jul 21 2000 | Samsung Electronics Co., Ltd. | Architecture for home network on world wide web |
7346663, | Dec 18 1998 | Microsoft Technology Licensing, LLC | Automated response to computer user's context |
7522549, | Apr 16 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Registering access device multimedia content via a broadband access gateway |
7533079, | Aug 26 2002 | Fujitsu Limited | Device and method for processing situated information |
7613285, | Dec 07 2004 | Electronics and Telecommunications Research Institute | System and method for service-oriented automatic remote control, remote server, and remote control agent |
7640546, | Jan 16 2004 | BARCLAYS CAPITAL INC | Method and system for identifying active devices on network |
20010032132, | |||
20010033554, | |||
20010047431, | |||
20020130834, | |||
20020138327, | |||
20030009537, | |||
20030046401, | |||
20030110298, | |||
20030208569, | |||
20040230636, | |||
20050097478, | |||
20050246726, | |||
20060064693, | |||
20060064694, | |||
20060069602, | |||
20060075100, | |||
20060147001, | |||
20060156252, | |||
20060156307, | |||
20070220529, | |||
20070266384, | |||
20070279389, | |||
20080270999, | |||
EP1168124, | |||
FR2852173, | |||
KR20010041425, | |||
KR20020022049, | |||
WO38039, | |||
WO39964, | |||
WO169380, | |||
WO2004081713, | |||
WO2005003967, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 21 2005 | MESSER, ALAN | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016537 | /0306 | |
Mar 22 2005 | KUMAR, PRAVEEN | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016537 | /0306 | |
Apr 09 2005 | PARK, HOYONG | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016537 | /0306 | |
May 02 2005 | Samsung Electronics Co., Ltd. | (assignment on the face of the patent) | / | |||
Jul 21 2005 | ZHU, VICTOR | SAMSUNG ELECTRONICS, CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016860 | /0393 |
Date | Maintenance Fee Events |
May 18 2012 | ASPN: Payor Number Assigned. |
Aug 26 2013 | ASPN: Payor Number Assigned. |
Aug 26 2013 | RMPN: Payer Number De-assigned. |
Dec 16 2015 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 10 2020 | REM: Maintenance Fee Reminder Mailed. |
Jul 27 2020 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jun 19 2015 | 4 years fee payment window open |
Dec 19 2015 | 6 months grace period start (w surcharge) |
Jun 19 2016 | patent expiry (for year 4) |
Jun 19 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 19 2019 | 8 years fee payment window open |
Dec 19 2019 | 6 months grace period start (w surcharge) |
Jun 19 2020 | patent expiry (for year 8) |
Jun 19 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 19 2023 | 12 years fee payment window open |
Dec 19 2023 | 6 months grace period start (w surcharge) |
Jun 19 2024 | patent expiry (for year 12) |
Jun 19 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |