U.S. patent number 9,209,995 [Application Number 12/521,746] was granted by the patent office on 2015-12-08 for presence status notification from digital endpoint devices through a multi-services gateway device at the user premises.
This patent grant is currently assigned to Prodea Systems, Inc.. The grantee listed for this patent is Amir Ansari, George A. Cowgill, Ramprakash Masina, Alvin R. McQuarters, Leon E. Nicholls, Atousa Raissyan, Jude P. Ramayya. Invention is credited to Amir Ansari, George A. Cowgill, Ramprakash Masina, Alvin R. McQuarters, Leon E. Nicholls, Atousa Raissyan, Jude P. Ramayya.
United States Patent |
9,209,995 |
Ansari , et al. |
December 8, 2015 |
Presence status notification from digital endpoint devices through
a multi-services gateway device at the user premises
Abstract
A gateway device for operation at a user premises to provide and
manage application services provided for endpoint devices
associated with the gateway device. The gateway device includes a
communications client program to enable client-server
communications between the gateway device and a remote
communications server via the wide area network using a presence
and networking message protocol. The gateway device utilizes at
least one driver program with a driver communications protocol to
communicate with, control, and manage associated endpoint devices.
The communications client program interacts with the driver
program, and the gateway device is configured to specify which
associated endpoint devices, attributes and operations are exposed
to the network via the communications client. The gateway device is
configured to specify rules for presentation and/or notification of
incoming presence and networking messages to the gateway device and
the routing of those messages to the managed endpoint device
through their respective drivers.
Inventors: |
Ansari; Amir (Plano, TX),
Cowgill; George A. (Farmersville, TX), Nicholls; Leon E.
(Plano, TX), Raissyan; Atousa (Potomac, MD), Ramayya;
Jude P. (Wylie, TX), Masina; Ramprakash (Wylie, TX),
McQuarters; Alvin R. (Euless, TX) |
Applicant: |
Name |
City |
State |
Country |
Type |
Ansari; Amir
Cowgill; George A.
Nicholls; Leon E.
Raissyan; Atousa
Ramayya; Jude P.
Masina; Ramprakash
McQuarters; Alvin R. |
Plano
Farmersville
Plano
Potomac
Wylie
Wylie
Euless |
TX
TX
TX
MD
TX
TX
TX |
US
US
US
US
US
US
US |
|
|
Assignee: |
Prodea Systems, Inc.
(Richardson, TX)
|
Family
ID: |
39304809 |
Appl.
No.: |
12/521,746 |
Filed: |
September 7, 2007 |
PCT
Filed: |
September 07, 2007 |
PCT No.: |
PCT/US2007/019534 |
371(c)(1),(2),(4) Date: |
November 24, 2009 |
PCT
Pub. No.: |
WO2008/085203 |
PCT
Pub. Date: |
July 17, 2008 |
Prior Publication Data
|
|
|
|
Document
Identifier |
Publication Date |
|
US 20100071053 A1 |
Mar 18, 2010 |
|
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
|
60882862 |
Dec 29, 2006 |
|
|
|
|
60882865 |
Dec 29, 2006 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L
47/80 (20130101); H04L 63/10 (20130101); H04L
61/1576 (20130101); G05B 15/02 (20130101); H04L
29/12132 (20130101); G06Q 30/04 (20130101); H04W
12/033 (20210101); H04L 12/2818 (20130101); H04L
65/102 (20130101); G06F 16/64 (20190101); G10L
15/22 (20130101); H04L 12/2803 (20130101); H04L
41/22 (20130101); H04L 67/125 (20130101); H04L
67/104 (20130101); H04L 12/2814 (20130101); H04L
67/42 (20130101); H04L 12/66 (20130101); H04L
67/20 (20130101); H04W 12/065 (20210101); H04L
29/12169 (20130101); H04L 61/1552 (20130101); H04L
63/02 (20130101); H04L 63/08 (20130101); H04L
63/20 (20130101); G05B 19/042 (20130101); H04L
12/2807 (20130101); H04L 29/06027 (20130101); G08B
13/19656 (20130101); H04L 67/141 (20130101); H04L
67/16 (20130101); H04L 41/0803 (20130101); H04W
12/35 (20210101); H04L 12/2812 (20130101); H04L
41/12 (20130101); H04W 12/0431 (20210101); G06F
16/68 (20190101); H04L 49/25 (20130101); G10L
2015/223 (20130101); H04W 12/00 (20130101); G05B
2219/2642 (20130101); H04N 21/00 (20130101); H04L
69/325 (20130101); H04W 12/08 (20130101); H04N
21/40 (20130101); H04W 12/06 (20130101); Y10S
370/911 (20130101); H04N 7/181 (20130101); H04L
2012/2849 (20130101); H04W 4/80 (20180201) |
Current International
Class: |
H04L
12/66 (20060101); G06Q 30/04 (20120101); H04L
12/24 (20060101); H04W 12/00 (20090101) |
Field of
Search: |
;709/220,222 |
References Cited
[Referenced By]
U.S. Patent Documents
Foreign Patent Documents
|
|
|
|
|
|
|
1113659 |
|
Jul 2001 |
|
EP |
|
WO-2008/082441 |
|
Jul 2008 |
|
WO |
|
WO-2008/083384 |
|
Jul 2008 |
|
WO |
|
WO-2008/083385 |
|
Jul 2008 |
|
WO |
|
WO-2008/083387 |
|
Jul 2008 |
|
WO |
|
WO-2008/083391 |
|
Jul 2008 |
|
WO |
|
WO-2008/085201 |
|
Jul 2008 |
|
WO |
|
WO-2008/085202 |
|
Jul 2008 |
|
WO |
|
WO-2008/085203 |
|
Jul 2008 |
|
WO |
|
WO-2008/085204 |
|
Jul 2008 |
|
WO |
|
WO-2008/085205 |
|
Jul 2008 |
|
WO |
|
WO-2008/085206 |
|
Jul 2008 |
|
WO |
|
WO-2008/085207 |
|
Jul 2008 |
|
WO |
|
WO 2008082346 |
|
Jul 2008 |
|
WO |
|
WO-2009/036088 |
|
Mar 2009 |
|
WO |
|
WO-2009/036185 |
|
Mar 2009 |
|
WO |
|
WO-2009/086134 |
|
Jul 2009 |
|
WO |
|
Other References
Duenas, Juan C. An End-to-End Service Provisioning scenario for the
Residential Environment, IEEE Communications Magazine, Sep. 2005,
pp. 94-100. cited by applicant .
Intel, "Delivering on the Promise of Triple Play Digital Media,"
Technology Backgrounder, Consumer Electronics, 2004, pp. 1-4. cited
by applicant .
Yeon-Joo, Oh, et al. "Design of a SIP-based Real-time Visitor
Conversation and Door Control Architecture using a Home Gateway."
Consumer Electronics, 2006. ICCE '06. 2006 Digest of Technical
Papers, International Conference , Las Vegas, NV, USA, IEEE, Jan.
7, 2006, pp. 187-188. cited by applicant .
Ganguly, Arjit, et al. "IP over P2P: enabling self-configuring
virtual IP networks for grid computing." In Parallel and
Distributed Processing Symposium, 2006, IPDPS 2006, Apr. 25-29,
retrieved on Jan. 20, 2010. Retrieved from the Internet:
<URL:http://aarxiv.org/PS.sub.--cache/cs/pdf/0603/0603087v1.pdf.>.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Oct. 30, 2008, International Application No. PCT/US2007/089237,
filed Dec. 31, 2007, 15 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Aug. 27, 2008, International
Application No. PCT/US2007/089237, filed Dec. 31, 2007, 6 pages.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Jul. 17, 2008, International Application No. PCT/US2007/019543,
filed Sep. 7, 2007, 5 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Jul. 17, 2008, International
Application No. PCT/US2007/019543, filed Sep. 7, 2007, 1 page.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Jul. 14, 2008, International Application No. PCT/US2007/019546,
filed Sep. 7, 2007, 5 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Jul. 14, 2008, International
Application No. PCT/US2007/019546, filed Sep. 7, 2007, 1 page.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Apr. 25, 2008, International Application No. PCT/US2007/019531,
filed Sep. 7, 2007, 7 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Apr. 25, 2008, International
Application No. PCT/US2007/019531, filed Sep. 7, 2007, 1 page.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Aug. 21, 2008, International Application No. PCT/US2007/019534,
filed Sep. 7, 2007, 5 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Aug. 21, 2008, International
Application No. PCT/US2007/019534, filed Sep. 7, 2007, 1 page.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Aug. 25, 2008, International Application No. PCT/US2007/019545,
filed Sep. 7, 2007, 5 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Aug. 25, 2008, International
Application No. PCT/US2007/019545, filed Sep. 7, 2007, 1 page.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Jul. 2, 2008, International Application No. PCT/US2007/019544,
filed Sep. 7, 2007, 5 pages. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Jul. 2, 2008, International
Application No. PCT/US2007/019544, filed Sep. 7, 2007, 1 page.
cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
Written Opinion of the International Searching Authority mailed
Mar. 14, 2008, International Application No. PCT/US2007/019533,
filed Sep. 7, 2007, 7 page. cited by applicant .
PCT International Searching Authority--European Patent Office, PCT
International Search Report mailed Mar. 14, 2008, International
Application No. PCT/US2007/019533, filed Sep. 7, 2007, 1 page.
cited by applicant.
|
Primary Examiner: Patel; Ashok
Assistant Examiner: Potratz; Daniel
Attorney, Agent or Firm: Ortiz; Luis M. Lopez; Kermit D.
Ortiz & Lopez, PLLC
Parent Case Text
CROSS REFERENCE
This application is a United States national phase application of
co-pending international application Number PCT/US2007/019534 filed
Sep. 7, 2007, which claims the benefit of United States provisional
application No. 60/882,865 filed Dec. 29, 2006 and U.S. provisional
application No. 60/882,862 filed Dec. 29, 2006, the disclosures of
which is incorporated herein by reference.
Claims
What is claimed is:
1. A gateway device for operation at a user premises to provide and
manage application services provided for at least one associated
endpoint device associated with the gateway device, comprising; (a)
a first interface for enabling communications within the premises
with at least one associated endpoint device also within the
premises; (b) a second interface for enabling bi-directional
communications for the gateway device via a wide area network; (c)
a processor coupled to the interfaces; (d) storage coupled to the
processor, and (e) programming in the storage including: (1) a
communications client program for configuring the gateway device to
enable communications via the interfaces, and to further enable
client-server communications between the gateway device and a
remote communications server via the wide area network using a
presence and networking message protocol, wherein the presence and
networking protocol is used to communicate service management,
application services information, and configuration data between
the gateway device and other gateway devices, endpoints and a
service management center, and the presence and networking protocol
is further used to communicate status details and provide automated
communication of devices and resources within peered gateways
located in another user's premises; (2) a driver program for the at
least one associated endpoint device, the driver program enabling
communications between the gateway device and the least one
associated endpoint device using at least one driver communications
protocol, wherein the driver program enables the gateway device to
control and manage the at least one associated endpoint device
using the at least one driver communications protocol; (3)
application service programming for the application services,
wherein execution of the programming in the storage by the
processor causes the gateway device to provide functions, via one
or both of the interfaces, for each respective application service
for the at least one associated endpoint device using the driver
program and the at least one driver communications protocol; and
(4) a presence and networking client, wherein said presence and
networking client communicates with a home automation controller
within the gateway device via an application service interface to
enable the delivery and exchange of multiple home automation
messaging protocols, including non-IP protocol standards and vendor
specific protocols, via a directly coupled home automation control
node, to communicate in-premise home automation protocol messaging
that allows the presence and networking client the functionality to
remotely monitor and control the functionality of vendor diverse
home automation devices located within the premises via endpoints
and the service management center via said presence and networking
protocol over the wide area network; and (f) a module automating
use of peeling capabilities including directing utility data for
usage and network management information to designated collectors
within peering groups and invoking a designated collector to
forward the usage and network management information to the service
management center.
2. The gateway device of claim 1, wherein the execution of the
programming by the processor causes the gateway device to provide
enforcement regarding authorization, authentication. configuration,
or use of the respective application service via the at least one
associated endpoint devices.
3. The gateway device of claim 1, wherein the execution of the
programming by the processor causes the gateway device to further
provide management of the application services based upon the
communications with the service management center via the wide area
network through the second interface.
4. The gateway device of claim 1, wherein the communications client
program of the gateway device provides presence and networking
communications for the driver program, wherein the driver program
communicates with the at least one associated endpoint device
without programming for presence and networking communications via
the at least one driver communications protocol.
5. The gateway device of claim 1, wherein the presence and
networking messaging communications is provided between the gateway
device and the at least one associated endpoint device, the at
least one endpoint device having communications programming for
presence and networking communications.
6. The gateway device of claim 1, wherein the presence and
networking message protocol of the communications client program
for client-server communications between the gateway device and the
remote communications server comprises an instant messaging type
protocol.
7. The gateway device of claim 1, wherein the programming enables
the first or second interface of the gateway device to establish
peer communications using presence and networking message
communications of the client-server communications between the
gateway device and the remote server via the wide area network.
8. The gateway device of claim 1, wherein execution of the
programming by the processor further causes the gateway device to
support one of more application service interfaces via different
endpoint devices using the associated driver program, with respect
to one or more application services provided through the gateway
device.
9. The gateway device of claim 8, wherein one of the different
application service interfaces is a user interface for
implementation via a personal computer type endpoint device, a cell
phone type endpoint device, a personal digital assistant endpoint
device, a remote control type endpoint device, or a television, or
any combination thereof.
10. The gateway device of claim 9, wherein an alert message or
status message is transmitted from the gateway device using the
driver communications protocol to the personal computer, cell
phone, personal digital assistant, remote control, or the
television for display in the user interface, or overlaid onto or
inserted into a display of the television, cell phone, personal
digital assistant, remote control, or personal computer.
11. The gateway device of claim 10, wherein an alert message or
status message is transmitted from the at least one associated
endpoint device via the gateway device using the driver
communications protocol to the personal computer, cell phone,
personal digital assistant, remote control, or the television for
display in the user interface, or overlaid onto or inserted into a
display of the television, cell phone, personal digital assistant,
remote control, or personal computer.
12. The gateway device of claim 11, wherein the user interface,
enabled by the driver program and driver communications protocol,
enables a user to determine status, change a configuration, view an
event log, or any combination thereof for the associated endpoint
device.
13. The gateway device of claim 1, wherein the programming in the
storage includes configuration data for management, responses, and
interactions with the at least one associated endpoint device in
response to a client-server communication between the gateway and
the remote communications server via the wide area network using
the presence and networking message protocol.
14. The gateway device of claim 13, wherein the configuration data
is received by the gateway device from the service management
center via the wide area network through the second interface of
the gateway device.
15. The gateway device of claim 13, wherein the configuration data
is received by the gateway device from a user via the first
interface, second interface, or the first and second
interfaces.
16. The gateway device of claim 13, wherein the configuration data
and the driver program provides a list of functionalities and
status of the respective at least one endpoint device to the
communications client program for use with client-server
communications with the remote communications server via the wide
area network.
17. The gateway device of claim 1, wherein the programming on the
storage includes configuration data for parameters of access,
control, presentation notification and service for the at least one
associated endpoint device.
18. The gateway device of claim 1, wherein the gateway device
comprises service logic, wherein the service logic processes
communications received by the communications client for the at
least one associated endpoint device via the driver program.
19. The gateway device of claim 1, wherein the communications
client enables client-server communications with a public
communications server or a private communications server via the
first or second interfaces.
20. The gateway device of claim 1, wherein the driver program of
the gateway device enables communication between a first associated
endpoint device and a second associated endpoint device via the at
least one driver communications protocol.
21. The gateway device of claim 20, wherein the first associated
endpoint device transmits an alert message or status message to the
second associated endpoint device via the at least one driver
communications protocol.
22. The gateway device of claim 20, wherein the configuration data
of the gateway device provides a list of functionalities and status
of the first associated endpoint device to the second associated
endpoint device via the at least one driver communications
protocol.
23. The gateway device of claim 1, wherein the communications
client programming of the gateway device that enables client-server
communications with a remote communications server via the wide
area network further enables communication with a second gateway
device via the remote communications server.
24. The gateway device of claim 23, wherein the communications
client programming of the gateway device receives wide area network
address information via the remote communications server from the
second gateway device, such that the received network address
information enables the gateway device to establish direct peer to
peer communication between the gateway device and the second
gateway device.
25. The gateway device of claim 24, wherein the gateway device
transmits a list of functionalities to the second gateway device
via the peer to peer communications between the gateway device and
the second gateway device.
26. The gateway device of claim 25, wherein the list of
functionalities transmitted is based upon the at least one
associated endpoint device of the gateway device.
27. The gateway device of claim 25, wherein the list of
functionalities of the at least one associated endpoint device
transmitted is based on configuration data for each of the at least
one associated endpoint device located in the programming in the
storage of the gateway device.
28. The gateway device of claim 1, wherein a first associated
endpoint device is a remote control, and the gateway device is
enabled to receive a signal from the remote control via the driver
communications protocol of the driver program, wherein the gateway
device controls and manages the second associated endpoint device
via the driver program based on the received signal from the remote
control.
29. A system comprising programming embodied in non-transitory
machine-readable media associated with the gateway device for
operation at a user premises to provide and manage application
services provided for at least one associated endpoint device
associated with the gateway device comprising: a first interface
for enabling communications within the premises, with at least one
associated endpoint device also within the premises; a second
interface for enabling bi-directional communications for the
gateway device via a wide area network; a processor coupled to the
interfaces: wherein: the programming is executable by the
processor, the programming including: (a) a communications client
program for configuring the gateway device to enable communications
via the interfaces, and to further enable client-server
communications between the gateway device and a remote
communications server via the wide area network using a presence
and networking message protocol, wherein the presence and
networking protocol is used to communicate service management,
application. services information, and configuration data between
the gateway device and other gateway devices, endpoints and a
service management center, and the presence and networking protocol
is further used to communicate status details, and provide
automated communication of devices and resources within peered
gateways located in another user's premises: (b) a driver program
for at least one associated endpoint device, the driver program
enabling communications between the gateway device and the least
one associated endpoint device using at least one driver
communications protocol, wherein the driver program enables the
gateway device to control and manage the at least one associated
endpoint. device using the at least one driver communications
protocol; (c) application service programming for the application
services, wherein execution of the application service programming
by the processor causes the gateway device to provide functions,
via one or both of the interfaces, for each respective application
service for one or more of the associated endpoint devices using
the driver program and the at least one driver communications
protocol; and (d) a presence and networking client, wherein said
presence and networking client communicates with a home automation
controller within the gateway device via an application service
interface to enable the delivery and exchange of multiple home
automation messaging protocols, including non-IP protocol standards
and vendor specific protocols, via a directly coupled home
automation control node, communicate in-premise home automation
protocol messaging that allows the presence and networking client
the functionality to remotely monitor and control the functionality
of vendor diverse home automation devices located within the
premises via endpoints and the service management center via said
presence and networking protocol over the wide area network; and a
module automating use of peering capabilities including directing
utility data for usage and network management information to
designated collectors within peering groups and invoking a
designated collector to forward the usage and network management
information to the service management center.
30. The system of claim 29, wherein the execution of the
programming by the processor causes the gateway device to provide
enforcement regarding authorization, authentication, configuration,
or use of the respective application service via the at least one
associated endpoint device.
31. The system of claim 29, wherein the execution of the
programming by the processor causes the gateway device to further
provide management of the application services based upon the
communications with the service management center via the wide area
network through the second interface.
32. The system of claim 29, wherein the communications client
program of the gateway device provides presence and networking
communications for the driver program, wherein the driver program
communicates with the at least one associated endpoint device
without programming for presence and networking communications via
the at least one driver communications protocol.
33. The system of claim 29, wherein the presence and networking
messaging communications is provided between the gateway device and
the at least one associated endpoint device, the at least one
associated endpoint device having communications programming for
presence and networking communications.
34. The system of claim 29, wherein the presence and networking
message protocol of the communications client program for
client-server communications between the gateway device and the
remote communications server comprises an instant messaging type
protocol.
35. The system of claim 29, wherein the programming enables the
first or second interface of the gateway device to establish peer
communications using presence and networking message communications
of the client-server communications between the gateway device and
the remote server via the wide area network.
36. The system of claim 29, wherein execution of the programming by
the processor further causes the gateway device to support one or
more application service interfaces via different endpoint devices
using the associated driver program, with respect to one or more
application services provided through the gateway device.
37. The system of claim 36, wherein one of the different
application service interfaces is a user interface for
implementation via a personal computer type endpoint device, a cell
phone type endpoint device, a personal digital assistant endpoint
device, a remote control type endpoint device, or a television, or
any combination thereof.
38. The system of claim 37, Wherein an alert message or status
message is transmitted from the gateway device using the driver
communications protocol to the personal computer, cell phone,
personal digital assistant, remote control, or the television for
display in the user interface, or overlaid onto or inserted into a
display of the television, cell phone, personal digital assistant,
remote control, or personal computer.
39. The system of claim 38, wherein an alert message or status
message is transmitted from the associated endpoint device via the
gateway device using the driver communications protocol to the
personal computer, cell phone, personal digital assistant, remote
control, or the television for display in the user interface, or
overlaid onto or inserted into a display of the television, cell
phone, personal digital assistant, remote control, or personal
computer.
40. The system of claim 39, wherein the user interface, enabled by
the driver program and driver communications protocol, enables a
user to determine status, change a configuration, view an event
log, or any combination thereof for the at least one associated
endpoint device.
41. The system of claim 29. wherein the programming in the storage
includes configuration data for management, responses, and
interactions with the at least one associated endpoint device in
response to a client-server communication between the gateway and
the remote communications server via the wide area network using
the presence and networking message protocol.
42. The system of claim 41, wherein the configuration data is
received by the gateway device from the service management center
via the wide area network through the second interface of the
gateway device.
43. The system of claim 41, wherein the configuration data is
received by the gateway device from a user via the first interface,
second interface, or the first and second interfaces.
44. The system of claim 41, wherein the configuration data and the
driver program provides a list of functionalities and status of the
respective at least one endpoint device to the communications
client program for use with client-server communications with the
remote communications server via the wide area network.
45. The system of claim 29, wherein the programming on the storage
includes configuration data for parameters of access, control,
presentation notification and service for each of the at least one
associated endpoint device.
46. The system of claim 29, wherein the gateway device comprises
service logic, wherein the service logic processes communications
received by the communications client for the at least one
associated endpoint device via the driver program.
47. The system of claim 29, wherein the communications client
enables client-server communications with a public communications
server or a private communications server via the first or second
interfaces.
48. The system of claim 29, Wherein the driver program of the
gateway device enables communication between a first associated
endpoint device and a second associated endpoint device via the at
least one driver communications protocol.
49. The system of claim 48, wherein the first associated endpoint
device transmits an alert message or status message to the second
associated endpoint device via the at least one driver
communications protocol.
50. The system of claim 48, wherein the configuration data of the
gateway device provides a list of functionalities and status of the
first associated endpoint device to the second associated endpoint
device via the at least one driver communications protocol.
51. The system of claim 29, wherein the communications client
programming of the gateway device that enables client-server
communications with a remote communications server via the wide
area network further enables communication with a second gateway
device via the remote communications server.
52. The system of claim 51, wherein the communications client
programming of the gateway device receives wide area network
address information via the remote communications server from the
second gateway device, such that the received network address
information enables the gateway device to establish peer to peer
communication between the gateway device and the second gateway
device.
53. The system of claim 52, wherein the gateway device transmits a
list of functionalities to the second gateway device via the peer
to peer communications between the gateway device and the second
gateway device.
54. The system of claim 53, wherein the list of functionalities
transmitted is based upon the at least one associated endpoint
device of the gateway device.
55. The system of claim 53, wherein the list of functionalities of
the at least one associated endpoint device transmitted is based on
configuration data for each of the at least one associated endpoint
device located in the programming in the storage of the gateway
device.
56. The system of claim 29, wherein a first associated endpoint
device is a remote control, and the gateway device is enabled to
receive a signal from the remote control via the driver
communications protocol of the driver program, wherein the gateway
device controls and manages the second associated endpoint device
via the driver program based on the received signal from the remote
control.
Description
TECHNICAL FIELD
The present subject matter relates to a gateway device and/or
programming for such devices, wherein the gateway device is enabled
with client programming for client-server communications using a
presence and networking messaging protocol. The gateway device may
be configured by a services subscriber and/or service provider to
expose the presence and functionalities of one or more associated
endpoint devices to local and/or remote presence and networking
message servers or other devices via a wide area network. The
subscriber and/or service provider may also configure the gateway
to provide notices, status, or other messages in response to
events, and may also configure the muting of such messages to
particular parties and/or devices for display.
BACKGROUND
The digital home is now becoming more complex with the myriad of
new and emerging digital devices and services intended to address
many user and consumer needs such as communication, entertainment,
privacy and security, etc. These digital devices can be connected
with a gateway device in the user premises to form a home network.
The digital devices can have a variety of functionalities, as well
as proprietary interfaces and communication protocols to access
such functionalities. Although an increasing number of emerging
digital devices are enabled with programming for client-server
communications using presence and networking message protocols,
many digital devices rely on proprietary communications protocols
and driver programs to allow them to interoperate with devices in a
home network.
A home network user may desire to have the associated devices of
the home network provide alerts, notifications, status, or other
messages to the user in response to particular events, and have
such messages directed to specific individuals and/or digital
endpoint devices for display. Upon receipt of such messages, the
user may desire to provide instructions to one or more of the
digital devices of the home network. The user may also desire to
determine the status of one or more of the devices of the home
network in the absence of an event. The home network user may also
desire to remotely handle and/or control various endpoint devices
associated with a gateway device of the home network. However, the
user may wish to limit the "visibility" of specific endpoint
devices and their functions to local or remote servers providing
applications services or server-side presence and networking
communications for the home network.
Additionally, the user may wish to establish peer to peer
communications between the gateway device in the user premises and
another local or remote gateway device with associated endpoint
devices. The peer to peer connection is desirable, as it may enable
a user to access the functionalities and status of endpoint devices
associated with another gateway. The peer to peer communication is
also desirable, as it minimizes management of communications
between two or more gateway devices.
In that regard, it would be desirable to provide a gateway device
for a user premises that provides a presence and networking
messaging client for client-server communications, wherein endpoint
devices associated with the gateway device may not be enabled
themselves with such clients. It may be further desirable to enable
a gateway device to be configured by a services subscriber or a
service provider to facilitate the handling of events by the
gateway and provide notices, status, or other messages in response
to events, and route such messages to particular parties and/or
devices for display. Moreover, it may be desirable for associated
endpoint devices to communicate with one another via the gateway
device, without using presence and networking communications. It
may be further desirable to enable peer to peer communications
between two or more gateway devices.
SUMMARY
The technology discussed herein may be embodied in gateway devices,
typically for deployment at user premises, and/or to programming
for devices that may function as such gateways. The gateway device
is implemented in such a manner as to provide client programming to
enable client-server communications using a presence and networking
message protocol. The gateway device may be further configured to
have application service logic that functions as an intermediary
between associated digital endpoint devices and one or more driver
programs. The driver program may communicate with the endpoint
device using its own communication protocol. The driver may
abstract the functionalities of the endpoint as a set of attributes
for the endpoint device. The service subscriber (i.e., user) or a
service provider may configure the gateway so as to control the
exposure of the presence and functionalities of the one or more
endpoint devices to presence and networking messaging communication
servers or other external devices.
Hence, in one example, a gateway device for operation at a user
premises is disclosed to provide and manage application services
provided for endpoint devices associated with the gateway device.
The gateway device has a first interface for enabling
communications within the premises, with one or more associated
endpoint devices within the premises. The gateway device also has a
second interface for enabling bi-directional communications for the
gateway device via a wide area network. The gateway device further
includes a processor coupled to the interfaces and storage coupled
to the processor. The gateway device further comprises programming
in the storage including a communications client program for
configuring the gateway to enable communications via the
interfaces, and to further enable client-server communications
between the gateway device and a remote communications server via
the wide area network using a presence and networking message
protocol. The programming in the storage also includes a driver
program for at least one associated endpoint device, the driver
program enabling communications between the gateway device and the
least one associated endpoint device using at least one driver
communications protocol, wherein the driver program enables the
gateway device to control and manage the at least one associated
endpoint device using the at least one driver communications
protocol. The programming of the gateway device includes
application service programming for the application services,
wherein execution of the programming by the processor causes the
gateway device to provide functions, via one or both of the
interfaces, for each respective application service for one or more
of the associated endpoint devices using the driver program and the
at least one driver communications protocol.
Execution of the programming by the processor causes the gateway
device to provide enforcement regarding authorization,
authentication, configuration, or use of the respective application
service via the associated endpoint devices. The execution of the
programming by the processor also causes the gateway device to
provide management of the application services based upon the
communications with a service management center via the wide area
network through the second interface.
The associated endpoint device is typically without communications
programming for presence and networking communications. The
communications client program of the gateway device may provide
presence and networking communications for the driver program,
wherein the driver program communicates with the associated
endpoint device without programming for presence and networking
communications via the at least one driver communications protocol.
The presence and networking messaging communications may also be
provided between the gateway device and the associated endpoint
device, the endpoint device having communications programming for
presence and networking communications via the respective driver
program for the associated endpoint device. The presence and
networking messaging communications of the gateway device may also
be provided between the gateway device and the associated endpoint
device where the endpoint device has presence and networking
communications programming.
The presence and networking message protocol used by the
communications client of the gateway device may comprise an instant
messaging type protocol. Endpoint device having presence and
networking communications programming may utilize an instant
messaging type protocol for communications.
The programming of the gateway device may also enable the first or
second interface of the gateway device to establish peer
communications using presence and networking message communications
of the client-server communications between the gateway device and
the remote server via the wide area network.
Execution of the programming by the processor further causes the
gateway device to support one or more application service
interfaces via different endpoint devices using the associated
driver program, with respect to one or more application services
provided through the gateway device. One of the different
application service interfaces is a user interface for
implementation via a personal computer type endpoint device, a cell
phone type endpoint device, a personal digital assistant endpoint
device, a remote control type endpoint device, or a television, or
any combination thereof. An alert message or status message may be
transmitted from the gateway device using the driver communications
protocol to the personal computer, cell phone, personal digital
assistant, remote control, or the television for display in the
user interface, or overlaid onto or inserted into a display of the
television, cell phone, personal digital assistant, remote control,
or personal computer. An alert message or status message also may
be transmitted from the associated endpoint device via the gateway
device using the driver communications protocol to the personal
computer, cell phone, personal digital assistant, remote control,
or the television for display in the user interface, or overlaid
onto or inserted into a display of the television, cell phone,
personal digital assistant, remote control, or personal computer.
The user interface, enabled by the driver program and driver
communications protocol, enables a user to determine status, change
a configuration, view an event log, or any combination thereof for
the associated endpoint device.
The exemplary gateway device may further include programming in the
storage that has configuration data for management, responses, and
interactions with an associated endpoint device in response to a
client-server communication between the gateway and the remote
communications server via the wide area network using the presence
and networking message protocol. The configuration data may be
received by the gateway device from a service management center via
the wide area network through the second interface of the gateway
device. The configuration data also may be received by the gateway
device from a user via the first interface, second interface, or
the first and second interfaces. The configuration data and the
driver program may also provide a list of functionalities and
status of the respective endpoint devices to the communications
client program for use with client-server communications with the
remote communications server via the wide area network.
The programming on the storage of the exemplary gateway device may
include configuration data for parameters of access, control,
presentation notification and service for each associated endpoint
device.
The exemplary gateway device may be comprised of service logic,
wherein the service logic processes communications received by the
communications client for an associated endpoint device via the
driver program.
In addition, the communications client of the exemplary gateway
device may enable client-server communications with a public
communications server or a private communications server via the
first or second interfaces. The remote communications server may be
a presence and networking message server or a service management
center.
The driver program of the gateway device may enable communication
between a first associated endpoint device and a second associated
endpoint device via the at least one driver communications
protocol. The first associated endpoint device may transmit an
alert message or status message to the second associated endpoint
device via the at least one driver communications protocol. The
configuration data of the gateway device may provide a list of
functionalities and status of the first associated endpoint device
to the second associated endpoint device via the at least one
driver communications protocol.
The communications client programming of the gateway device that
enables client-server communications with a remote communications
server via the wide area network may further enable communication
with a second gateway device via the remote communications server.
The communications client programming of the gateway device may
receive wide area network address information via the remote
communications server from the second gateway device, such that the
received network address information enables the gateway device to
establish peer to peer communication between the gateway device and
the second gateway device. The gateway device may transmit a list
of functionalities to the second gateway device via the peer to
peer communications between the gateway device and the second
gateway device. The list of functionalities transmitted may be
based upon the associated endpoint devices of the gateway device.
The list of functionalities of the associated endpoint device
transmitted may also be based on configuration data for each
associated endpoint device located in the programming in the
storage of the gateway device.
In addition, a first endpoint device associated with the gateway
device may be a remote control. The gateway device may be enabled
to receive a signal from the remote control via the driver
communications protocol of the driver program, wherein the gateway
device may control and manage the second associated endpoint device
via the driver program based on the received signal from the remote
control.
The disclosure also encompasses program products for implementing
gateways of the type outlined above. In such a product, the
programming is embodied in or carried on a machine-readable medium.
For example, the detailed description discloses an exemplary
product comprising a machine-readable medium and programming
embodied in the medium for gateway device for operation at a user
premises to provide and manage application services provided for
endpoint devices associated with the gateway device. The gateway
device has a first interface for enabling communications within the
premises, with one or more associated endpoint devices within the
premises. The gateway device also has a second interface for
enabling bi-directional communications for the gateway device via a
wide area network. The gateway has a processor coupled to the
interfaces, wherein the programming is executable by the processor.
The programming includes a communications client program for
configuring the gateway to enable communications via the
interfaces, and to further enable client-server communications
between the gateway device and a remote communications server via
the wide area network using a presence and networking message
protocol. The programming also includes a driver program for at
least one associated endpoint device, the driver program enabling
communications between the gateway device and the least one
associated endpoint device using at least one driver communications
protocol, wherein the driver program enables the gateway device to
control and manage the at least one associated endpoint device
using the at least one driver communications protocol. The
programming also includes application service programming for the
application services, wherein execution of the programming by the
processor causes the gateway device to provide functions, via one
or both of the interfaces, for each respective application service
for one or more of the associated endpoint devices using the driver
program and the at least one driver communications protocol.
The detailed description discloses an exemplary system to provide
and manage application services for endpoint devices. The system
includes a gateway device for operation at a user premises to
provide and manage application services provided for endpoint
devices associated with the gateway device. The gateway device has
a first interface for enabling communications within the premises,
with one or more associated endpoint devices within the premises.
The gateway device also has a second interface for enabling
bi-directional communications for the gateway device via a wide
area network. In addition, the gateway device includes a processor
coupled to the interfaces, storage coupled to the processor, and
programming in the storage. The programming includes a
communications client program for configuring the gateway to enable
communications via the interfaces, and to further enable
client-server communications between the gateway device and a
remote communications server via the wide area network using a
presence and networking message protocol. The programming also
includes a driver program for at least one associated endpoint
device, the driver program enabling communications between the
gateway device and the least one associated endpoint device using
at least one driver communications protocol, wherein the driver
program enables the gateway device to control and manage the at
least one associated endpoint device using the at least one driver
communications protocol. The programming further includes
application service programming for the application services,
wherein execution of the programming by the processor causes the
gateway device to provide functions, via one or both of the
interfaces, for each respective application service for one or more
of the associated endpoint devices using the driver program and the
at least one driver communications protocol. The system also
includes a service management system coupled to the wide area
network for communication with the gateway device, for remotely
managing the delivery of the application services via the gateway
device.
The service management center of the system may include the remote
communications server. Alternatively, the remote communications
server may be separate from the service management center. In
either aforementioned arrangement, the remote communications server
may be a public communications server or a private communications
server.
Additional advantages and novel features will be set forth in part
in the description which follows, and in part will become apparent
to those skilled in the art upon examination of the following and
the accompanying drawings or may be learned by production or
operation of the examples. The advantages of the present teachings
may be realized and attained by practice or use of various aspects
of the methodologies, instrumentalities and combinations set forth
in the detailed examples discussed below.
BRIEF DESCRIPTION OF THE DRAWINGS
The drawing figures depict one or more implementations in accord
with the present teachings, by way of example only, not by way of
limitation. In the figures, like reference numerals refer to the
same or similar elements.
FIG. 1 is a layered logical block diagram with arrows representing
steps of a sample logical flow, for an application client to access
a specific managed application service, in a gateway device-service
management center type network configuration.
FIG. 2 is a network diagram depicting a gateway device, a presence
and networking message communication server, a service management
center, and endpoint devices.
FIG. 3 depicts the managed application services delivery
platform.
FIG. 4 is a network diagram, depicting a gateway device, endpoint
devices at the user premises, one or more wide area networks and a
service management center.
FIGS. 5A-5D depict the software and hardware architectures of the
multi-services applications gateway device.
FIG. 6 depicts the networked operations services support
infrastructure of a network implementation of the service
management center, for delivering service capabilities to the
multi-services applications gateway device of FIG. 4.
FIG. 7 depicts a flow diagram for an Application Network Gateway
(ANG) establishing a connection and updating its associated
information with an Application Services Provider.
FIG. 8 depicts a flow diagram of the Application Network Gateway
(ANG) updating the Application Services Provider's information
after the ANG has experienced a network address change.
FIG. 9 depicts a flow diagram of two Application Network Gateways
(ANGs), as managed by the Application Service Provider,
communicating their attributes to one another.
FIG. 10 depicts a flow diagram of two Application Network Gateways
(ANGs) establishing a peer to peer connection between on
another.
FIG. 11 is a home automation control network depicting a gateway
device, a home automation control node and associated devices, TV
and PC display devices, and a presence and networking message
protocol client.
FIG. 12 depicts an exemplary user interface showing a generated
list of devices connected to the gateway and their current
status.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details
are set forth by way of examples in order to provide a thorough
understanding of the relevant teachings. However, it should be
apparent to those skilled in the art that the present teachings may
be practiced without such details. In other instances, well known
methods, procedures, components, and circuitry have been described
at a relatively high-level, without detail, in order to avoid
unnecessarily obscuring aspects of the present teachings.
The various technologies disclosed herein provide application
service logic in a gateway device in the customer premises. The
gateway may be enabled with client programming to facilitate
client-server communications using a presence and networking
message protocol. The application service logic of the gateway
device may have programming for providing application services and
to facilitate communications with the client programming, as well
as configuration data. The application service logic also serves as
an intermediary between the client programming and associated
endpoint devices coupled to the gateway device. One or more driver
programs enable communications between the endpoint devices and the
service logic. The driver program communicates with each device
using a proprietary communication protocol. The driver program may
also enable associated endpoint devices to communicate with one
another.
As directed by the configuration data of the service logic, which
is established by a service subscriber (i.e., user) or service
provider, the presence and/or various functions of an endpoint
device may be provided to local or remote servers, or other
devices. The configuration data of the service logic may also
provide guidelines for an endpoint device providing status updates,
notices, or other messages to particular users and/or particular
display devices.
The gateway device is also implemented in such a manner as to offer
its user many of the applications services from the user premises.
As further described below, these application services comprise, by
way of example, programming to simplify support services in the
digital home including one or more of: media delivery, content
management, access control and use tracking, file sharing, and
protection and back-up services of both Internet/Web-generated
digital media content and user generated digital media content. The
gateway device is programmed to simplify various aspects of
managing the emerging home/business digital networks including the
myriad of interconnected digital endpoint devices associated with
the gateway device. It is important to note that the endpoint
devices need not reside within, or be located at, the premises to
maintain their association with the gateway device. The application
services offered via the gateway device may be managed by the
service management center.
The gateway device and the system architecture effectively place a
set of application services on a tightly coupled (e.g. always-on or
always-available basis), secure hardware platform that is
externally managed by the service management center. The gateway
device comprises application services programming, and associated
hardware, that is positioned on the user premises side of the
Network Service Provider Demarcation, which is configured to be
managed by an external service management center.
Reference now is made in detail to the examples illustrated in the
accompanying drawings and discussed below. FIG. 1 is a high-level
diagram of the architecture of the gateway-service management
center network as disclosed herein, as well as the logical flow of
how a specific Application Client residing at a User Premises could
interact with an Application Service in a gateway device that is
being managed in the gateway-service management center network
configuration. FIG. 1 shows application services that logically
reside at the Application Services Layer (AS Layer) in the User
Premises Network, i.e., on the hardware components located in the
user premises, such as, by example, a gateway device. In
particular, the programming that implements application services is
logically positioned on the user premises side of the Network
Service Provider Demarcation. The application service on the user
premises side that enforces authorization, authentication,
configuration, or use of the respective service via an endpoint
device is logically depicted in FIG. 1 as the Application Services
Enforcement (ASE) module in the AS Layer of the User Premises
Network. The ASE module may also communicate via the wide area
network with the Application Services Management (ASM) logic
residing in the service management center.
FIG. 1 depicts an approach in which the Application Services Logic
(ASL) and the ASE functions reside on the User Premises side. As
discussed more below, the ASL and the ASE functions are implemented
as high-level server type logic within a home gateway device at a
user premises. Other elements shown in FIG. 1 that may reside in
the user premises gateway device include the user premises-side
network function or NF (switch, router or bridge) and the LAN
termination for communication with the endpoint devices
implementing the application client functions. Thus, with reference
to FIG. 1, the first interface, as described above, for enabling
bi-directional network layer communications on the user's side of
the premises with one or more of the associated endpoint devices
resides at the Network Interconnect (NI) Layer and provides the LAN
(Local Area Network) Termination referenced therein. FIG. 1 also
depicts the WAN (Wide Area Network) termination providing
connectivity to the wide area network (network-side NF--Internet or
private wide area data network). The gateway device's second
interface, as described above, for enabling bi-directional network
layer communications for the associated endpoint devices via a wide
area network resides at the NI Layer and provides the WAN
Termination referenced therein. The gateway device's second
interface also enables bi-directional communications between it and
the service management center via the WAN.
With reference to FIG. 1, the core of the logical capacities of the
service management center resides on the Service Provider Network,
and is depicted as the Application Service Management (ASM) portion
of the Application Service Delivery Platform (ASD) in the AS Layer.
The ASM function is implemented in the service management center,
which is external to the user premises, and on the network side of
the demarcation line in FIG. 1. The ASL and ASE functions maintain
logical connectivity or interaction with the Application Service
Management (ASM) function in the service management center,
typically via communication through a wide area network. This
logical connectivity is established through an always-on (or on an
as needed, periodic basis), secure communication channel between
the User Premises AS Layer (ASL and ASE) and the Service Provider
AS Layer (ASM) at the service management center. The service
management center and the communications of the center with one or
more of the gateway devices provides an infrastructure support
and/or management of the application services offered to endpoint
devices and their users by the logic implemented in the gateway
device(s). Effectively, the ASD, considered in its entirety,
extends all the way to the User Premises and traverses the Network
and Network Service Provider Demarcation. The secure communications
channel is established through the NF Layer and the NI layer.
The examples discussed herein also introduce a logical platform
management layer to the user premises-side, which allows for
inter-layer allocation of local resources. This function guarantees
access between the Application Service Logic function on the user
premises network and the applications service management function
in the service management center by assuring that the local user
premises hardware and software modules are functioning at a
required state (CPU and memory usage, bandwidth usage, QoS
settings, etc.) in order for the ASL to have the necessary
resources to establish its required communications path to the
ASM.
The platform manager is also responsible for implementing that part
of the managed application services to be performed by the gateway
device. In that regard, the platform manager secures and manages
the overall hardware platform, given that in this scenario, the NF
layer and the AS layer reside on one hardware platform. This secure
hardware platform provides a robust and secure operating
environment for the AS Layer. So, to establish a secure and robust
hardware operating environment, the platform manager must interface
with all the layers above it and allow for bi-directional
management information flow among all of the functions. For
example, if the Application Client is a telephony application and
the desired application is call processing, the application must
first connect to the LAN termination interface (1). Then a
connection must be established to the AS Layer through the NF layer
(2). At this point the platform manager determines if there are
sufficient resources available for this to take place on the
routing and switching modules and if there is not sufficient
resources on either the LAN Termination interface or the NF layer
functions, it would take the necessary corrective measure to free
up the required resources so that the application can execute
properly (e.g. prioritize packets, throttle bandwidth, attempt to
reduce noise on an RF interface, or free up time slices on a TDMA
interface such as MoCA). Once that is done, the connection is
established to the AS Layer (3), where the ASE and ASL, having been
updated by the ASM in the network, respond instantaneously to the
Application Client, completing the service request.
Application services represent functionalities, implemented in the
higher layer(s) of the protocol or logical stack above the network
layer(s) that may extend up to the top application layer (layer 7
of the OSI model). An application service, for example, provides
application server communication with a client functionality of one
or more endpoint devices, for the respective service, communicated
on top of network layer communications through the interfaces. In
the examples, the services are provided on a subscription service
basis to users at the premises. Hence, the application service
logic provides enforcement regarding authorization, authentication,
configuration, and/or use of the respective service via the
endpoint devices. The application service includes service and
feature functions, implemented and controlled by the application
service logic. Management of the application service is based on
communications with the service management center via the wide area
network.
The illustrated architecture of the gateway device-service
management center network enables other features and capabilities
that have not previously been available to the user. For instance,
peer-to-peer application communication between or among gateways is
possible without the need to go through, or utilize resources at,
an external service management center or presence and networking
message server. Communications through the service management
center are also possible. In addition, given the considerable
functionality present in the gateway device, and its ability to
manage the various endpoint devices associated with it (as
explained below), the user interface with the gateway can be
presented and utilized on the home TV. Additionally, information
from other endpoint devices, such as the PC, network sources (such
as an RSS (Really Simple Syndication) service), may now be overlaid
on the TV screen so that, for example, PC messages, or weather
information, can be viewed on the TV screen, and the functionality
of the PC (or other home-networked endpoint devices) can be
accessed from the TV screen. As described below in connection with
FIG. 2, gateway device 10 may direct alerts, notifications, and
messages from associated endpoint devices to users and display them
on one or more devices as specified by subscribers or service
providers in configuration data stored by the gateway device.
Gateway Device, IM Server, and Service Management Center
Architecture
As illustrated in FIG. 2, gateway device 10 may be configured with
a presence and networking message protocol client (e.g., IM client
610) that may communicate with a local or remote server (e.g., IM
server 99c, which may be part of IM networks 99a and/or 99b as
described below, or service management center 50). With IM client
610, gateway device 10 may be configured as an IM endpoint so as to
expose one or more resources of associated endpoint devices (e.g.,
devices 560, 570, 580, etc.), and/or the presence of the associated
endpoint devices themselves, under the management of gateway device
10. The management by gateway device 10 of the one or more
associated endpoint devices (e.g., devices 560, 570, 580, etc.) may
include, for example, the routing of notification messages from the
associated endpoint devices to users 590 or service providers 50b,
and file sharing among the endpoint devices. Preferably, gateway
device 10 does not extend the presence and networking message
protocol functionality of IM client 610 to the associated endpoint
devices (e.g., devices 560, 570, 580, etc.).
As shown in FIG. 2, gateway device 10 may be configured with
service logic 500, which acts as an intermediary between the IM
client 610 and the drivers for the endpoint devices. Application
service logic may include programming 510 that interacts with
drivers for devices, and configuration data 520. Drivers (e.g.,
driver 530, driver 540, driver 550) may be configured to control
and manage the various endpoint devices associated with gateway
device 10. For example, driver 530, 540, and 550 may manage devices
560, 570, and 580, respectively. Although not shown in FIG. 2, one
driver may manage more that one device. Endpoint devices, such as
endpoint devices 560, 570, and 580, may include any
digitally-enabled device. Additionally, drivers may enable
communications between endpoint devices associated with the
gateway, as discussed in further detail below.
IM client 610 of gateway device 10 may interact with the driver
associated with the endpoint device through the implemented
application service logic 500. Service logic 500 is configured to
specify which devices, attributes, and operations are exposed to
the IM server 99c via messages 670 with IM client 610. Through the
service management center 50, the service provider 50b may also
specify parameters of operation and presentation of application
services provisioned by the service provider (e.g., using
provisioning server 50a). The service logic 500, may include
configuration data 520, which may be configured by user 590 or the
service provider 50b to specify rules for handling incoming IM
messages (e.g., IM messages 670, which may be any suitable messages
using a presence and networking message protocol, such as Instant
Messaging) to gateway device 10 and the routing of those messages
to the appropriate managed endpoint device (e.g., endpoint devices
560, 570, 580, etc.) using one or more drivers (e.g., drivers 530,
540, 550, etc.) associated with the endpoint device.
The intermediary service logic 500 in gateway device 10 may be
configured by user 590 of gateway device 10 to establish the
management parameters of associated digital endpoint devices 560,
570, 580, etc. Configuration data 520 of service logic 500 may
store the management parameters for the one or more associated
endpoint devices. Thus, local or remote IM users via IM server 99c
may interact with or manage endpoint devices associated with
gateway device 10 that may not be not be enabled with a presence
and networking message protocol client (e.g., IM client) protocol.
Thus, service provider 50b and user 590 may configure the
configuration data 520 of gateway device 10 so as to manage the
response of gateway device 10 to an IM event (e.g., IM message 670)
by providing customized notification from associated endpoint
devices, as well as management and responses of, and interaction
with, associated endpoint devices.
IM client 610 enables gateway 10 to communicate with other external
entities through a local or remote IM server 99c using a presence
and networking message protocol (e.g., IM protocol). Preferably, IM
client 610 is the IM client presented to an external entity via IM
server 99c. Alternatively, one or more endpoint devices may be
enabled with an IM client and may be visible to IM server. IM
client 610 of gateway device 10 presents endpoint devices (e.g.,
devices 560, 570, 580, etc.) and/or device functionalities to
external endpoint clients communicatively coupled to IM server 99c
based upon configuration data 520 in service logic 500. For
example, gateway device 10 with IM client 610 may be visible to an
external user, and the associated endpoint devices of gateway
device 10 may not be visible. In a preferred embodiment, IM client
610 of gateway device 10 reveals associated endpoint devices it
manages based upon configuration data 520, and such that the
endpoint devices and their respective functionalities are revealed
as attributes and operations of IM client 610.
Associated with gateway device 10 are one or more endpoint devices
(e.g., device 560, device 570, device 580, etc.). These devices do
not need to be enabled with presence and networking protocol
clients (e.g., IM clients) or function as IM-intelligent devices.
Although such devices may have IM clients or function as
IM-intelligent devices, the individual devices and their associated
functionalities are preferably not presented directly to external
clients. Rather, the presence and functionalities of these devices
are represented by IM client 610 of gateway device 10 as specified
by configuration data 520. Alternatively, configuration data 520
may be configured by user 590 or service provider 50b so as to
directly present the presence and/or functionality of an associated
IM-intelligent device.
As described herein, endpoint devices may become associated with,
and configured to, gateway device 10. Each endpoint device has an
associated driver (e.g., driver 530, driver 540, driver 550, etc.)
which accomplishes the association with, and configuration to,
gateway device 10. The driver communicates with the device (e.g.,
device 560, device 570, device 580, etc.) directly using its own
proprietary communication protocol. The driver abstracts the
capabilities of the endpoint device with which it is associated to
form a set of attributes and operations for that type of endpoint
device. For example, digital photo frames may have the same kind of
driver capabilities, but each digital photo frame may have its own
particular driver implementation.
Intermediary service logic 500 of gateway device 10 uses the one or
more drivers (e.g., driver 530, driver 540, driver 550, etc.) to
communicate with the endpoint devices. The intermediary service
logic 500 interacts with one or more drivers through, for example,
a an applications program interface (API). Thus, specific
communication protocols either supported by or utilized by each
endpoint device need not reside in intermediary service logic 500,
and may reside in the drivers. As discussed above and as
illustrated in FIG. 2, intermediary service logic 500 may be
positioned between the IM client 610 device drivers (e.g., drivers
530, 540, 550, etc.). Once an endpoint device is detected by and
configured to gateway device 10, intermediary service logic 500 may
enable user 590 or the service provider 50b to establish or revise
configuration data 520 to what extent, if any, the presence and/or
functionalities of the endpoint devices are available via IM client
610 to external entities. Thus, user 590 may, for example, set
parameters for access, control, presentation, notification and
level of service for one or more endpoint devices. These parameter
selections may be stored in configuration data 520. For example,
the user can decide who can view the endpoint devices and the
attributes and operations exposed to an IM external entity. This
arrangement allows the IM client 610 to utilize the endpoint
devices and functionalities, as well as and present these
functionalities as part of the capabilities of gateway device 10
that may be exposed to an external entity. From the perspective of
the external entity or external IM server (e.g., IM server 99c), IM
client 610 of gateway device 10 appears as the sole endpoint, even
though gateway device 10 to utilize the capabilities provided by
the associated endpoints.
Intermediary service logic 500 may enable user 590 of gateway
device 10 to define the notices and/or alerts provided by gateway
device 10 in response to an IM event. User may specify various
notification protocols, which may be stored as configuration data
520, that may be used to determine how gateway device 10 responds
to an IM event. For example, user 590 may have the ability to
establish, with configuration data 520, whether notices may be
displayed on certain associated endpoint devices (e.g., a
television, PC, personal digital assistant, cell phone, remote
control, etc.) advising of an IM event or inviting a response to an
IM event. User 590 may also specify in configuration data 520
whether IM notices may be sent to an external entity with an IM
client in response to an IM event, whether the notice is
informational in nature and that actions in respect to an endpoint
device are automatically taken by gateway device 10, or whether a
response to the notice is required before any action will be taken.
For example, notices may be displayed on the TV a particular room
when a phone call is received providing the caller's identification
and other related information. The notification protocol, as
defined in configuration data 520, may be programmed to display the
notice for a predefined period of time (e.g., ten seconds, one
minute, etc.) on a television or other display device (e.g., cell
phone, personal digital assistant, remote control, PC, etc.). The
notification protocol may require a response by which the call may
be answered and the TV programming paused, or the call is routed to
a voice mail or other messaging storage. Thus, configuration data
520, as set by user 590 or service provider 50b, may enable gateway
device 10 to have an plurality of different options for response to
an IM event, depending on the nature of the event and the endpoint
device indirectly involved. This differs from previous approaches
in which notification and messaging protocols are provided through
a central IM service.
In an illustrative example, a TV, digital picture frame, and garage
door may be devices associated with and configured to gateway
device 10. Application service logic 500 of gateway device 10 may
be utilized by user 590 to present to an external IM entity the
following as the identified resource:
TABLE-US-00001 Gateway device -- Video -- Digital Pictures Garage
Door.
In the above example, user 590 has made configuration selections,
which may be represented by configuration data 520 such that
intermediary service logic 500 may present the garage door, but not
the TV or digital picture frame to external IM clients (i.e., IM
clients other than IM client 610). Instead, IM client 610 of
gateway device 10 offered to the home user environment by the TV or
digital picture frame has been presented. Even though the Garage
Door is listed as an endpoint and may be IM-enabled, the external
entity does not communicate with the Garage Door directly. Rather,
IM client 610 may control and communicate with the Garage Door
through the intermediary service logic 500.
The resources presented to an external IM entity may be dependent
on the identity of the IM entity. For example, a father and mother
may be presented with the Garage Door resource, but not their
children or those on the roster or buddy list for the registered IM
community. Other restrictions that user 590 may implement through
the intermediary service logic 500 may allow IM external entities
to view identity and state of the endpoint device, but in a
read-only attribute on the IM Client 610. Therefore, the
configuration of configuration data 520 may determine the external
entities that may directly interact with any endpoint device, and
the extent of that interaction. The interaction with endpoint
devices is governed and managed by the intermediary service logic
500 and associated configuration data 520.
Along with the resources presented, IM client 610 may present
corresponding or associated capabilities and states. For
example:
TABLE-US-00002 Gateway device -- Video (available) -- Digital
Pictures (available) Garage Door (open).
Intermediary service logic 500 may further enable user 590 to
determine the manner in which an event is handled by gateway device
10 and the associated endpoints. In the preceding example, if an
external entity sends a digital picture, gateway device 10 may be
programmed to notify the subscriber (e.g., user 590), through
messages displayed, for example, on the TV, the picture frame, or a
cell phone, that a digital picture has been offered. The subscriber
may elect which associated end point device to display the digital
picture, e.g., the TV, the digital picture frame. Alternatively,
gateway device 10 may be programmed to display the offered digital
picture on a pre-selected endpoint device, such as the TV, upon
receipt. The response to each event may be programmed (e.g., as
part of configuration data 520) to be dependent on the source of
the event and/or request or the nature of it.
In another example, user 590 may decide not to present resources
(e.g., to IM server 99c) via IM Client 610, but may configure the
service logic to consider the type of incoming IM message (e.g.,
message 670) for routing to a particular device. For example,
incoming file shares could be routed to the digital picture frame
without an IM external entity being aware that the IM Client 610
has an associated picture frame.
Gateway device 10 may have further programming (e.g., the API and
drivers as described above) that communicates with the endpoint
devices (e.g., device 560, device 570, device 580, etc.). If the
endpoint device is IM-enabled, the communication may be based on an
IM protocol from gateway device 10. Or, it may be based on an
alternative communication protocol based on the capabilities of the
endpoint device or the programming in service logic 500.
Preferably, for IM-enabled end-point devices, the endpoint device
does not communicate directly with the external entity, but does so
through service logic 500 of gateway device 10.
If the endpoint device is not IM-enabled, the communication may be
facilitated by any appropriate communication protocol. In
particular, the endpoint device may communicate its state through
the associated driver (e.g., driver 530, driver 540, driver 550,
etc.) to the intermediary service logic 500. Intermediary service
logic 500 may exposes the state condition to, e.g., as an attribute
of IM Client 610, if so configured to do so by user 590. The
endpoint device is thus able to communicate events to gateway
device 10.
As described above, the notification protocol as selected or
predefined in configuration data 520 may enable IM client 610 of
gateway device 10 to determine the recipient (e.g., an IM external
entity or another associated endpoint device) of messages or
notification. The messages and/or notifications may be endpoint
device state notices and messages generated by IM Client 610 in
response to IM events. This determination can be made by reference
to a "roster" created by user in accordance with programming
selections available by the intermediary service logic 500 (wherein
the selections may be stored as configuration data 520). The roster
may particularized based on event or endpoint device, and may vary
depending on the type of event associated with designated end-point
devices. IM client 610 may automatically inform particular
end-point devices and/or IM external entities of state changes of
other end-point devices or of IM events or messages received from
IM external entities. Because IM external entities may include
other gateway devices, which in turn have their own associated
end-point devices, it is possible that the programming choices may,
in response to state changes in one endpoint device associated with
gateway device 10, automatically trigger or effect state changes in
other gateway device and/or endpoint devices associated with other
gateway devices.
The gateway device 10, IM server 99c, and service management center
50 illustrated in FIG. 2 may be used in the context of a home
management system. A more specific example of a home management
system is described below in connection with FIG. 11, which
illustrates a home automation control network. Turning to FIG. 2,
the received event (e.g., message 670) may be a state notice from
the garage door (e.g., device 560, 570 or 580, etc.) to the gateway
device 10 (via a driver program) that it is open. Gateway device 10
may determine the user and device associated with the user that
should receive the state notice (e.g., as directed by configuration
data 520). For example, while several cell phones (family, friends,
etc.) on an IM Roster associated with the gateway device 10, the
programming of intermediary service logic 500 gateway device 10 may
direct IM client 610 to communicate only to e.g., a mother and
father's cell phones regarding the garage door state. The mother
may respond by directing the garage door be closed. IM client 610
of gateway device 10 may receive the event (e.g., message 670 with
the instruction to close the door), and intermediary application
service logic 500 determines if the event is to be processed and
implemented. Having verified the event, the instruction is
implemented through driver and/or API resident on gateway device
10. The door is closed, and the drivers receive state information.
The state information may be shared with the intermediary
application service logic 500, which determines if the state
information is to be communicated, based on configuration data 520.
If it is to be communicated, service logic 500 determines which
associated external entities are to receive that state notice
(e.g., cell phones for the mother and father of a family).
An event (e.g., message 670 as an incoming file, instruction, state
notice, etc.) arriving at the IM client 610 of the gateway device
10, whether received from an associated endpoint device or from an
external entity (e.g., IM server 99c), is handled and processed by
intermediary application service logic 500 of gateway device 10
according to the configuration and programming choices made by user
590 (stored in configuration data 520). User 590 may determine
which of the entities are notified of the event, how they are
notified of the event, and the range of responses available to the
entity and the endpoint device.
Thus, in the arrangement illustrated in FIG. 2, the external entity
or external IM server (e.g., IM server 99c) registers IM client 610
of gateway device 10, and associated endpoint devices are not
visible from the standpoint of IM server 99c or other external
entity. Although, the functionalities of one or more endpoint
devices may be selected to be available to IM server 99c or other
external entity. From the standpoint of user 590, gateway device 10
may be enabled to manage and control one or more associated
endpoint devices, and utilize them in response to events, according
to programming or programming selections made by the user 590 (and
stored, e.g., as configuration data 520).
Gateway device 10 may also be managed by service management center
50. Thus, IM client 610 of gateway device 10 and associated
application service logic 500 may be provisioned and governed by
the service provider 50b through service management center 50. This
arrangement may enable service provider 50b to set the parameters
for access, control, presentation, and level of service which may
be stored in configuration data 520, with user 590 able to make
programming and service choices within the parameters set by the
service provider 50b. The various services available through the
gateway device 10 (e.g., home automation, file sharing, video
download), and the features or capabilities within each of those
services, may be provisioned, configured, managed, initiated, or
terminated through service management center 50. Thus, IM Client
610 may be managed externally to provide different levels and types
of services and capabilities.
Note that the external IM Server 99c illustrated in FIG. 2 can be
public (e.g., an IM server operated by Yahoo.RTM., Google.RTM.,
MSN.RTM., etc.) or private. In one particular embodiment, service
management center 50 may be configured to serve as an external but
private CM server. This capability is in addition to the
management, servicing and provisioning capabilities (e.g., as with
provisioning server 50a of service management center 50) described
above. Thus, the architecture of the system illustrated in FIG. 2
may be configured to enable an established public IM service to
provide presence and networking functions to gateway device 10, or
it can be configured to have the service management center 50
configured to be a private external IM server. Thus, the
communication between gateway device 10 and service management
center 50, may provide a private, proprietary, and closed presence
and networking message communication system. In addition, the IM
client-server communication link, whether public or private, may be
operated in a secure manner. When service management center 50 is
enabled as a private external IM Server, the IM client server
communications between service management center 50 and gateway
device 10 may be private and secure.
Communication Amongst Endpoint Devices Via the Gateway Device
Gateway device 10 may facilitate communication between various
digital endpoint devices (e.g., devices 560, 570, 580, etc.)
associated with gateway device 10 using drivers (e.g., drivers 530,
540, 550, etc.) and service logic 500.
For example, device 560 may be a remote control, device 570 may be
a television, and device 580 may be a garage door. A user may use
the remote control to make selections of video content for display
on the television. A remote control receiver may be communicatively
connected to gateway device 10, wherein the receiver has an
associated driver program (e.g., driver 530). The driver may
process the received signal from the remote, as the communication
between the device and the driver may utilize a driver
communications protocol. The driver may transmit the processed
remote signal to programming 510 of service logic 500 to enable the
remote to communicate with the television. Programming 510 may
determine which endpoint device may receive the processed remote
signal, as well as determine the application or service that the
signal is requesting from the determined endpoint device. For
example, the signal from the remote may be to direct the television
to change the channel. Service logic 500 provides the request from
the remote to the driver for the associated television. The driver
for the television communicates the request from service logic 500
(which was originally from the remote) to the television using a
driver communication protocol that may be specific for
communications between the driver and the television. Upon receipt
of the request as facilitated by the driver, the television may
change the channel as the user had indicated.
Similarly, the garage door (e.g., device 580 as in the example
above) may send a notification that the door is open. The
notification may be transmitted to the driver (e.g., driver 550 of
gateway device 10) using a driver communication protocol. The
driver may transmit the notification to programming 510 of service
logic 500. Using configuration data 520, programming 510 may
determine which endpoint device to direct notification messages
from the garage. For example, the configuration data may provide
instructions that notification messages should be directed to the
television (e.g., device 570). Programming 510 directs the
notification message to the driver program (e.g., driver 540)
associated with the television (e.g., device 570). The driver
program uses a driver communication protocol to transmit the
notification message to the television for display. The television
receives the communication from the driver program and presents the
notification message for display.
Using the remote control, a user may respond to the notification
message by selecting a option to change the status of the garage
door (e.g., either from a selection offered by the notification
message displayed or by selecting a menu option with the remote).
Thus, the remote may provide a signal to the remote control
receiver that is communicatively connected to gateway device 10,
wherein the receiver has an associated driver program (e.g., driver
530). The driver may process the received signal from the remote,
as the communication between the device and the driver may utilize
a driver communications protocol. The driver may transmit the
processed remote signal to programming 510 of service logic 500 to
enable the remote to communicate with the garage door via, e.g.,
driver 550. Driver 550 may utilize a driver communications protocol
to communicate to the garage door the command to close the door.
Upon receipt of the command via the driver communications protocol,
the garage door (e.g., device 580) may close.
A notification message may be sent from the garage door to driver
550 via the driver communications protocol that the door has been
closed. Driver 550 may provide the message to programming 510,
which, in turn, may provide the message to driver 540. This routing
of the message may be, for example, based at least in part on
configuration data 520. Driver 540 may transmit the message to the
television (e.g., device 570) via the driver communication protocol
for display. Thus, the user may be updated as to the change in
status of the garage door (i.e., status has been changed from open
to closed).
In addition, the remote control (e.g., device 560) may be enabled
to facilitate two-way communication between the remote control and
gateway device 10 via a driver communication protocol and a driver
(e.g., driver 530). To enable this communication, the remote
control may be configured with a display that presents alarm,
status, and/or notification messages, or any other information to a
user. The remote and its associated display may be configured to
present a menu to the user for selecting options to display the
status of endpoint devices associated with gateway device 10, and
enable the user to change the status of the associated devices by
providing selections.
A user may determine which messages are to be routed to the remote
control by gateway device 10, as well as determine which endpoint
devices associated with gateway device 10 may be controlled by the
remote by setting various device and messaging parameters in
configuration data 520 of gateway device 10.
Turning to the example above, the remote control may provide a
signal to gateway device 10 to close the associated garage door
endpoint device, and may also receive a notification message from
the garage door via gateway device 10 that the door has been
closed. This notification message may be, for example, presented on
the display of the remote. In another example, a user may be
notified of the phone number of an incoming phone call, which may
be displayed on the remote control's display.
Gateway device 10, in conjunction with service management center
50, may deliver application services to associated endpoint
devices, as described further in connection with FIG. 3.
Managed Application Services Delivery Platform
FIG. 3 depicts, at the Physical/Network layer shown therein, an
example of user premises hardware components required for
delivering data services (i.e. Internet connectivity) along with a
separate, non-integrated managed hardware used in delivering a set
of managed application services (i.e. IP telephony). The Network
Service Provider Wide Area Network Termination Apparatus (NSP-TA)
allows for a typical termination of Wide Area Network Services,
such as DSL, Cable, Fiber, etc, by a network services provider. The
NSP-TA provides the WAN Termination in the NI Layer (FIG. 1). The
NSP-TA may be an existing user-premises device, provided by the
carrier supplying network services to the premises. FIG. 2 also
depicts the Network Service Provider Demarcation at the hardware
level.
If configured as a standalone device, the NSP-TA device is required
to have its own CPU, Memory, physical interfaces and logic control.
In order for Network Service Providers to deliver managed services,
they typically require a management element controlled by the CPU
on the NSP-TA. To depict these logical elements residing on the
hardware components, FIG. 3 includes an Application/Services Layer
above the hardware layer. This layer corresponds to the AS Layer of
FIG. 1, but without reference to any logical elements residing at
the network services provider. The management element, represented
by the Network Service Provider Managed Application, allows the
network service provider to determine the status of the network
hardware device and interfaces as well as maintain a certain degree
of security enforcement at the customer premises. As noted, the
network service functionality is at the NI and NF Layers and
generally does not extend to the AS Layer(s) beyond basic
authentication authorization and state management. As with the
hardware components, the logical elements also have a Network
Service Provider Demarcation as shown in FIG. 3. On the WAN side,
depicted as the Network Service Provider Managed Applications side,
of the Network Service Provider Demarcation, resides the
applications that are managed, and under the exclusive control, of
the network service provider (the Network Service Provider Logic).
The User Interface to Managed Applications is present on the LAN
side of the Network Service Provider Demarcation within the
Application/Services Layer. Within this interface resides
programming and logic available to users other than the network
service provider referred to as the Network User Controlled Logic.
The Network User Controlled Logic, which is depicted at the
Application/Services Layer in FIG. 3, provides a user interface to
the Network Service Provider Logic and, to the extent permitted by
the Network Service Provider Logic, interaction with or
communication between the user and network service provider through
the Network User Controlled Logic and the Network Service Provider
Logic, and to the NSP-TA hardware components. The Network User
Controlled Logic allows for the User of the hardware to make
certain, minimal programming changes relevant to their preferences
(e.g., user name and password changes, local IP addresses changes,
local interface selection). All user devices typically can only
communicate with the NSP-TA through one or more of the User
Premises Network Interfaces. The user can modify the Network User
Controlled Logic through the User Premises Network Interface. The
Network Service Provider Demarcation is typically within the
NSP-TA, logically dividing the Network Service Provider Interface
and the User Premises Network Interface modules. The network
service provider does not have any in depth visibility or
significant responsibility beyond the Network Service Provider
Demarcation.
The User Network and Application Delivery Apparatus (UNA-DA), shown
on the right hand side of FIG. 3, is a separate managed gateway
device that a managed service provider (which may be different than
the network service provider) would control in delivering a set of
application services to the user premises. This device is required
to have its own dedicated CPU, memory, logic control, as well as
its own dedicated set of interfaces. The UNA-DA includes one or
more Network Interfaces providing connectivity to the NSP-TA as
well as to user premises endpoint devices. The interfaces provide
the LAN Termination functionality at the NI Layer (FIG. 1). One
skilled in the art will readily recognize, however, that the
physical connection that connects the UNA-DA to the NSP-TA also
provides connectivity for the UNA-DA to the public (WAN side)
network, and is the means by which the UNA-DA accesses the public
network. The end point devices connected to the LAN Interface are
on the private (LAN) side of that interface. The UNA-DA also
includes a switch, router or bridge for the NF Layer.
Programming elements of the UNA-DA are depicted at the
Application/Services Layer of the UNA-DA. Certain logical elements,
depicted as the Application Service Provider Managed Applications
and Platform in FIG. 3, on which resides, inter alia, the
programming corresponding to the ASL and ASE of FIG. 1, are managed
by the managed application service provider's network control
center, e.g. by the ASM through a wide area network (WAN) by means
of a control channel to the Application Service Provider Managed
Applications and Platform. The Application Service Provider Managed
Applications and Platform includes a platform management logic
module that, with other programming in the Platform and the ASM,
allows the managed application service provider to control the
hardware elements of the UNA-DA in addition to any other relevant
application services logic or hardware that may reside on the user
premises. For example, this programming enables managed application
service provider to control and manage the hardware elements on the
UNA-DA to ensure proper use and allocation of the UNA-DA's
processing, memory, storage, and bandwidth, to monitor local
hardware security and generate needed alarms or protection
sequences, and to prioritize applications based on a set of
established policies. The user would have control over specific
parameters of the UNA-DA through the User Interface and Platform to
Managed Applications (User Controlled Logic) shown in FIG. 3. These
parameters allow the user to control the local behavior of the
interfaces and to configure the specific applications to
accommodate the user network as configured by the user and to
implement the user preferences for those applications.
To identify the separation of, and distinguish between, the
programming and hardware components subject to control by the
managed service provider and those subject to control by the user
premises, FIG. 3 identifies a dividing line across the logical
elements of the UNA-DA, and a corresponding dividing line across
hardware components, referred to as the Applications Service
Provider Demarcation. The Applications Service Provider Demarcation
is flexible in that it may extend logically through the Application
Services Interface (and, in a hardware context, through the Network
Interface) to other devices that are under the logical control of
the Application Services Provider Managed Applications and
Platform, given that "services" are not restricted to a specific
hardware boundary.
There is no hard requirement for cross management between the
UNDA-DA and the NSP-TA. Under this first scenario the user is
responsible for making the configuration changes in the specific
user controlled logic modules in order to get the two devices to
communicate with each other. Optionally the two sub-systems can be
combined together, either physically in one hardware device, or
logically as two separate hardware devices, but having one user
managed interface.
The two hardware regimes described above (NSP-TA and the UNA-DA)
may be combined into one managed hardware platform and, thereby,
replace the need for the user to have access to the User Premises
Network Interface with the logic residing in the Platform
Management logic module of the Application Service Provider Managed
Applications and Platform. This would in effect replace the "user"
access with a managed "machine" access, for aspects of the NSP-TA,
as well as aspects of the application services offered through the
UNA-DA. Thus, the combination creates an integral gateway device
providing both network service and application services, under
centralized management. Although integrated, network interconnect
functions of the NSP-TA may still be managed by the network service
provider, as in the example of FIG. 3. Those skilled in the art
will readily see additional combinations and configurations for the
hardware comprising the NSP-TA and the UNA-DA. For example, in a
further embodiment, all the hardware dedicated to the Network
Service Provider Interface may reside and be integral with the
hardware comprising the UNA-DA. Thus, the hardware for the WAN
interface may reside on the UNA-DA.
It may be helpful now to consider more detailed examples of the
gateway device-service management center network.
Gateway Device and Service Management Center Elements
Those skilled in the art will recognize that functions of the
service management center, which reside in the Application Service
Management node on the Service Provider Network, as depicted in
FIG. 1, may be implemented in a variety of different ways, on one
or more computer hardware platforms connected to the gateway
devices via a wide area network. FIG. 3 depicts an example wherein
the implementation is on Internet or other wide area IP network 99.
The example uses a distributed processing approach, in which the
elements/platforms implementing the service management center are
interconnected for communication and for wide area communication,
and in this way, those elements form a network 50 for implementing
the service management center.
As shown in FIG. 4, the service management center network, through
the logical capabilities earlier depicted in FIG. 1 as the ASM
module of the ASD Platform at the AS Layer, manages application
services for a number of gateway devices 10, 10.sub.1 . . .
10.sub.n located at various users' premises. These application
services, shown as ASL and ASE in FIG. 1, implement their
functionality within the Application Services Layer (FIG. 1),
through programming that resides, at least in part, within the
Application Service Provider Managed Applications and Platform of
the UNA-DA (FIG. 3). As shown in FIG. 3, secure connectivity to the
service management center network 50 is provided, in one
embodiment, via a WAN Termination interface, such as Ethernet WAN
53 over a broadband connection via the public Internet 99, or, for
example, via a wireless EvDO (Evolution Data Optimized) Internet
data interface embodied as a PCMCIA (personal computer memory)
wireless card 56. When the WAN Termination interface 53 is used,
for example, it may provide connectivity to a broadband modem
serving as the NSP-TA of FIG. 3, either as a separate unit or on a
board included within the gateway device 10. If the wireless WAN
interface is used, there may be no physical NSP-TA device, and the
logic of the gateway device would implement functions of the NSP-TA
as well.
As will be described in greater detail herein below, the service
management center 50 generally provides a communications and
processing infrastructure for supporting the variety of application
services and related communications residing at the gateway devices
10, 10.sub.1 . . . 10.sub.n. In an exemplary embodiment, this
infrastructure may be configured to provide a secure environment
and may be IP-based. Preferably, this support architecture is
designed for high availability, redundancy, and cost-effective
scaling.
The secure platform for building and providing multiple application
services for digital endpoints associated with a gateway device
requires connectivity between the gateway device 10 and each of a
user's devices (referred interchangeably herein as "endpoint
devices" or "digital endpoint devices"). This connectivity may be
provided by implementation of one or more USB ports (interfaces)
13, a wired Local Area Network connection such as provided by an
Ethernet local area network (LAN) interface 16, or, a wireless
network interface via a WiFi LAN access point 62 provided, for
example, in accordance with the I.E.E.E. 802.11 b/g/n wireless or
wireless network communications standard. These physical interfaces
provide the required network interconnectivity for the endpoint
devices to connect to the multiple application services. Although
not shown in FIG. 4, this connectivity between digital endpoint
devices and the gateway device may be accomplished by other means,
including, by way of example, through of a virtual private area
network connection accessed through a WAN interface.
That is, the gateway device 10 interfaces with digital endpoint
devices including, but not limited to: a home automation networking
device 20 (e.g. X10, Z-Wave or ZigBee) for wired or wireless home
network automation and control of networked home devices such as a
switch controller 22, sensor devices 23, automatically controlled
window blinds 24, a controlled lighting or lamp unit 25 etc,
individual or wired or wireless network of personal computing (PC)
and laptop/mobile devices 30a, . . . , 30c that serve as file
sources, control points and hosts for various other client
endpoints, one or more television display devices 32 including
associated set top boxes (STB) 35a or digital media adapters (DMA)
35b, one or more VoIP phone devices (e.g. SIP phones) 40, or other
devices (not shown) that convert IP interfaces to PSTN FXO and FXS
interfaces.
As noted earlier, the gateway device 10 may provide an interface
35b to the Digital Media Adapter (DMA) for television (TV) 32,
which enables bidirectional wireline or wireless communication.
This interface supports several functions for multiple services
including, but not limited to: media (e.g., video and music) by
enabling the transfer of media (e.g., video and music) to the TV;
voice services, by providing for Called Line ID and for voice mail
control; and provide Home Automation Services including status and
control of networked home automation devices. The DMA element 35b
converts audio and video (optionally) to a format suitable for a
TV. In addition, the Digital Media Adapter 35b may be capable of
receiving context-sensitive commands from a remote control device
(not shown) and forwarding those commands to the gateway device 10.
This enables the use of menus on the TV 32 for controlling
application services and various features functions thereof, as
offered by the gateway device 10. For example, the Media Adapter/TV
combination is able to provide the following features including,
but not limited to: display of media; media control functions, when
enabled (FF, REW, STOP, PAUSE, etc); display of Calling Line
Identification (CLID); control of voicemail; picture viewing;
control of home automation; and user functions for the gateway
device 10.
A Set Top Box 35a as shown in FIG. 4 also may handle media format
conversion (for example NTSC to ATSC television RF signals),
digital decryption and other DRM (digital rights management)
functions, and Video On Demand Purchases, etc. The Set Top Box/TV
combination may thus enable, by way of example: Media format
conversion (for example NTSC to ATSC); decryption; other DRM
functions (such as expiry of leases), prohibition of copying to
digital outputs, function restriction, etc.; Video On Demand
Purchases; and media control functions (e.g., FF, REW, STOP, PAUSE,
etc.).
Whether provided by the DMA interface 35b and the TV 32 or by the
set-top-box 35a and the TV 32, the communications to and from the
TV provide a user interface for interaction with the gateway device
10. The programming of the gateway device supports, among other
things, a graphical user interface (GUI) via the TV, sometimes
referred to as the "ten-foot" interface.
With respect to PCs interfacing with the gateway device 10, PCs may
serve as, among other things, file sources, control points and
hosts for various software clients. Thus, the PC programming may
work in conjunction with the ASL and ASE programming of the gateway
device. Together, the PC programming and the ASL and ASE
programming provide a more comprehensive and robust user
experience. The gateway device 10 may further provide a
bidirectional wireline or wireless interface 35c to a PC device 306
for supporting the transfer of media (e.g., video and music) to the
computer for storage and viewing; for supporting voice services,
e.g., by providing for calls from SIP soft clients; for file
sharing, file back-up and home storage and home automation control
functions. The access point 62 offers wireless data communications
with a PC 30c. The gateway device interface through any PC may
provide for the bidirectional moving of files, and status and
control for the endpoint devices, including for example, status and
control of networked home automation devices. In addition, using
the PC interface, users may, for example, share files on the
gateway devices, back-up or transfer files to the gateway devices
or other storage; access personal page for notifications, RSS,
shared photos, voicemail, etc. In addition to the IM and SIP
capabilities of the gateway device, as described more below, PCs
may also serve as a host for IM and SIP soft phone clients and
other client devices. The client-server interaction of the PC with
the application service logic of the gateway device 10 offers an
alternative GUI for at least some of the services. The PC based GUI
is sometimes referred to as the "two-foot" interface.
Although not shown in FIG. 4, other digital endpoint devices for
which connectivity may be established with the gateway device 10
include, but are not limited to: personal music or media players,
hi-fi audio equipment with media streaming capability, game
stations, Internet radio devices, WiFi phones, WiFi or other
wirelessly enabled digital cameras, facsimile machines, electronic
picture frames, health monitors (sensor and monitoring devices),
etc.
As described in greater detail herein, the gateway device 10
includes both a hardware and software infrastructure that enables a
bridging of the WAN and LAN networks, e.g. a proxy function, such
that control of any digital endpoint device at the premises from
the same or remote location is possible via the gateway device 10
using, optionally, a secure peer and presence type messaging
infrastructure or other communications protocols, e.g. HTTPS. For
example, via any IM-capable device or client 80a, 80b respectively
connected with an Instant Messaging (IM) or XMPP (Extensible
Messaging and Presence Protocol) network messaging infrastructure,
e.g. IM networks 99a, 99b such as provided by Yahoo, Microsoft
(MSN), Skype, America Online, ICQ, and the like, shown for purposes
of illustration in FIG. 4, a user may access any type of
functionality at a subordinate digital endpoint device at the
premises via the gateway device 10 and service management center 50
by simple use of peer and presence messaging protocols. In one
exemplary embodiment, a peer and presence communications protocol
may be used such as Jabber and/or XMPP. Particularly, Jabber is a
set of streaming XML protocols and technologies that enable any two
entities on the Internet to exchange messages, presence, and other
structured information in close to real time. The Internet
Engineering Task Force (IETF) has formalized the core XML streaming
protocols as an approved instant messaging and presence technology
under the name of XMPP (Extensible Messaging and Presence
Protocol), the XMPP specifications of which are incorporated by
reference herein as IETF RFC 3920 and RFC 3921. Thus, the gateway
device is provided with functionality for enabling a user to
remotely tap into and initiate functionality of a digital endpoint
device or application at the premises via the IM-based messaging
framework. In addition, the gateway device 10 and network
connectivity to the novel service management center 50, provides,
in a preferred embodiment, a secure peer and presence messaging
framework, enabling real-time communications among peers via other
gateway devices 10.sub.1 . . . 10.sub.n. For instance, the device
10 provides the ability to construct communication paths between
peers with formal communications exchanges available between, for
example, one gateway device 10.sub.1 at a first premises and a
second gateway device 10.sub.n located at the remote premises.
Thus, such an infrastructure provides for content addressing,
enabling peers through remote gateway devices 10.sub.1 . . .
10.sub.n. to supply and request content such as files, media
content or other resources of interest to a community of
interest.
As noted above, the novel system architecture allocates, the
logical functionality of the ASD Platform (FIG. 1) between the
gateway device 10 and the service management center 50 within an
environment that enables communication and feedback at the AS Layer
(FIG. 1) between the gateway device 10 and service management
center 50. Thus, the gateway device 10, when operable with the
service management center 50, makes possible the management of
services for the digital home and facilitates the easy addition of
new services or modification of existing services. Such services
may include, for example, facility management (home automation),
media content downloading and Digital Rights Management (DRM),
device updates, data backups, file sharing, media downloading and
transmission, etc., without the intermediary of a plurality of
external service providers who may typically provide these
individual services for every digital endpoint device in the home
or premises. The programming for these services resides in the
Application Service Provider Managed Applications and Platform of
the UNA-DA (FIG. 3). That is, as earlier shown, the gateway device
10 is integrated with hardware and software modules and respective
interfaces that handle all aspects of home automation and digital
endpoint service and management for the home in a manner without
having to rely on external service providers and, in a manner that
is essentially seamless to the user. This, advantageously is
provided by the service management center 50 which is able to
access regions of the gateway device 10 that are not accessible to
the user, e.g. for controlling the transport and storing of digital
content and downloading and enabling service applications and
upgrades and providing largely invisible support for many tasks
performed by users.
For example, with the robust capabilities of the Application
Service Provider Managed Applications and Platform (FIG. 3), the
gateway device 10 is capable of handling all aspects of the digital
home communications, e.g. IP, voice, VoIP, phone connectivity. In
this example, the service logic located and stored at the gateway
device 10 may provide soft-switch functionality for implementing
call-processing features at the premises (rather than the network)
for voice communications, and enabling management of other service
features to be described. With the provision of central office type
call services and other service features provided at the gateway
devices 10.sub.1 . . . 10.sub.n, a distributed soft-switch
architecture is built. The ASM logical functionality of the service
management center 50, in cooperation with the ASE logical
functionality of the gateway device, may, among other things,
provide, manage and regulate, for example, service
subscription/registration, authentication/verification, key
management, and billing aspects of service provision, etc. With all
of the service logic and intelligence residing at the gateway
device, a service provider can offer customers a broad spectrum of
services including, but not limited to: media services, voice
services, e.g. VoIP, automated file backup services, file sharing,
digital photo management and sharing, gaming, parental controls,
home networking, and other features and functions within the home
or premises (e.g. home monitoring and control). Users can access
their content and many of the solution's features remotely.
Moreover, software updates for the in-home devices that require
updating are handled in an automated fashion by the system
infrastructure. The service management center infrastructure
additionally provides a web interface for third-party service
providers to round out the service solutions provided at the
gateway device for the premises. For example, a third-party service
provider other than the managed service provider associated with
the service management center may be allowed access through the
infrastructure to particular endpoint devices to provide additional
services such trouble shooting, repair and update services.
Gateway Device Software and Hardware Architecture
The composition of the premises gateway device 10, earlier
described with reference to FIG. 3, is now described in greater
detail with reference to FIGS. 5A-5D. As shown in FIG. 5A, the
gateway device 10 utilizes a layered architecture 100, which
enables the encapsulation of similar functionality and the
minimization of dependencies between functions in different layers.
FIGS. 5B and 5C depict exemplary functionality (hardware and
logical) resident in, or corresponding to, each of the layers shown
in FIG. 5A. The layers include a hardware layer 102, and device
driver software 104 for allowing the processor to operate other
hardware elements of the gateway device 10. FIG. 5D is a functional
block diagram illustrating interconnection of exemplary elements of
the hardware layer 102. The logical elements of the NI Layer
residing on the gateway device 10 (FIG. 4) are found in the
Hardware Drivers 104 which govern the operation of the Hardware
Components 102. The processor runs an operating system shown at
layer 106, which plays a role in each of the NI, NF, AS and
Platform Management Layers (FIG. 1). The layered architecture 100
also includes software for systems services 108 and for the
platform management layer shown at 110 in this drawing. Logical
elements represented by the NF Layer depicted in FIG. 1 are
comprised of elements from the system services 108 of FIG. 4. In a
similar fashion, the Platform Management Layer depicted in FIG. 1
is implemented in the exemplary architecture of FIGS. 5A-5D by the
platform modules 109 and the platform management layer 110.
Particular logical elements comprising the ASL and ASE
functionalities of the AS Layer represented in FIG. 1, and that
reside on the gateway device 10 (predominately in the Application
Service Provider Managed Applications and Platform of the UNA-DA
shown in FIG. 3) are depicted in FIG. 5C, and comprise logical
elements from each of services framework 120 and application
services 130. The layered architecture in FIG. 5C facilitates reuse
or sharing of logic across the layers to provide a managed service
framework 120. The service management functionality provided by the
framework 120 enables deployment of new services as pluggable
modules comprising computer readable instructions, data structures,
program modules, objects, and other configuration data, in a plug
and play fashion. The layered service architecture 100 additionally
provides the gateway device 10 with intra-process communication and
inter-process communication amongst the many services and modules
in the service framework layer 120 that enables the provisioning,
management and execution of many applications and services 130,
depicted e.g. services A, B . . . N at the gateway device 10.
Additionally provided are the application service interfaces 140
that enable communications from user endpoint devices with service
environments. In that regard, the interfaces 140 enable the
application service logic 130 to act as an appropriate server with
respect to client device application or service functionality of
the endpoint devices. The application service interfaces 140 also
enable corresponding interfaces for the application services with
aspects of service environments implemented outside the user
premises. In that regard, the interfaces 140 enable the application
service logic 130 to act as an appropriate client, for extending
the application or service related communications to a server
accessed via the wide area network 99, such as a server of the
service management center 50. For example, the gateway device may
appear as a SIP server to a SIP client in an end point device, e.g.
for a VoIP telephone service; but the gateway device will appear as
a SIP client with respect to some related functions provided by a
server (such as a SIP directory server) provided by the service
management center 50.
FIG. 5A thus depicts a high level service framework upon which are
built services, e.g. downloaded via the service management center
network 50 and wide area network 99 as packages that are developed
and offered by a service entity for customers. These services may
be offered as a part of a default service package provisioned and
configured at the gateway device 10, or provisioned and configured
subject to user subscription and may be added at any time as
plug-in service modules in cooperation with the service management
center 50. It is understood however, that while the gateway device
10 includes much of the intelligence or service logic for providing
various services, it is also possible that for some services, some
or all of service logic may reside in the service management center
network and/or with a third party provider.
As shown in more detail in FIGS. 5B and 5D, the base support layer
102 comprises hardware components including a processor device 152,
e.g. a system on chip central processing unit ("CPU") that includes
processing elements, digital signal processor resources and memory.
The CPU 152 is also coupled to a random access memory ("RAM") and
additionally, non-volatile hard drive/disk magnetic and/or optical
disk memory storage 154. Generally, the above-identified computer
readable media provide non-volatile storage of computer readable
instructions, data structures, program modules, objects, service
configuration data and other data for use by the gateway device.
The non-volatile hard drive/disk magnetic and/or optical disk
memory storage 154 may be partitioned into a network side which is
the repository for storing all of the service logic and data
associated with executing services subscribed to by the user, and,
is invisible to the user, and, a user side for storing user
generated content and applications in which the user has
visibility. Although not shown, the CPU 152 may be coupled to a
microcontroller for controlling a display device.
Additional-hardware components include one or more Ethernet LAN and
WAN interface cards 155, 156 (e.g. 802.11, T1, T3, 56 kb, X.25, DSL
or xDSL) which may include broadband connections (e.g. ISDN, Frame
Relay, ATM, Gigabit Ethernet, Ethernet over SONET, etc.), wireless
connections, or some combination of any or all of the above. The
card 155 referred to as the LAN interface card provides data
communication connectivity within the user premises, essentially,
for communication via a user premises network 60 with any endpoint
devices operating within the premises. The card 156 referred to as
the WAN interface card provides data communication connectivity for
the gateway device 10 and endpoint devices communicating through
the device 10, with the wide area IP network 99. For additional or
alternative customer premises communications, the hardware
components 102 may also include one or more USB interfaces 158; and
for additional or alternative communications with the wide area
network, the hardware components may also include the PCMCIA EvDO
interface card 160.
A data encryption/decryption unit 162 is additionally provided as
part of the architecture for providing data security features. A
watchdog timer element or like timer reset element 164 is provided
as is one or more LED devices 166 for indicating status and other
usable information to users of the gateway device 10.
As mentioned above, the gateway device provides an in-premises
footprint enabling the service connectivity and local management to
client(s). The implementation of functions and the related control
such as a router (with quality of service (QoS)), firewall, VoIP
gateway, voice services and voice mail may be embodied and
performed within the CPU 152.
The discussion of the gateway hardware layer above and the
illustration thereof in the drawings provides a high-level
functional disclosure of an example of the hardware that may be
used in the gateway device. Those skilled in the art will recognize
that the gateway device may utilize other hardware platforms or
configurations.
Continuing, as shown in FIG. 5B, the device driver layer 104
comprises a multitude of driver interfaces including but not
limited to: a PCMCIA driver 104a, for enabling low level
communication between the gateway CPU 152 and the PCMCIA network
interface card wireless interface, an IDE driver 104b for enabling
low level communication between the gateway CPU 152 and the local
mass memory storage element, and LAN/WAN drivers 104c for enabling
low level communication between the gateway CPU 152 and the
respective network interface cards 155 and 156. The exemplary
driver layer also includes an LED driver/controller 104d for
driving LED(s) 166, a USB driver 104e allowing CPU 152 to
communicate via USB interface 158, and an 802.11 b/g (or n)
wireless network driver 104f for allowing the CPU 152 to
communicate via the access point 62. The drivers provide the
logical connectivity between the low level hardware devices 102 and
the operating system 106 which controls the execution of computer
programs and provides scheduling, input-output control, file and
data management, memory management, and communication control and
related services for the gateway device. With respect to the
operating system 106, the gateway computing may support any
embedded operating system, any real-time operating system, any open
source operating system, any proprietary operating system, or even
any operating systems for mobile computing devices as long as the
operational needs of the client discussed herein below can be met.
Exemplary operating systems that may be employed include
Windows.RTM., Macintosh.RTM., Linux or UNIX or even an embedded
Linux operating system. For instance, the gateway device 10 may be
advantageously provided with an embedded operating system 106 that
provides operating system functions such as multiple threads,
first-in first-out or round robin scheduling, semaphores, mutexes,
condition variables, message queues, etc.
Built upon the system operating system 106 is a system services
support layer 108 providing both client-like and server-like
functions that enable a wide range of functionality for the types
of services capable of being managed by the gateway device 10. For
instance, there is provided a Dynamic Host Configuration Protocol
(DHCP) client and server software modules. The DHCP client
particularly requests via a UDP/IP (User Datagram Protocol/Internet
Protocol (e.g. Ipv4, Ipv6, etc.) configured connection information
such as the IP address that the gateway device 10 has been
dynamically assigned by a DHCP service (not shown), and/or any the
subnet mask information, the gateway device should be using. The
DHCP server dynamically assigns or allocates network IP addresses
to subordinate client endpoints on a leased, e.g. timed basis. A
Virtual Private Network (VPN) client may communicate via a proxy
server in the service control network 50, according to a VPN
protocol or some other tunneling or encapsulation protocol. An SMPT
client handles incoming/outgoing email over TCP, in accordance with
the Simple Mail Transfer protocol. A Network Time Protocol (NTP)
(RFC 1305) generates and correlates timestamps for network events
and generally provides time synchronization and distribution for
the Internet. A Domain Name Server (DNS) client and server
combination are used by the IP stack to resolve fully-qualified
host or symbolic names, i.e. mapping host names to IP
addresses.
An HTTP(S) server handles secure Hypertext Transfer Protocol (HTTP)
(Secure Sockets Layer) communications and provides a set of rules
for exchanges between a browser client and a server over TCP. It
provides for the transfer of information such as hypertext and
hypermedia, and for the recognition of file types. HTTP provides
stateless transactions between the client and server.
A Secure File Transfer Protocol (SFTP) client and server
combination govern the ability for file transfer over TCP. A SAMBA
server is an open source program providing Common Internet Files
Services (CIFS) including, but not limited to file and print
services, authentication and authorization, name resolution, and
service announcement (browsing). An EvDO/PPP driver includes a
Point-to-Point Protocol (PPP) daemon configuration for wireless
broadband services. A PPPoE (Point-to-Point Protocol over Ethernet)
client combines the Point-to-Point Protocol (PPP), commonly used in
dialup connections, with the Ethernet protocol; and it supports and
provides authentication and management of multiple broadband
subscribers in a local area network without any special support
required from either the telephone company or an Internet service
provider (ISP). The gateway device 10 is thus adapted for
connecting multiple computer users on an Ethernet local area
network to a remote site through the gateway and can be used to
enable all users of an office or home to share a common Digital
Subscriber Line (DSL), cable modem, or wireless connection to the
Internet. A Secure Shell or SSH server implemented with HTTP
protocol provides network protocol functionality adapted for
establishing a secure channel between a local and a remote computer
and encrypts traffic between secure devices by using public-key
cryptography to authenticate the remote computer and (optionally)
to allow the remote computer to authenticate the user.
Additionally provided as part of the system services layer 108 is
intelligent routing capability provided by an intelligent router
device 185 that provides Quality of Service (QoS, guaranteed
bandwidth) intelligent routing services, for example, by enforcing
routing protocol rules and supporting unlimited multiple input
sources and unlimited multiple destinations and, particularly, for
routing communications to networked digital endpoint devices
subordinate to the gateway. A central database server 183 handles
all of the database aspects of the system. For example, the
database server 183 maintains and updates registries and status of
connected digital endpoint devices, maintains and updates service
configuration data, services specific data (e.g. indexes of
backed-up files, other service specific indexes, metadata related
to media services, etc.) and firmware configurations for the
devices. The database server 183 may also store billing and
transaction detail records and performance diagnostics. The
database server logic 183 also satisfies all other database storage
needs as will be described in greater detail herein.
Referring back to FIGS. 5A and 5B, built on top of the system
services layer 108 is the platform module layer 109. The platform
module layer 109 provides a software framework for operating system
and communications level platform functionality such as CPU
management; Timer management; memory management functions; a
firewall; a web wall for providing seamless WWW access over visual
displays via access technologies enumerated herein, e.g. HTTP, SMS
(Short Messaging Service) and WAP (Wireless Access Protocol); QoS
management features, bandwidth management features, and, hard disk
drive management features. The layered architecture 100 further
provides a platform management layer 110 as shown in FIG. 5C, which
together with the platform modules 109 implement the platform
management layer/logic discussed earlier (with regard to FIG.
1).
The features/functions in the layer 110 include a platform manager
module which will implement unique rules based notification
services. On operational failure, for example, when one of the
components or services fails, the platform manager would detect
this failure and take appropriate action such as implement a
sequence of rules to provide notification to a user. A scheduler
module manages scheduled device maintenance, managing scheduled
services, e.g. back-up services, etc. The layer 110 also includes a
diagnostics module and a firmware upgrades management module for
managing firmware upgrades. A resource management module manages
system resources and digital contention amongst the various
resources, e.g. CPU/Bandwidth utilization, etc. A display
management module and a logger management module store and track
gateway log-in activity of users and applications, e.g. voice call
logs, at the user premises. The platform management layer 110 in
concert with resource and service management components enforces
the separation of network side managed service control and user
side delegations depending upon service subscriptions and
configurations. For example, the platform and resource management
encompass rules and guidelines provided according to subscribed
services that act to enforce, manage and control input/output
operations, and use of hard drives space etc. A demarcation point,
logically depicted as the Application Service Provider Demarcation
in FIG. 3, is thus defined that provides a hard line between what
is owned by the customer and what is owned by the service
provider.
The logical platform management layer 110 allows for inter-layer
allocation of local resources. This function guarantees access
between the application service/management logic implemented at the
higher layers in the gateway device 10 and the applications service
management function in the service management center 50, by
assuring that the local user premises hardware and software modules
are functioning at a required state (CPU and memory usage,
bandwidth usage, QoS settings, etc.). The platform manager is also
responsible for implementing that part of the managed application
services to be performed by the gateway device. In that regard, the
platform manager secures and manages the overall hardware platform,
given that in this scenario, the network function layer and the
application service layer reside on one hardware platform. This
secure hardware platform provides a robust and secure operating
environment for the application services layer. So, to establish a
secure and robust hardware operating environment, the platform
management layer must interface with all the layers above it and
allow for bi-directional management information flow among all of
the functions.
Referring back to FIGS. 5A and 5C, built on top of the platform
management layer 110 is the Services Framework 120, which provides
a library of application support service processes that facilitate
data collection and data distribution to and from the multimedia
endpoint devices. The application support service processes
include, but are not limited to: an authentication manager for use
in authenticating devices connected to the gateway device; a
billing manager for collecting and formatting service records and
service usage by endpoint devices, e.g. calls, back-up services
etc.; a fault manager for detecting and managing determined system
and/or service faults that are monitored and used for performance
monitoring and diagnostics; a database manager; a control channel
interface via which the gateway initiates secure communications
with the operations support infrastructure; a configuration manager
for tracking and maintaining device configuration; a user manager,
a service manager for managing service configuration and firmware
versions for subscribed services provided at the gateway device;
and a statistics manager for collecting and formatting features
associated with the gateway device. Statistics may relate to use of
one or more services and associated time-stamped events that are
tracked.
Built on top of the Services Framework layer 120 is the Application
Services layer 130 providing library of user application services
and application support threads including, but not limited to: file
sharing functionality; backup services functionality; home storage
functionality; network device management functionality; photo
editing functionality, home automation functionality; media
services functionality; call processing functionality; voice mail
and interactive voice response functionality, presence and
networking functionality; parental control functionality; and
intelligent ads management functionality. The multi-services
applications gateway 10 further provides application service
interfaces 140 that are used to enable a variety of user
applications and communications modalities.
For instance, the SIP Interface 141 is an interface to the generic
transactional model defined by the Session Initiation Protocol
(SIP) that provides a standard for initiating, modifying or
terminating interactive user sessions that involve one or more
multimedia elements that can include voice, video, instant
messaging, online games, etc., by providing access to dialog
functionality from the transaction interface. For instance a SIP
signaling interface enables connection to a SIP network that is
served by a SIP directory server via a Session Border Controller
element in the service management center 50 (FIG. 4).
The Web Interface 142 enables HTTP interactions (requests and
responses) between two applications. The Web services interface 149
provides the access interface and manages authentication as
multi-services gateway devices access the service management center
50 (FIG. 4) via web services. The IM Interface 144 is a client that
enables the multi-services gateway device 10 to connect to one or
more specific IM network(s). As further shown in FIG. 5C, the UpNp
(Universal Plug and Play) interface enables connectivity to other
stand-alone devices and PCs from many different vendors.
The XMPP interface 145 is provided to implement the protocol for
streaming (XML) elements via the gateway device 10, in order to
exchange messages and presence information in close to real time,
e.g. between two gateway devices. The core features of XMPP provide
the building blocks for many types of near-real-time applications,
which may be layered as application services on top of the base
TCP/IP transport protocol layers by sending application-specific
data qualified by particular XML namespaces. In the example, the
XMPP interface 145 provides the basic functionality expected of an
instant messaging (IM) and presence application that enable users
to perform the following functions including, but not limited to:
1) Exchange messages with other users; 2) Exchange presence
information with other devices; 3) Manage subscriptions to and from
other users; 4) Manage items in a contact list (in XMPP this is
called a "roster"); and 5) Block communications to or from specific
other users by assigning and enforcing privileges to communicate
and send or share content amongst users (buddies) and other
devices.
As noted, FIG. 5D provides a functional block diagram of exemplary
elements of the hardware layer 102. For example, a system on a chip
provides the CPU 152 and associated system components. The CPU 152
is also coupled to a random access memory ("RAM") and flash memory.
The system on a chip also includes a hard drive controller for
controlling a hard disk drive, and together the controller and
drive form the hard disk example of the storage 154. An Ethernet
switch and associated LAN port(s) provide the Ethernet LAN
interface 155; and the Ethernet switch and associated WAN port
provide a landline implementation of the WAN interface 156L, for
connection to a broadband modem or the like implementing the
NSP-TA. The WAN interface may also be wireless, as implemented at
156w for example by a wireless WAN module and associated antenna.
An example of such an interface would be the EvDO interface
discussed earlier. If the gateway device uses the wireless WAN
interface 156w, there would be no separate NSP-TA.
In the example of FIG. 5D, a USB controller in the system on a chip
and one or more associated USB ports provide the USB interface 158.
The USB interface 158 may provide an alternate in-premises data
communication link instead of or in addition to the wired or
wireless Ethernet LAN communications. The system on a chip includes
a security engine, which performs the functions of the data
encryption/decryption unit 162.
The hardware layer 102 may also include an option module. The
UNA-DA hardware components at layer 102 have multiple interfaces
for connection to such an option module. These interfaces, by way
of example, could be a data bus (e.g. PCI, etc), network interface
(e.g. Ethernet (RJ45), MoCA/HPNA (Coax)) and Power feeds. The
option module allows additional functionality to be added to the
base UNA-DA functionality of the gateway device. For example, this
additional functionality could be everything from support for a
variety of extra Wide Area Network Interfaces (e.g. xDSL, DOCSIS,
Fiber (PON), Cellular Packet, WIMAX, etc.), Media Processing (e.g.
Cable TV termination, Digital Video Recording, Satellite TV
Termination, etc), to Voice Processing (FXS, FXO, Speech Detection,
Voice to Text, etc). The option module may have its own standalone
CPU, Memory, I/O, Storage, or provide additional functionality by
its use of the CPU, Memory, I/O, and storage facilities off of the
main hardware board. The option module may or may not be managed
directly by the Platform Management of the UNA-DA.
Gateway Processing
For the in-home services, the multi-services gateway device 10
connects the various service delivery elements together for
enabling the user to experience a connected digital home, where
information from one source (for example, voicemail) can be viewed
and acted on at another endpoint (for example, the TV 32). The
multi-services gateway device 10 thus hosts the various in-home
device interfaces, and facilitates the moving of information from
one point to another. Some of the in-home endpoint device
processing duties performed by the gateway device 10 include, but
are not limited to: 1) detecting new devices and provide IP
addresses dynamically or statically; 2) functioning as a (Network
Address Translator) NAT, Router and Firewall; 3) providing a
centralized disk storage in the home; 4) obtaining configuration
files from the service management center and configuring all
in-home devices; 5) acting as a Registrar for SIP-based devices; 6)
receiving calls from and delivering calls to voice devices;
providing voicemail services; 7) decrypting and securely streaming
media having digital rights management (DRM) encoding; 8)
distributing media to an appropriate in-home device; 9) compressing
and encrypting files for network back-up; 10) backing-up files to
the network directly from gateway device; 11) handling home
automation schedules and changes in status; 12) providing in-home
personal web-based portals for each user; 13) providing Parental
Control Services (e.g. URL filtering, etc.); 14) creating and
transmitting billing records of in-home devices including,
recording and uploading multi-service billing event records; 15)
distributing a PC client to PCs in the home, used in support of the
various services such as monitoring events or diagnostic agents;
16) storing and presenting games that users and buddies can play;
17) delivering context-sensitive advertising to the endpoint
device; and, 18) delivering notifications to the endpoint device;
and, 19) enabling remote access through the web, IM client, etc.
Other duties the gateway device 10 may perform include: service
maintenance features such as setting and reporting of alarms and
statistics for aggregation; perform accessibility testing; notify a
registration server (and Location server) of the ports it is
"listening" on; utilize IM or like peer and presence communications
protocol information for call processing and file sharing services;
receive provisioning information via the registration server;
utilize a SIP directory server to make/receive calls via the SBC
network element to/from the PSTN and other gateway device devices;
and download DRM and non-DRM based content and facilitating the DRM
key exchanges with media endpoints.
Logical Architecture and Service Management Center Network
While the gateway devices 10 as described above are each equipped
with various logic and intelligence for service features that
enable the gateway devices to provide various integrated digital
services to the premises, as described herein with respect to FIG.
4, the network-based elements of the service management center 50
supports and manages multi-services gateway devices, for instance,
so as to control the accessibility to functionalities and service
features provisioned in the gateway devices and the ability to
communicate with other gateway devices and various digital endpoint
devices connected thereto. These elements that support and manage
the gateway devices 10 comprise the ASM module described above with
reference to FIG. 1. These ASM elements may, for example, provide
the necessary data to the ASE and ASL modules so that they may
carry out their respective functions, oversee the overall
integration and communication among all the modules and the
services that are managed by the ASM, manages the overall security
and integrity of the ASD, and maintains alarm, statistical,
subscription and provisioning data, and data necessary for the
integration of services from third-party service providers, e.g.,
media content aggregators.
Examples of various ASM functionalities performed at the service
management center 50, from the Service Provider Network regime,
include but are not limited to: service initialization of the
gateway devices, providing security for the gateway devices and the
network support infrastructure, enabling real time secure access
and control to and from the gateway devices, distributing updates
and new service options to the gateway devices, providing service
access to and from the gateway devices and remote access to the
gateway devices, but not limited to such. In support of these
services, the service management center 50 provides the following
additional services and features: authentication; multi-service
registration; subscription control; service authorization; alarm
management; remote diagnostic support; billing collection and
management; web services access; remote access to gateway devices
(e.g. via SIP or Internet/web based communications); reachability
to access challenged gateway devices; software updates; service
data distribution; location service for all services; SIP VoIP
service; media services; backup services; sharing services;
provisioning; gateway interfaces to other service providers
(Northbound and peering); load balancing; privacy; security; and
network protection.
The logical network architecture for the service management center
network delivering these capabilities is illustrated in FIG. 6. It
should be understood that the functional components described in
view of FIG. 6 may be combined and need not be running on discrete
platforms or servers. Rather one server or component may provide
all the service management center functionalities for providing
managed network of gateway devices 10. In addition, any one of the
components shown in FIG. 6 may perform any one of the
functionalities described herein. Thus, the description in the
present disclosure associating certain functions with certain
components are provided for ease of explanation only; and the
description is not meant to limit the functionalities as being
performed by those components only. Thus, the network elements or
components shown in FIG. 6 illustrate logical architecture only,
and the present teachings do not require the specific components
shown to perform specific functionalities described. Moreover, the
functional components may use distributed processing to achieve a
high availability and redundancy capacity.
The one or more network elements of center 50 illustrated in FIG. 6
support the gateway devices 10 that are services points of presence
in the user premises such as users' homes, and the various endpoint
devices connected thereto. Examples of functionalities provided in
the service management center network 50 are discussed below.
Upgrades to gateway device firmware and various endpoint devices
may be managed in the service management center network 50, for
example, by a firmware updater server 51. VOD (video on demand)
functionalities, for example, serviced by VOD servers (VODs) 52,
ingest wholesale multi-media content and provide DRM-based premium
content to the multi-services gateway device and endpoint devices.
The service management center network 50 also may enforce DRM
(Digital Rights Management) policies, for example, by a conditional
access (CA) server 54, which provides key-based access and
initiating billing processes. The service management center network
50 may also provide functionalities such as collecting billing
information and processing billing events, which for instance may
be handled by billing aggregator sub-system 58. The service
management center network 50, for example, using one or more
connection manager servers 60, may establish and maintain a
signaling control channel with each active multi-service gateway
device 10. For message routing functionality of the service
management center network 50, for example, one or more message
router devices 62, may provide intelligent message routing service
for the network 50 and maintain gateway device presence and
registration status in an internal session manager sub-system of
the service management center 50. Publish and subscribe
functionality of the service management center network 50, for
example, a Publish/Subscribe (Pub/Sub) server sub-system 65, may
provide publish and subscribe messaging services for the
multi-services gateway devices 10 and the elements of the service
management center network 50.
The service management center network 50 may provide SIP-based
directory services for voice and other multimedia services, for
example, via its SIP Directory Server 66. In addition, location
service functionality, for example, provided by the Location Server
68, may include IP and Port level services for all inbound
services. As discussed more later, the location server 68 maintains
information as to accessibility of authenticated gateway devices
10, for enabling peer to peer communications among gateway devices
10 via the wide area IP network 99. DNS services functionality may
be provided by a DNS server 69 for all inbound services.
The service management center network 50 may also provide virtual
private network (VPN) functionalities, for example, handled by its
VPN server/subsystem 70, and provide VPN connection services for
certain inbound services on multi-services gateway devices 10. VPN
connection services may be provided on those multi-services gateway
devices that have accessibility challenges, for example, those that
are behind external firewalls and NATs. The service management
center network 50 may also include functionality for determining
the nature of the accessibility configuration for the
multi-services gateway devices 10. In one embodiment accessibility
service may be performed by an accessibility test server 72 that
functions in cooperation with the multi-services gateway device 10
to determine the nature of the accessibility. For example, the
accessibility test determines whether the gateway devices are
behind a firewall, whether NATs is required, etc.
The service management center network 50 also functions to provide
provisioning services to all elements of service management center
network 50 and to multi-services gateway devices 10. Such
functionality of the network 50, for example, may be implemented by
the provisioning server 74 in one embodiment.
Authentication functionality of the service management center
network 50, for example, provided by an authentication manager 71,
provides authentication services to all service management center
network elements and to multi-services gateway devices 10. As
discussed more later, upon successful authentication of a gateway
device 10, the authentication manager 71 controls the connection
manager 60 to establish a signaling communication link through the
wide area IP network 99 with the authenticated gateway device 10.
The authentication manager 71 confirms authentication of the
respective gateway device 10 from time to time, and the
authentication manager 71 controls the connection manager 60 to
maintain a session for the signaling communication link through the
wide area IP network 99 with the respective gateway device 10 as
long as the authentication manager 71 continues to confirm the
authentication of the respective gateway device. The signaling
connection may be torn-down, when the device 10 no longer passes
authentication, either because it becomes inaccessible to the
authentication manager 71 or its service status changes.
The gateway devices 10 and service manager center 50 implement
several methodologies that allow the service provider to manage
various subscription application services provided for endpoint
devices associated with the gateway devices 10. In general, one
subscription management methodology involves sending information
indicating configuration data or software currently needed for the
one gateway device to implement server functionality for an
application service or a feature of an application service, based
on a service subscription of a customer associated with that
gateway device. Several different ways of sending this information
are discussed by way of example below. A request from a particular
gateway device 10 is received in the service management center 50,
indicating that the device 10 needs the configuration data or
software to implement the application service or feature thereof.
In response, the service management center 50 sends the necessary
configuration data or software through the wide area network 99 to
the gateway device 10. The gateway device 10 can install the
configuration data or software, to enable that device 10 to deliver
the server functionality for the application service or the feature
to its associated one or more endpoint device(s) that implement the
client functions regarding the particular application service.
Subscription functionality of the service management center network
50, for example, provided by a subscription manager 73, is one
mechanism used to provide management of subscription services to
all multi-services gateway devices 10. The subscription manager 73
manages applications services and/or features of the server
functionality of the gateway device 10, to be enabled on each
respective authenticated gateway device, based on a service
subscription associated with the respective device 10.
The service management center network 50 may include functionality
for providing management services for each of the services provided
in the gateway device 10. For example, respective service managers
75 store and serve to distribute service specific configuration
data to the multi-services gateway devices 10, typically via the
signaling communication links established through the wide area IP
network 10 upon successful device authentication. The configuration
data downloads by the service managers 75 are based on the service
subscription of the user or premises associated with the particular
gateway device 10, that is to say, as indicated by the subscription
manager 73.
The service management center network 50 also includes elements to
provide necessary software to the gateway devices 10 through the
wide area network, as needed to implement customers' subscription
services. In the example, the service management center network 50
includes an updater 51 for transmitting software to the gateway
devices. The software resident in the gateway device is sometimes
referred to as firmware. Software can be distributed upon request
from an individual gateway device 10 or as part of a publication
procedure to distribute upgrades to any number of the gateway
devices. For this approach, the publication/subscription (Pub/Sub)
server or like functionality 65 provides notifications of available
software updates. For example, upon detecting an update regarding
an application service, gateway devices 10 subscribing to an update
notification service with regard to the relevant application
service are identified. The Pub/Sub server 65 sends notification
messages through the wide area network 99 to the identified gateway
devices 10. Assuming that a notified gateway device does not yet
have the software update installed as part of its resident
firmware, it sends a request indicating that the gateway device
needs the available update. In response to the received request,
the updater 51 sends the update of the software through the wide
area network 99 to the one gateway device 10. The update enables
the gateway device 10 to deliver the subscription application
service or feature thereof, based on the updated software, to one
or more endpoint devices implementing client functions related to
the subscription application service.
Service access test functionality of the service management center
network 50 performs tests to multi-services gateway devices to
verify the accessibility for each subscribed service. Such
functionality may be provided by service access test managers 77.
The service management center network 50, for example, in an alarm
aggregator subsystem 82 may aggregate alarms received from the
multi-services gateway devices. The service management center
network 50 also may include functionalities to support, for
instance, by alarms, diagnostics and network management (NWM)
server 85, network management and network management services. The
service management center network 50 enables web interface
communication mechanism, for example, via a web services interface
server 90, to for example provide access interface and manage
authentication as multi-services gateway devices access the service
management center for various services, including access to
configuration data in the service managers 75.
Additional service management center network functionalities shown
in FIG. 6 may include providing HTTP redirection services for
public web access to the multi-services gateway devices, which
function, for example, may be provided via a public web redirect
server 91. Public SIP Redirect/Proxy functionality provides, for
instance, via a Public SIP Redirect/Proxy server 92, SIP
redirection and proxy services to public remote SIP phones and
devices. The service management center network 50 also may include
functionalities to provide a SIP-based network border interface and
billing services for off-net voice calls. Such functionality in one
embodiment may be provided in a Session Border Controller device
93a. Another functionality of the service management center network
50 may be providing Session Border Control services to SIP roaming
SIP callers in certain situations, which functionality for example
may be provided by a Roaming Session Border Controller device 93b.
The service management center network 50 also functions to provide
dynamic NAT services during certain SIP roaming scenarios. Such
functionality may be implemented in the Roamer Dynamic NAT Server
94.
The service management center network 50 further may provide
off-site backup services for the service management center network
to a Wholesale Back-up Provider 96. The service management center
network 50 further interoperates with Wholesale VoIP Provider 97,
which may provide VoIP call origination/termination services for
off-net voice calls. For instance, the service management center
network 50 may provide VoIP/PSTN gateway that enables a translation
between protocols inherent to the Internet (e.g. voice over
Internet protocol) and protocols inherent to the PSTN. Other
entities that may be partnered with the service management center
network 50 as shown in FIG. 6 include the content providers 98 that
provide media-based content (including, but not limited to music,
video, and gaming) to the service management center network 50,
gateway interfaces 101 for billing, alarms/diagnostic network
management (NWM), and provisioning interfaces for partnered
wholesale providers (e.g. peering interfaces) and service provider
customers (e.g. North bound interfaces).
In the illustrated example, a server or servers of the service
management center network 50 are intended to represent a general
class of data processing device commonly used to run "server"
programming. Such a device typically utilizes general purpose
computer hardware to perform its respective server processing
functions and to control the attendant communications via the
network(s). Each such server, for example, includes a data
communication interface for packet data communication. The server
hardware also includes a central processing unit (CPU), in the form
of one or more processors, for executing program instructions. The
server platform typically includes program storage and data storage
for various data files to be processed and/or communicated by the
server, although the server often receives programming and data via
network communications. The hardware elements, operating systems
and programming languages of such servers are conventional in
nature, and it is presumed that those skilled in the art are
adequately familiar therewith.
In one embodiment, the connection manager 60 may aggregate a
plurality of connection channels 150 and multiplex these signaling
channels to the message router device 62. The connection manager 60
works with the message router 62 and the authentication manager 71
to authenticate the multi-services gateway device 10 and allow its
access to the network 50 by enabling the establishment of a control
channel 150 providing an "always on" control channel between the
multi-services gateway device and the services service management
center 50 once the gateway device is authenticated. The connection
managers 60 also provide network security and protection services,
e.g. for preventing flooding, denial of service (DOS) attacks, etc.
In one embodiment, there may be interfaces such as APIs for
interfacing the connection managers 60 or the like to the message
routers 62 and the multi-services gateway devices 10. As the
network of multi-services gateway devices grow, the number of
connection managers 60 may grow to meet the demand for concurrent
signaling control channel connections.
In one embodiment, a message router device(s) 62 provides control
signal message routing services and session management services to
the multi-services gateway device 10 and the other network elements
of the service management center 50. In one embodiment, the message
router device 62 has control channel signaling access, via the
control channel to the firmware upgrade manager server or gateway
firmware updater 51, VOD server(s) 52, a billing system 58, content
managers 98, pub/subs 65, service accessibility test manager 77,
authentication manager 71, service manager 75, subscription manager
73, alarms aggregator 82, network management (NWM) server 85 and
public web proxy redirect 91, and the multi-services gateway
devices 10. The message router 62 may also include a session
manager subsystem that maintains control channel state information
about every multi-services gateway device client in the
gateway-service center network. The message router 62, and session
manager enable sessions to be established to each multi-services
gateway device 10 and each element of the service management center
50 and provide robust routing services between all the components.
The message routers 62 may additionally connect to other message
routers for geographic based scaling, creating a single
domain-based control channel routing infrastructure. The message
routers 62 may additionally connect to IM gateways and other
message routers that provide user based IM services, which may
enable users to interact directly with their multi-services gateway
device via IM user clients. Thus, besides providing routing and
session management for all the multi-services gateway devices and
the network elements, the message router element 62 enables control
signaling between all the network elements and the multi-services
gateway devices and, connects to IM gateways to provide
connectivity to other IM federations.
Web Services Interface
In an example, the service management center network 50 may also
provide web services interface functionality (for example, shown at
90 in FIG. 6) that forms an application programming interface (API)
between the gateway devices 10 and the service management center
network 50 as a mechanism to communicate between the gateway
devices and the service management center network. That is, in
addition to the established signaling control channel, the gateway
devices 10 and the service management center network 50 may utilize
web services interface 90 to communicate. For instance, the gateway
devices 10 and the service management center network 50 may
exchange information via secure HTTP or HTTPS using SOAP, XML,
WSDL, etc. or the like.
In one example, an authentication key is used or embedded in the
message in order to validate the communication between one or more
gateway devices 10 and the web services interface functionality 90
in the service management center network 50. In one embodiment, the
gateway device 10 may request from the service management center
network 50, for instance, from its authentication manager
functionality 71, a temporary key, which is to be used when the
gateway device 10 requests services via the web services interface
90. Preferably, this key is not a service specific key, but rather
identifies a particular gateway device 10 to enter the service
management center 50 through the web services interface 90. Every
time the gateway device 10 requests a key, the authentication
manager 71 functionality may store the key and the expiry time of
the key. A response message provided from the authentication
manager 71 has the key and expiry time. In one example, gateway
devices 10 are responsible to determine a status of the key
compared to the expiry and to request a new key before the expiry
time. In another embodiment, the web services interface
authentication key may be assigned during initial registration and
may be renewable as described above with reference to dynamic
renewable authentication and service keys.
The web services interface 90 subsequently directs message requests
to the appropriate functionality in the service management center
network 50. The incoming requests may be load balanced in one
embodiment by the DNS server 69, and loading and performance
information may be fed back to the DNS in support of this function.
The web services interface 90 may have interfaces (e.g. APIs) to
the gateway device 10, the authentication manager functionality 71
of the service management center network 50, DNS 69, the service
managers 75 of the service management center network 50, etc.
In an exemplary embodiment, a gateway device 10 may utilize the web
services interface to pull data, software or information from the
service management center network 50, while the service management
center network may utilize the signaling control channel to push
data such as various notification data to the gateway devices. In
an example discussed more below, the subscription manager 73
notifies the gateway device 10 of configuration data applicable to
a service subscribed to by the customer associated with the
particular gateway device. If the gateway device 10 determines that
it needs the configuration data (not yet resident or not
up-to-date), then the gateway device 10 sends a request to the web
services interface 90, which is forwarded to the appropriate
service manager 75. The service manager 75 in turn sends the
configuration data to the gateway device 10 for loading and future
use. A similar procedure can be used to download software, e.g.
from a gateway updater or other firmware server based on a
descriptor from the subscription manager or a published
notification from a Pub/Sub server.
Automatic Discovery and Configuration of Endpoint Devices
In one embodiment, a customer or user self-provisions endpoint
devices on a particular multi-services gateway device 10. The
provisioning system or like functionality 74 may provision how many
endpoints and the types of devices that can be self-provisioned by
the user. In one embodiment, the gateway devices are capable of
automatically discovering and configuring the gateway device
compatible devices belonging to enabled services in the premises
such as the home or business, for instance, with minimal human
intervention (e.g. for security purposes some devices may need
administrator level prompting to proceed with configuration
actions). For instance, the gateway device compatible endpoint
devices are devices that the gateway device can communicate with
and thus become the center of management for the services offered
through these endpoint devices. One or more of these endpoint
devices may have automatic configuration capabilities such as
universal plug and play (e.g. uPNP devices). These endpoint devices
may include but are not limited to, media adaptors, SIP phones,
home automation controllers, adaptors that convert IP interfaces to
PSTN FXO and FXS interfaces, etc. In one example, the method of
configuration, e.g. automatic discovery and configuration may be
based on the specific device's current firmware or software or like
version. The gateway device 10 in one embodiment also may keep a
record or table of configuration information, for example, for
those devices configured automatically. Such information may
include, for example, for media adaptor, supported formats and bit
rates, for home automation controller, information pertaining to
the type of controller such as Insteon, Awave, etc.
As another example, if the phone service is enabled and if the
gateway device detects a new SIP device, the gateway device 10 may
prompt a user to determine if the detected endpoint device needs to
be configured for association with the gateway device. If it does,
then the gateway device 10 may configure the detected device on its
network (home network or other premises network). Yet as another
example, when new drives are added to the gateway device for
storage expansion, the gateway device 10 may automate
initialization of the expanded device storage.
Gateway to Gateway Device Communications
As mentioned earlier, the gateway devices and service management
center support a communication capability between the appliances.
This feature, for example, may be utilized for enabling secure
peer-to-peer sharing of data between or among the gateway
appliances.
Additional aspects of the peering capabilities enabled by the
gateway device-service management architecture include the ability
to store a roster or contact list of distant gateways on either the
gateway 10 or within the service management center 50 and utilizing
these addresses to maintain the presence and routing information of
selected other gateways. This roster information is used to
establish and manage access and message routing, via XMPP
messaging, to gateways, to locate and address other gateways, and
set up peering relationships between the gateways.
A gateway may also expose other details about resources or
endpoints within the home to other gateways by communicating
resource information along with presence information. As an
example, a gateway may send presence information to selected
"buddies" via the signaling channel and also include information
about the resources available to the distant buddy. Examples of
resources include digital picture frames that the distant gateway
user may direct photos to, web cams, or other resources, enabling
direct interaction between an end user connected to one gateway, or
in automated scenarios, the gateway itself, and a distant device
connected to the local area network of another gateway.
When a user interacts with the resource sharing functions of their
gateway 10, the user may select a specific gateway 101 from their
roster, represented as a "buddy" list. When the user selects a
"buddy", additional resource details are displayed to the user,
providing information about any resources that the end user may
utilize via that selected peer gateway device 10.sub.1.
The XMPP messaging protocol, combined with the roster and XMPP
addressing mechanisms may be utilized for either end user
interactions or automated interactions between gateways. Automated
use of the peering capabilities include directing utility data for
usage and network management information to designated collectors
within peering groups and then having the designated collector
forward the combined information to the service management center.
This distributes the collection processing to the gateways and
decreases the overall processing and bandwidth utilization in the
service management center. Of course, the XMPP protocol is
discussed here merely by way of example, and those skilled in the
art will recognize that the gateway to gateway device
communications may use other protocols.
Upon gateway device 10 establishing initial communication with
selected remote gateways (e.g., gateway device 10.sub.1, 10.sub.n,
etc as shown in FIG. 4) and devices via service management center
50, gateway device 10 may negotiate a direct signaling
communication path with one or more remote gateway devices. The
signaling path may be independent of service management center 50,
IM networks 99a or 99b, or IM server 99c. Establishing a direct
signaling channel between gateway devices may reduce the messaging
load on service management center 50, IM networks 99a or 99b, or on
IM server 99c.
An Application and Network Gateway (ANG) (e.g., gateway device 10,
10.sub.1, 10.sub.n, etc.) may be located, for example, in a user
premises. The ANG may have associated endpoint devices, and be
managed by an Application Services Provider (e.g., the application
service may be delivered via the application services layer by
application service management center 50, or may be IM networks 99a
or 99b, or IM server 99c). An application network gateway
management connection server (MCS) may be used to establish a
connection with one or more ANGs, wherein the established
connection may be secure or unsecure. The MCS may be a component of
application service management center 50, IM networks 99a or 99b,
or IM server 99c. This connection between the MCS and the ANGs
allows each ANG to "register" its local information (e.g., Internet
Protocol (IP) address, Application Ports, Availability, and other
attributes) with the MCS. Additionally, when ANGs desire to locate
each other (e.g., to establish peer to peer connections for
communication), they may retrieve the distant-end ANG information
from the MCS.
Location updates may be performed at ANG Startup, or when IP or
Port changes occur at the AGN. There may be no predefined time of
the validity of the addresses. For example, the last update may be
considered valid for an indefinite period of time. Thus, in this
example, the AGN does not need to update location information on a
periodic basis.
A Location Server may maintain the location information for all the
ANGs in the network. A Session Redirect Server (SRS) and SRS
database may store service-specific authentication and routing
information. The SRS and SRS database may be part of the
Applications Services Provider.
FIG. 7 illustrates a flow diagram depicting an ANG establishing a
secure connection with the Application Services Provider, and
updating the Application Services Provider with the ANG's
availability, IP address and application Port selection. Once the
Application Services Provider has been updated with this
information, it may store the information and provide that
information to other ANGs that may request to communicate with the
ANG of Home 1.
At step 700 shown in FIG. 7, the ANG may initialize or establish a
messaging connection with the MCS of the Applications Service
Provider. This connection may be either a secure or unsecure
connection. At step 702, the secure messaging and presence
connection is established between the ANG and the MCS, and the
session communication endpoint may be established. At step 704, the
location update of the ANG with the location server of the
Application Services Provider is established as being valid until,
for example, further updates are provided by the ANG or until the
session is disconnected. The SRS of the Application Services
Provider may be updated with a new IP and port address for ANG of
Home 1 at step 706. Also, a unique identifier tag for the ANG may
be established in the SRS database.
FIG. 8 illustrates the exemplary steps for the ANG updating the
Application Service Provider's information after it has experienced
an IP address change. The illustrated flow for creating a dynamic
address table is depicted, as is the flow for updating the
information associated with the ANG with the SRS. This update may
be performed at a time that is not related to a particular
application session initiation. The update of the SRS may be
enabled by an application service provider presence and networking
control channel.
At step 710 shown in FIG. 8, the ANG may initiate an IP address
change. At step 712, the SRS may be updated with the new WAN IP and
Port Address for the ANG of Home 1. The ANG may have a unique
identifier tag in the SRS database for which this updated
information is associated with. If the WAN connection between the
ANG and the Application Services Provider is severed, disrupted, or
otherwise unavailable (i.e., the connection is "down") at step 714,
the MCS may detect that the presence and networking messaging
channel is unavailable at step 716. At, step 718, the SRS may be
updated to indicate that it is not available because the WAN
connection with the ANG with a particular identifier tag is
unavailable. The SRS database fields may be updated to indicate
that the availability status of the identified ANG has changed.
FIG. 9 depicts a first ANG of Home 1 and a second ANG of Home 2,
wherein both ANGs are managed by the Application Service Provider
in order to communicate their attributes with each other. Each ANG
may establish using a presence and networking message
communications channel, which may be a secure or unsecure channel,
with the Application Services Provider. Once a connection is
established, the ANGs may retrieve the distant-end routing
information (i.e., location information of the other ANG) if the
ANG does not presently have such information. Once each ANG knows
the location of the other ANG, they may establish a direct peer to
peer connection. In addition, each ANG may update their respective
application routing tables and attributes with each other.
As shown at step 720 of FIG. 9, the ANG of Home 1 may establish a
presence and networking message communication connection with a
presence and networking message server (e.g, IM server 99c or a
presence and networking server that is part of service management
center 50, etc.). At step 722, buddies in the buddy list of the ANG
in Home 1 may be notified of the ANG's presence, as well as display
the services offered by the ANG via the presence and networking
message server. At step 724, the ANG at Home 2 may set up and
establish a presence and networking message connection with the
presence and networking message server. The ANG of Home 2, at step
726, may notify buddies of its presence, as well as present its
services that are available. At step 728 the ANG of Home 1 may
update the routing table with the remote ANG (i.e., the ANG of Home
2) address changes, as provided by the presence and networking
message server. At step 730, the ANG of Home 1 may provide service
details, such as IP address and port information to the ANG of Home
2 via the presence and networking server. The ANG of Home 2, at
step 732, may update the routing table with the address changes of
the ANG of Home 1.
As shown in FIG. 10, the ANG of Home 1 and the ANG of Home 2 may
establish a peer to peer presence and networking message connection
between each other. The peer to peer connection may be established
upon each ANG locating the other via the presence and networking
message server or the service management center. Upon obtaining the
routing information, each ANG may use the routing information to
establish subsequent peer to peer sessions until there is an
endpoint status change.
At step 740 illustrated in FIG. 10, the ANG of Home 1 may setup a
presence and networking communication connection (which may be
secure or unsecure) with the presence and networking messaging
server. At step 742, the ANG of Home 1 may notify presence and
networking message server of the presence of the ANG, as well as
provide peer to peer connection information (e.g., IP address,
port, etc.). Next, at step 744, ANG of Home 2 may setup and
establish a presence and networking message connection with
presence and networking message server. ANG of Home 2 may then
notify buddies on the buddy list of the ANG's presence, as well as
present peer to peer connection information to the presence and
networking message server at step 746. The presence and networking
message server, at step 748, may provide the peer to peer
connection information (e.g., of the ANG of Home 2) to ANG of Home
1, and the ANG of Home 1 may update the route table with address
changes. The ANG of Home 1 may present the peer to peer connection
information for a buddy (e.g., ANG of Home 2) via the presence and
networking server at step 750. ANG of Home 2 may update the route
table with the address change information from ANG of Home 1 at
step 752. Next, at step 754, a peer to peer control channel may be
established between ANG of Home 1 and ANG of Home 2. ANGs of Home 1
and Home 2 may then present services and service details (e.g.,
resource identifier information, IP address, port information,
etc.) to one another at step 756.
In providing peer to peer communications between gateway devices, a
user of a first gateway device may control associated endpoint
devices of a second gateway device, provided such endpoint devices
and/or their functionalities are provided to the first gateway
device. This may be based, for example, on the second gateway
device being present in the buddy list of the first gateway device.
For example, a user of the first gateway may control an endpoint
device that is a garage door associated with a second gateway
device. The user may determine the status of the garage door (e.g.,
open, closed, etc.), and may provide instructions to the garage
door to open or close (e.g., based upon the received status
information).
The gateway device 10 and its interactions with various endpoint
devices and with the service management center 50 have been
described with reference to diagrams of methods, apparatus
(systems) and computer program products. It will be understood that
elements and functions illustrated in the diagrams, can be
implemented by computer program instructions running on one or more
appropriately configured hardware platforms, e.g. to operate as a
gateway device 10 or as one or more of the enumerated elements of
the service management center 50. Hence, operations described above
may be carried out by execution of software, firmware, or microcode
operating on a computer other programmable device of any type.
Additionally, code for implementing such operations may comprise
computer instruction in any form (e.g. source code, object code,
interpreted code, etc.) stored in or carried by any computer or
machine readable medium.
IM Server and Gateway Device for Home Automation Control
As described above in connection with FIG. 2, the gateway device 10
may be the central communication platform that interoperates with
multiple devices in the home to form a home networking environment.
FIG. 11 provides an exemplary home network that includes a home
automated control.
In FIG. 11, central to the communication platform functionality is
the provisioning of IM client functionality 610 at the gateway
device 10. IM client functionality 610 may be enabled for
client-server communications with an IM server 99c (e.g., which may
be part of IM networks 99a and/or 99b of FIG. 4). IM server 99c may
be a publicly-accessible IM server (e.g., Yahoo IM network, MSN IM
network, etc.), or may be a privately-accessible IM server, either
of which may be remotely located. IM server 99c, whether in a
publicly or privately accessibly form, may enable communications
between a remote IM client (e.g., IM client 650, etc.) and IM
client 610 of gateway 10, for example, via a wide area network. IM
client 650 may communicate with endpoint devices (e.g., device 665,
etc.) that may be part of home automation network 620 via IM server
99c. Communication messages 672 from IM client 650 may be directed
by IM server 99c to IM client 610 of gateway device 10. Home
automation controller 605 and device driver 613 may process the
communication messages 670 for endpoint devices (e.g., device 665)
of home automation network 620. As endpoint devices of home
automation network may not be enabled with IM client programming,
and thus may not communicate with other IM devices using a presence
and networking messaging protocol (e.g., an Instant Messaging
protocol), device driver 613 may provide the communications to a
respective endpoint device in the home automation network using a
device driver communication protocol. Messages from one or more
endpoint devices (e.g., endpoint device 65), such as alert
messages, status messages, or other communications may be received
by home automation control node 625, and then transmitted to device
driver 613 of gateway device 10. Home automation controller 605 may
be configured to direct the received message to a remote IM client.
Accordingly, IM client 610 may "package" the message received from
the endpoint device into a message that may be transmitted using a
presence and networking message protocol.
In the context of home automation in FIG. 11, the gateway appliance
10 is additionally provisioned with a home automation controller
device 605 that communicates with the IM client function 610 to
facilitate home network management, including: a home automation
controller 605 that interfaces with a TV/Web interface 615 that
interfaces with the digital media adaptor component 635 and, a
device driver 613 that interfaces with the home automation network
620 (e.g., Zigbee network) via a home automation control node 625
that is responsible for communicating with the "smart" devices
designed for home automation. The digital media adaptor component
635 further communicates with the TV device 632 at the premises
and, the TV/Web interface 615 further interfaces with the computing
device, e.g., PC 630 at the premises. Further, the IM client
functionality 610 interfaces with an IM client 650 that is either
local (at the premises) or remote and may include a SIP phone or a
PC.
In the context of home automation services, the appliance supports
multiple types of home automation controllers and multiple protocol
standards including a variety of non-IP protocol standards and
vendor specific proprietary protocols such as Insteon, Zwave etc.
This enables the user to integrate multiple vendor devices in the
home. It is further understood that the controller device itself
may support more than one automation protocol such as Insteon or
(legacy) x10 devices and these protocols will be transported via RF
or other suitable communication path. The gateway appliance 10 may
communicate with controllers via vendor-specific protocols.
Via the IM client functionality 610 and IM server 99c, the local or
remote IM client 650 may be provided with IM-based state
notification messages, e.g., messages of any alarm generated.
Although such messages may not be initially transmitted using a
presence and networking message protocol (e.g., IM protocol),
gateway 10 may be configured such that IM client 610 may transmit
the messages (e.g., alert messages, etc.) received from messages
to, for example, IM client device 650 using a presence and
networking message protocol. The IM client device 650 may receive
device state notification messages 672 via the appliance's e-mail
application, a phone call, or at a PC directly. Thus, when events
are detected, for example, a change in the device's status or
parameter(s) the gateway appliance 10 generates alert notifications
670, via the notification manager which is part of the presence and
networking module shown in FIG. 5C, for receipt at the IM client
device via IM server.
Moreover, as shown in FIG. 11, via the IM client 610 functionality,
a user may control home networking devices 665 or home automation
devices locally or remotely. For example, this functionality
specifically enables a user to configure and control networking
devices and home automation devices, e.g., networked light switch
controlling light fixture 167 to show up as controllable entities,
via a list (not shown), on another device, e.g., the PC 630 or
television 632 via digital media adaptor 35b such as shown in FIG.
11. Thus, users receive immediate notifications of changes or check
on connectivity or status of the home devices via communications
from the gateway 10. Thus, gateway device 10 may be programmed
through a service offering or as a default, to enable the
notification directly on the TV via overlay onto a video signal at
the home.
Additionally, gateway device 10, through its device registry which
is part of the presence and networking module (e.g., IM client 610,
etc.), provides a list of the device state/parameters (status) 162
of many devices that are connected to the gateway for additional
control services, e.g., via a local PC client notification message
161. One example of such a notification is shown in FIG. 12, which
depicts an exemplary user interface 675 showing a generated list
680 of devices connected to the gateway 610 and their current
status. Although devices connected to home automation control
network 620 may not have presence and network message capabilities,
device driver 613 may communicate with each endpoint device of home
automation control network 620 to determine the status and
functionalities of the endpoint device, and provide the status and
functionality information to a local or remote IM client device
(e.g., IM client device 650).
As described herein, gateway device 10 may have a configuration
data file (e.g., similar to configuration data 520 shown in FIG. 2)
that may be accessible by a user of gateway 10 or by a service
provider, where the configuration file data is configurable so as
to indicate the level of "transparency" of whether an endpoint
device is connected to the home automation network 620, what
features are available, what the status of the endpoint device is,
etc. User interface 675, as illustrated in FIG. 12, may be used to
configure various endpoint devices.
For example, as shown in FIG. 12, the presented columns include the
device, device identifier, the device status (e.g., ON/OFF), a type
of device it is, and its scheduled operation/activity. Using the
interface, a user may be able to control or change the status of a
device, e.g., lights, by selecting on/off functionality embodied as
user selectable buttons 677. The home automation controller
functionality 605 of the gateway appliance 10 responds by
generating appropriate signals that are forwarded to the home
automation control node 625 to effect the status change of a
particular device. In one embodiment, an additional control
interface 685 is provided to effect a change in analog type
devices, e.g., dimmer switch.
Thus, in using the exemplary interface, a user may check on the
status of each of these devices and send commands to change the
status information. Any change in status of these devices will come
as notifications or alerts. For example, an assisted living device
665, e.g., a sensor, monitors user behavior or biological function
and checks behavioral patterns against stored patterns. If there is
determined a break in the pattern, when detected by the system, an
automatic notification may be generated and provided to a user
endpoint device, e.g., the PC or TV, etc.
As described herein with respect to file and content sharing, the
gateway appliances are able to communicate with each other to share
information through using IM clients at each gateway device,
wherein presence and networking messages are sent via an IM server
to one more gateway devices IM server functionality provided at the
appliance. The messages and commands may be communicated through a
secure network connection.
IM Access and Control Display
As described above in connection with FIG. 11, the home automation
service network is supported at least in part by gateway appliance
10, wherein the home automation service may be accessible by a user
through a presence and networking protocol client (e.g., IM client)
from a PC or any other suitable interface. Particularly, the
gateway appliance 10 may be configured to appear as a buddy in the
user's buddy list. However, as the one or more of the endpoint
device connected to gateway device 10 do not themselves have
presence and networking message capabilities, they may not appear
in the buddy list. The gateway appliance 10 may provide a listing
of endpoint devices and their functions to a local or remote IM
client. Which endpoint devices are "visible" by a remote client, as
well as their respective available functions, may be, as described
above, configurable by a user or by a service provider. The name
for the gateway appliance 10 itself as it appears in an IM buddy
client list is also configurable.
Once a user selects the gateway appliance buddy from the buddy
list, a number of events may occur. The user may enter into an IM
"chat" mode. A menu option such as "home automation" may be
presented to the user. Upon selection of the "home automation"
option, the user may be prompted for a password. Once password
authenticated, the user is capable of requesting status of one or
more of the endpoint devices of the home automation network that
are configured to be visible during an IM session and report status
information. The user may also change the status of a selected
device, and may elect to receive notifications from a device (e.g.,
a user may update a configuration of the gateway device such that
associated endpoint devices may provide notifications). An
exemplary IM interface dialog may be presented to the user that
displays one or more of the following: whether any events have
occurred in which may require user input, such that the user is
prompted to enter an instruction; request a Status Check; Change a
device status; and Review an event log. In one example, upon
selection of change device status request, the user is prompted to
select from options such as device type, (e.g., light switch,
garage door, outlet, sprinkler system, etc.), a Main Menu option,
or any other suitable option. Furthermore, in one example, upon
selection of a device, (e.g., a garage door, etc.) the user is
prompted with additional selection options related to the first
selection (e.g., select a first garage door, a second garage door,
etc.). Thus, the user interaction with gateway appliance 10 and
associated endpoint devices may text based and/or menu driven.
Program aspects of the technology may be thought of a "products,"
typically in the form of executable code and/or associated data for
implementing desired functionality, which is carried on or embodied
in a type of machine readable medium. In this way, computer program
instructions may be provided to a processor of a general purpose
computer, special purpose computer, embedded processor or other
programmable data processing apparatus to produce a machine, such
that the instructions, which execute via the processor of the
computer or other programmable data processing apparatus, so as to
implement functions described above.
Terms regarding computer or machine "readable medium" (or media) as
used herein therefore relate to any storage medium and any physical
or carrier wave transmission medium, which participates in
providing instructions or code or data to a processor for execution
or processing. Storage media include any or all of the memory of
the gateway device or associated modules thereof or any of the
hardware platforms as may be used in the service management center,
such as various semiconductor memories, tape drives, disk drives
and the like, which may provide storage at any time for the
software programming. All or portions of the software may at times
be communicated through the Internet or various other
telecommunication networks. Such communications, for example, may
enable loading of the software from one computer into another
computer, for example, from the updater 51 a hardware platform for
a gateway device 10 or from another source into an element of the
service management center 50. Thus, another type of media that may
bear the software elements includes optical, electrical and
electromagnetic waves, such as used across physical interfaces
between local devices, through wired and optical landline networks
and over various air-links. The physical elements that carry such
waves, such as wired or wireless links, optical links or the like,
also may be considered as media bearing the software. Hence, the
broad class of media that may bear the instructions or data
encompass many forms, including but not limited to, non-volatile
storage media, volatile storage media as well as carrier wave and
physical forms of transmission media.
Those skilled in the art will recognize that the teachings of this
disclosure may be modified, extended and/or applied in a variety of
ways. An extension of the system architecture, for example,
provides the ability of various and disparate third-party
application service providers to provide multiple application
services independently. Application services are managed by the
"managed" service provider through the service management center
50, meaning, generally, authorizing, provisioning, and monitoring
the usage of a particular application service. This can be
accomplished in a variety of ways with varying degrees of
involvement of, or coordination with, the service management
center. The service management center 50 could manage these items
"soup-to-nuts" or have minimal involvement. For example, the
service management center 50 could deal directly with the
third-party service provider to acquire application services at the
request of a user and manage the delivery, authorization,
usage-monitoring and upgrading of the application service. At the
other end of the spectrum, the managed service provider may have
arrangements with the third-party application service provider by
which orders or requests from the users may come directly to the
third-party application service provider, and services are
delivered to the user by the third-party service provider who in
turn coordinates with the managed service provider to register and
monitor the particular application service placed in the gateway
device 10. It should be noted that this ability to manage
application services extends through the gateway device into the
endpoint devices registered or associated with the gateway or
network.
While the foregoing has described what are considered to be the
best mode and/or other examples, it is understood that various
modifications may be made therein and that the subject matter
disclosed herein may be implemented in various forms and examples,
and that the teachings may be applied in numerous applications,
only some of which have been described herein. It is intended by
the following claims to claim any and all applications,
modifications and variations that fall within the true scope of the
present teachings.
* * * * *
References