U.S. patent application number 15/991821 was filed with the patent office on 2018-09-27 for wireless internet product system.
This patent application is currently assigned to Arrayent, Inc.. The applicant listed for this patent is Arrayent, Inc.. Invention is credited to Shane E. Dyer, Zheng Jiang, Dustin H. McIntire.
Application Number | 20180278581 15/991821 |
Document ID | / |
Family ID | 47749149 |
Filed Date | 2018-09-27 |
United States Patent
Application |
20180278581 |
Kind Code |
A1 |
Dyer; Shane E. ; et
al. |
September 27, 2018 |
Wireless Internet Product System
Abstract
Low resource internet devices such as consumer electronics
products connect to web service by means of a proxy method where
the connected device does not need to maintain the expensive and
fragile web service interface itself, but rather uses simple low
level protocols to communicate through a gateway that executes
software to translate a low level proprietary wireless protocol to
a proprietary low level internet protocol that can pass through a
firewall to proxy servers that translate the low level protocols
thus presenting an interface that makes the internet device appear
to have a full web service interface to enable communication
between the internet devices and the web server.
Inventors: |
Dyer; Shane E.; (San
Francisco, CA) ; McIntire; Dustin H.; (Thousand Oaks,
CA) ; Jiang; Zheng; (Menlo Park, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Arrayent, Inc. |
Redwood City |
CA |
US |
|
|
Assignee: |
Arrayent, Inc.
Redwood City
CA
|
Family ID: |
47749149 |
Appl. No.: |
15/991821 |
Filed: |
May 29, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14707804 |
May 8, 2015 |
|
|
|
15991821 |
|
|
|
|
13784722 |
Mar 4, 2013 |
9270645 |
|
|
14707804 |
|
|
|
|
12489154 |
Jun 22, 2009 |
8392561 |
|
|
13784722 |
|
|
|
|
61074484 |
Jun 20, 2008 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 63/0281 20130101;
H04L 63/08 20130101; H04L 61/2514 20130101; H04L 63/029 20130101;
H04L 61/103 20130101; H04L 69/08 20130101; H04L 67/10 20130101;
H04L 67/12 20130101; H04L 61/2589 20130101; H04L 67/02 20130101;
H04L 67/2823 20130101 |
International
Class: |
H04L 29/06 20060101
H04L029/06; H04L 29/08 20060101 H04L029/08; H04L 29/12 20060101
H04L029/12 |
Claims
1-20. (canceled)
21. A wireless internet product comprising: a microcontroller; a
radio transceiver that communicates with a program using a protocol
in accordance with instructions from the microcontroller; and a
nonvolatile memory storing a device identifier and a plurality of
instructions; wherein the instructions enable the microcontroller
to identify a plurality of commands sent from the program which
are: (i) sent from the program to a proxy server via a web service
protocol; (ii) addressed by the proxy server using the device
identifier; wherein the instructions enable the microcontroller to
address a packet to be sent through a firewall via the protocol
using the radio transceiver; and wherein the packet has a packet
length and said packet length is shorter than a web service
protocol packet length having corresponding information
content.
22. The wireless internet product of claim 21, wherein: the program
identifies the wireless internet product to the proxy server using
the device identifier; and the device identifier is independent of
any IP address that may temporarily identify the wireless internet
product.
23. The wireless internet product of claim 21, wherein the
instructions further enable the microcontroller to execute a
communication method, the method comprising: sending a message from
the wireless internet product to the proxy server through a
firewall using the radio transceiver; subsequent to sending the
message, determining and storing a collection of firewall
transversal information using the radio transceiver; sending the
device identifier from the wireless internet product to the proxy
server through the firewall using the radio transceiver; and
subsequent to sending the device identifier, communicating through
the proxy server to the program using the collection of transversal
information.
24. The wireless internet product of claim 21, wherein the
instructions further enable the microcontroller to execute a
firewall timeout measurement method, the method comprising: sending
a plurality of packets from the radio transceiver to the proxy
server according to a period; while sending the plurality of
packets according to the period, if a corresponding matching return
packet is received for each packet: (i) saving the period as a last
period; (ii) increasing the period; and (iii) restarting the
sending step; while sending the plurality of packets according to
the period, if the corresponding matching return packet is not
received for each packet: (i) setting the period to less than the
last period; and continuing to send packets from the radio
transceiver to the proxy server according to the period; wherein
the firewall has a table entry for allowing communication with the
wireless internet product; wherein the table entry has a timeout
period; and wherein the method sets the period to less than the
timeout period.
25. The wireless internet product of claim 21, wherein the
instructions further enable the microcontroller to execute a direct
device communication method, the method comprising: addressing the
packet for a second wireless internet product using a second device
identifier; and sending the packet from the first wireless internet
product through the firewall to the proxy server; wherein the proxy
server routes the packet using the second device identifier and a
table that matches the second device identifier with a matching IP
address; and wherein the second device identifier is not itself an
IP address.
26. The wireless internet product of claim 21, wherein: the
microcontroller configures the packet to be sent by the radio
transceiver to a gateway via a compact radio protocol; and the
gateway sends the packet to the proxy server through the firewall
via the protocol.
27. The wireless internet product of claim 21, wherein: the web
service protocol is XML over HTTP.
28. A network system comprising: a wireless internet product having
a microcontroller, a radio transceiver, and a memory storing a
device identifier; a program which sends a command to the wireless
internet product via a web service protocol; a proxy server that
receives the command from the program and routes the command to the
wireless internet product using the device identifier; and a
gateway that transmits a packet to the wireless internet product
via a compact radio protocol; wherein the packet represents at
least a portion of the command; wherein the wireless internet
product communicates with the proxy server using a protocol; and
wherein the packet has a packet length and said packet length is
shorter than a web service protocol packet length having
corresponding information content.
29. The network system of claim 28 wherein: the proxy server stores
a set of key value pairs associated with a state of the wireless
internet product; and the program can retrieve a value for a
property of the wireless internet product from the proxy server
using the set of key value pairs.
30. The network system of claim 28, wherein: the program identifies
the wireless internet product to the proxy server using the device
identifier; and the device identifier is independent of any IP
address that may temporarily identify the wireless internet
product.
31. The network system of claim 28, wherein: the wireless internet
product sends a message to the proxy server through a firewall
using the radio transceiver; the wireless internet product,
subsequent to sending the message, determines and stores a
collection of firewall transversal information; the wireless
internet product, sends the device identifier to the proxy server
through the firewall using the radio transceiver; and the wireless
internet product, subsequent to sending the device identifier,
communicates with the program through the proxy server using the
collection of firewall transversal information.
32. The network system of claim 28, wherein the wireless internet
product stores instructions for executing a method comprising:
sending a plurality of packets from the radio transceiver to the
proxy server through a firewall according to a period; while
sending the plurality of packets according to the period, if a
corresponding matching return packet is received for each of the
plurality of packets: (i) saving the period as a last period; (ii)
increasing the period; and (iii) restarting the sending step; while
sending the plurality of packets according to the period, if the
corresponding matching return packet is not received for each of
the plurality of packets: (i) setting the period to less than the
last period; and continuing to send a second plurality of packets
from the radio transceiver to the proxy server according to the
period; wherein the firewall has a table entry for allowing
communication with the wireless internet product; wherein the table
entry has a timeout period; and wherein the method sets the period
to less than the timeout period.
33. The network system of claim 28, further comprising a second
wireless internet product wherein: the wireless internet product
addresses a packet for the second wireless internet product using a
second device identifier; the wireless internet product sends the
message through a firewall to the proxy server; the proxy server
routes the packet using the second device identifier and a table
that matches the second device identifier with a matching IP
address; and the second device identifier is not itself an IP
address.
34. The network system of claim 28 wherein: the web service
protocol is XML over HTTP.
35. A method for communicating with a wireless internet product,
wherein the wireless interned product has a microcontroller, a
radio transceiver, and a memory storing a device identifier, and
wherein the method comprises: receiving a command from a program
via a web service protocol using a proxy server; routing the
command to the wireless internet product with the proxy server
using the device identifier; and translating the command into a
protocol downstream from the proxy server; wherein the packet has a
packet length and said packet length is shorter than a web service
protocol packet length having corresponding information
content.
36. The method of claim 35 wherein: the proxy server stores a set
of key value pairs associated with a state of the wireless internet
product; and the program can retrieve a value for a property of the
wireless internet product from the proxy server using the set of
key value pairs.
37. The method of claim 35 wherein: the program identifies the
wireless internet product to the proxy server using the device
identifier; and the device identifier is independent of any IP
address that may temporarily identify the wireless internet
product.
38. The method of claim 35, further comprising: sending a plurality
of packets from the radio transceiver to the proxy server through a
firewall according to a period; while sending the plurality of
packets according to the period, if a corresponding matching return
packet is received for each of the plurality of packets: (i) saving
the period as a last period; (ii) increasing the period; and (iii)
restarting the sending step; while sending the plurality of packets
according to the period, if the corresponding matching return
packet is not received for each of the plurality of packets: (i)
setting the period to less than the last period; and continuing to
send a second plurality of packets from the radio transceiver to
the proxy server according to the period; wherein the firewall has
a table entry for allowing communication with the wireless internet
product; wherein the table entry has a timeout period; and wherein
the method sets the period to less than the timeout period.
39. The method of claim 35, further comprising: addressing a packet
for a second wireless internet product using a second device
identifier; and sending the packet from the wireless internet
product through the firewall to the proxy server; wherein the proxy
server routes the packet using the second device identifier and a
table that matches the second device identifier with a matching IP
address; and wherein the second device identifier is not itself an
IP address.
40. The method of claim 35, wherein: the web service protocol is
XML over HTTP.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to U.S. patent application
Ser. No. 12/489,154 filed Jun. 22, 2009, and entitled "Wireless
Internet Product System"; which claims priority to U.S. Provisional
Patent Application No. 61/074,484 filed Jun. 20, 2008, both of
which are hereby incorporated by reference for all purposes.
BACKGROUND
Field of the Invention
[0002] Invention relates to networked communication systems,
particularly to systems enabling simple electronic devices having
web service connectivity.
Related Art
[0003] It is desirable to create a wireless internet system to
connect products that can communicate with each other and web
applications. The adoption of these systems has been held back by
the cost of the devices themselves to support internet protocols
because current methods require robust and relatively expensive
radio, memory and microprocessor systems as compared to
non-networked products. Adoption of internet connected products
have also been held back by the cost to support application servers
that provide web or internet functionality for the device because
the product provider is burdened with back-end infrastructure costs
that increase the cost of the product. Inventions that reduce the
cost of connected devices while maintaining their internet
connected functionality and inventions to improve the efficiency of
the back-end infrastructure to support connected products are
needed improvements to the current art.
SUMMARY
[0004] Electronic devices communicate through firewall connected
through proxy and web application servers to internet network.
Alternate embodiments of electronic devices use gateway or dongle
and personal computer (PC) to connect one or more internet products
to firewall. A unique identifier stored in each electronic devices
or internet products corresponds to and addresses each electronic
devices or internet products throughout system. Program in
electronic devices, gateway, or PC transfers unique identifier
through firewall by internet message system (IMS) protocol to proxy
server software which detects electronic devices. IMS protocol
includes unique identifier. IMS packet length is shorter than
corresponding web service protocol packet length. Program in proxy
server has routing and translating programs which alternatively are
in IMS and Translation servers respectively. Routing program routes
IMS packet based on stored mapping of unique identifier to internet
protocol (IP) address and port to one electronic devices or
internet products or, through translating program, to web
application server with internet address using web service
protocol. This enables internet address using web service protocol
to access or communicate information, content, or commands to one
electronic devices or internet products or enables one electronic
devices or internet products to communicate to other electronic
devices or internet products. In an alternate embodiment,
application state or key value pair message associated with
electronic devices are stored by software in proxy server.
[0005] Gateway or dongle communicates to one or more internet
products through compact radio protocol (CRP) through low power
wireless circuits. CRP packet length is shorter than corresponding
IMS packet length. CRP packet using unique identifier has fewer
fields than corresponding IMS packet. Software in gateway or PC
translates CRP to and from IMS protocol.
[0006] Firewall table entry timeout time which blocks IMS transfer
from proxy server to electronic devices or internet products is
avoided by electronic device or proxy server software which
determines approximation short of timeout time and is used to send
IMS packet periodically to firewall preventing timeout and
permitting communication with reduced system overhead.
[0007] In alternative embodiments; gateway or PC stores IMS or CRP
packet sent until one or more internet products periodically wake
up from low power sleep mode to receive packet to reduce power
consumption in internet products, or alternatively, low power
wireless circuit determines reduced signal strength condition which
initiates resynchronization scan to gateway, or alternatively,
firewall is with network address translation.
[0008] In alternative embodiments electronic devices or internet
products may be; thermostat with ability of storing control
setting, animatronic toy with motor causing motion or character
gesturing and control circuit with ability to actuate motor, toy
with ability to make sound or play sound files and ability to
receive sound or sound files from internet address using web
service protocol, medical sensor with ability of sending data, and
touch screen display drawing pad with ability of sending data. All
these abilities are responsive to internet address using web
service protocol and touch screen display drawing pad is capable of
sending data to another touch screen display drawing pad.
Alternative embodiments in combination with above embodiments of
animatronic toy use sensor with ability of sending sensor data
responsive to motion or environment from toy to internet address
web service protocol or to other electronic devices with ability to
be responsive to animatronic toy.
[0009] Using more compact packet protocols than web service
protocols within internet product system enables simpler and
cheaper hardware throughout system and resulting operational
efficiencies enable many more internet products to be connected
than prior art techniques while also reducing cost of server
infrastructure. Translating back to web service protocol at web
application server also provides standardized web service interface
helping application developers bring applications online more
efficiently. Using unique identifier addressing enables efficient
detection and access of electronic devices or internet products
thru firewalls otherwise difficult to achieve using prior art IP
based addressing. Embodiments described above enable many internet
product connected applications that would otherwise be too
expensive using prior art techniques.
BRIEF DESCRIPTION OF DRAWINGS
[0010] FIG. 1 is a simplified system diagram showing the wireless
internet product system according to an embodiment of the present
invention.
[0011] FIG. 2 is a functional diagram illustrating the scan frame
according to an embodiment of the present invention.
[0012] FIG. 3 is a functional diagram illustrating the poll frame
according to an embodiment of the present invention.
[0013] FIG. 4 is a functional diagram illustrating the data frame
according to an embodiment of the present invention.
[0014] FIG. 5 is a functional diagram illustrating the procedure of
the internet product scanning to find gateways according to an
embodiment of the present invention.
[0015] FIG. 6 is a functional diagram illustrating the procedure of
polling when the internet product is in sleep mode and connected to
the gateway according to an embodiment of the present
invention.
[0016] FIG. 7 is a functional diagram illustrating the procedure of
polling and scanning when the internet product is in sleep mode and
not connected to the gateway according to an embodiment of the
present invention.
[0017] FIG. 8 is a functional diagram illustrating the procedure of
data frame transmitting with retries during normal operation
according to an embodiment of the present invention.
[0018] FIG. 9 is a functional diagram illustrating the procedure of
poll and data frame transmitting when the poll frame is held during
normal operation according to an embodiment of the present
invention.
[0019] FIG. 10 is a functional diagram illustrating the procedure
of scan frame transmitting when the gateway is powered on and
selects a random channel according to an embodiment of the present
invention.
[0020] FIG. 11 is a functional diagram illustrating the procedure
of data and poll frame transmitting during normal gateway operation
according to an embodiment of the present invention.
[0021] FIG. 12 is a functional diagram illustrating the procedure
of data and poll frame transmitting when a second internet product
poll is delayed by a first internet product poll frame during
normal gateway operation according to an embodiment of the present
invention.
[0022] FIG. 13 is a functional diagram illustrating the IMS on UDP
on IP packet according to an embodiment of the present
invention.
[0023] FIG. 14 is an operational flowchart illustrating process
steps performed by software functions in accordance with detecting
and accessing functions in an internet product system according to
an embodiment of the present invention.
DETAILED DESCRIPTION
[0024] One embodiment of the invention is an internet product
system or sometimes called the wireless internet product system 100
as shown in the simplified system diagram FIG. 1. The system
consists of a one or more internet products 102 which are battery
or wall powered devices that send and receive information through
wireless radios through a one or more gateways 104. "Low-power
wireless" or simply "wireless" refers to 802.11 a/b/or g/standard
and other proprietary and standard short-range wireless solutions
capable of transferring digital data and operating in unlicensed
spectrum, for example 433 MHz, 928 MHz, 868 MHz, 2.4 GHz bands and
others (examples including WI-FI.RTM., BLUETOOTH.RTM.,
WI-BREE.RTM., ZIGBEE.RTM., ZWAVE.RTM., and others). The one or more
internet products have a low-power radio transceiver and a
microcontroller with data storage, for example flash or static
random access (SRAM) memory. One or more internet products 102,
which may simply be called the internet product, connects to one of
one or more gateway 104, which may simply be called the gateway,
using a compact radio protocol (CRP) 106. The CRP uses a star
topology where one or more internet products communicate with the
same gateway.
[0025] Gateway 104 also has a low-power radio transceiver and a
microcontroller with flash and SRAM memory. The gateway contains
software to translate the CRP 106 packets to and from an Internet
Message System (IMS) protocol 108, 114, and 120. The IMS packets
are sent over internet protocol (IP) through a network address
translation (NAT) firewall 110 to an IMS server 112. NAT firewall
110 may simply be called a firewall or NAT but is understood to be
any device that blocks unauthorized packets from flowing to the
gateway from any servers based on a predetermined rule set or
providing the network address translation function.
[0026] The gateway exists in one of two configurations. The gateway
may connect via a local area network (LAN) connection 114 (such as
ETHERNET.RTM.) directly to the home or commercial network address
translation NAT firewall 110 or router shown in FIG. 1, or it may
connect via a universal serial bus (USB) connection 116 to a
personal computer (PC) 118, which in turn is connected via local
area network connection 120 (such as ETHERNET.RTM.) to the home or
commercial network NAT Firewall 110 or router. The gateway may have
both USB and ETHERNET.RTM. interface to allow the user to choose
which method to use to give the gateway internet connectivity. In
the case of the USB-connected gateway (104, 116, and 118), the
translation software runs as a background PC 118 application
program that sends and receives compact radio protocol CRP 106 and
IMS protocol 120 information. Both the direct
ETHERNET.RTM.-connected 114 gateway and USB-connected 116 gateway
and PC combination will be referred to in this document simply as
the "gateway 104 (or 104, 116, and 118)". As described in more
detail later, one embodiment of the USB-connected 116 gateway uses
a USB dongle (not shown in FIG. 1) in place of gateway 104 where
the USB dongle (as 104) contains the wireless radio as described
above.
[0027] IMS server 112 routes IMS over user datagram protocol (UDP)
over IP packets to and from one or more internet products 102 and
their destinations. There are two possible destinations. The one or
more internet products may communicate with another one of one or
more internet products directly, or it may communicate with a web
application server 122. An example of the web application server in
this case would be a server that provides a web interface that both
shows information sent from the one or more internet products and
sends information, content or commands to the internet product.
[0028] In the case where the internet product is communicating with
another internet product directly, IMS server 112 passes the IMS
packet to the correct one or more internet products 102 based on a
device identifier (ID) found in the IMS packet. The packet is
routed directly by the IMS server to the target product's NAT
firewall 110 and gateway 104 (or 104, 116, and 118). Note that if
an internet product is behind an NAT firewall that does not allow
UDP traffic, IMS server 112 can use transmission control protocol
(TCP) instead of UDP, although TCP is less efficient.
[0029] Many of the one or more internet products are deployed in
networks behind NAT firewall 110 devices. These one or more
internet products can be reachable from IMS server 112 any time
they are in operation so that a message sent from another internet
product or initiated from a web application can reach the internet
product. However the NAT firewall prevents an outside IP address
from contacting an internal IP address unless the contact was
initiated by the internal IP address inside the NAT firewall. Those
skilled in the art are familiar with a table entry in the NAT
firewall that associates an external IP address and port with an
internal IP address and port and permits packets to be passed from
the external address to the internal address as part of an active
communication session. This active communication session will time
out on most NAT firewall equipment after a pre-set amount of time.
This embodiment of the invention can overcome this NAT firewall
restriction by having the internal device send regular, dummy IP
packets initiated either from gateway 104 (or 104, 116, and 118)
component or from one or more internet products 102 at a frequency
higher than the table entry timeout frequency in the NAT firewall.
In doing so, the sender ensures that there will always be a valid
entry in the NAT firewall table to permit communication from the
IMS server to the gateway. When the internet product connects to
the IMS server and it was previously disconnected, the new
connection to the IMS server will be initiated by the internet
product or the gateway in order to be passed by the NAT
firewall.
[0030] The NAT firewall table connection state may be automatically
refreshed by gateway 104 (or 104, 116, and 118) upon any data
packet transmission between one or more internet products 102 and
gateway 104 (or 104, 116, and 118) (described below).
Alternatively, the internet product may refresh state via a
scanning operation (also described below). This refresh operation
may be performed at any energy-efficient time selected by the
internet product, and is typically coordinated with other device
operations to minimize power state transition energy.
[0031] In the case where one or more internet products 102 are
communicating with web application server 122, IMS server 112
passes the IMS packet to the web application server through a
translation server 124. The translation server translates IMS over
IP 126 to and from a standard web service protocol 128 such as
extensible markup language (XML) over hypertext transfer protocol
(HTTP) by providing a web service application programming interface
(API) to web application server 122. This translation allows
standard web application servers to communicate seamlessly with the
entire internet product system using a standard web service
protocol. "Web service" refers to machine-to-machine communications
using XML over HTTP. Translation server 124 can also provide a
generic way to store the states of the various one or more internet
products 102 so the state of the product can be retrieved from the
translation server rather than the internet product to increase
efficiency.
[0032] Translation server 124 advantages over the prior art are now
described. By translating a standard web service protocol 128 to
IMS over IP 126, translation server 124 both provides a standard
web service API to web application server 122 and also communicates
with IMS server 112 using the more efficient IMS packet structure.
This topology has several benefits. First, the XML format for the
web service interface, although standard for web application
servers, is much less efficient than IMS over IP. Translating
packets as soon as they are received by the translation server to
the more compact IMS format 108, 114, 120, and 126 saves processor,
memory, and bandwidth resources throughout the system as compared
to passing data in XML format to other servers and/or down to one
or more internet products 102. Secondly, by using the IMS packet
format to communicate from the translation server to the IMS
server, the IMS server can be simpler and therefore more efficient
than a standard server such as a web server, since communication on
both sides of IMS server 112 uses the same high-efficiency IMS over
IP 126 and 108 protocol.
[0033] In addition, translation server 124 defines a standard
interface to access internet-connected products in both
representational state transfer (REST), simple object access
protocol (SOAP) or other web service formats and provides a generic
way to store the states of one or more internet products 102.
Internet product state storage can be implemented at the
translation server in two ways. First, one or more internet
products 102 can send an application state to translation server
124 for storage and web application server 122 can retrieve each
named property from the translation server. In this method the
translation server acts as a cache for the internet product. The
second more generic way to implement storage at translation server
124 is to have the translation server store a list of key value
pair messages sent from one or more internet products 102 to the
web application. Web application server 122 can then retrieve all
the stored key value pair messages on translation server 124 or
choose to retrieve only a subset of the messages based on their
key. It will dramatically reduce the cost of development of the
related web applications because a designer needs to understand
only the web service API for communicating with one or more
internet products 102 and not any of the details of the IMS or CRP
protocols that they use to communicate.
[0034] CRP 106 advantages over the prior art are now described.
Small data sizes are common for one or more internet products 102
on low-power wireless networks to facilitate less capable and
therefore less expensive radio and packet processing hardware. The
overhead of UDP or TCP normally imposed by an IP-based protocol is
not needed by hardware of this type and creates and unnecessary
inefficiency. The CRP 106 uses fewer fields and smaller headers
than UDP/IP or TCP/IP, and the maximum packet length for CRP 106 is
shorter than that of UDP or TCP. As a result, the CRP leads to
higher efficiency in transferring user payload data for hardware
that does not require a higher-level protocol. For low-power
wireless networks, this added efficiency is an advantage.
[0035] IMS protocol advantages over the prior art are now
described. One of the features of IMS protocol 108, 114, 120, and
126 is that it is close to a direct mapping of CRP 106 to a simple
format that can be sent over an IP network. The IMS protocol
follows the size restrictions and formats of the CRP even though
UDP or TCP would ordinarily not need to follow such restrictions.
Limiting use of UDP or TCP packets to the subset IMS protocol goes
against the current teaching in the art, as the packets are smaller
than would be optimal for operation on an IP-only network. However
the use of IMS protocol 108, 114, 120, and 126, while not optimal
for an IP-only network, makes the translation by gateway 104 (or
104, 116, and 118) to and from a CRP 106 packet in an IMS-based
network, much simpler. For example, the IMS protocol restricts
packet size such that there are no packets that are too large to be
supported by the CRP. It thereby ensures that no packets need be
broken up into smaller packets when translated by the gateway to
the low-power radio network, reducing the complexity and therefore
the cost of the gateway.
[0036] Keeping the IMS packet structure close to the CRP packet
structure also has the benefit of making it easier to have
compatibility between the Ethernet-connected 114 gateways and
gateways that connect to a PC via a serial connection such as USB
connection 116, since the complexity of the gateway translations
are greatly simplified. A less complex gateway is easier and less
expensive to implement on limited embedded hardware.
[0037] A key feature of IMS protocol 108, 114, 120, and 126 is the
use of a connectionless protocol such as UDP for a majority of
communications between one or more internet products 102 and IMS
server 112. For a traditional server such as Web Server, both the
TCP connection overhead and the need to retain state for typical
communication transactions consumes memory and processor resources
on the server reducing the number of internet products that can be
connected to the server simultaneously. Using the connectionless
protocols in conjunction with the design of transactions using the
IMS protocol, allows the minimum state for common transactions to
be stored on the IMS server. Storing little state and using
connectionless protocols such as UDP allows IMS server 112 to
process transactions for many more internet products than can be
processed by server architectures currently used in the art that
rely on connection-oriented protocols such as TCP. Using TCP would
consume more system resources such as threads, file descriptors,
etc. For a traditional server such as web server, both the TCP
connection overhead and the need to retain state for common
transactions consume memory and processor resources on the server
reducing the number of internet products that can be connected to
the server simultaneously. Correspondingly, the IMS server may be
designed with low-cost hardware, using comparatively little
bandwidth, while serving many internet products simultaneously.
[0038] To improve the availability and balance the traffic load,
IMS server 112 is designed and implemented as a cluster server
using distributed memory cache technologies. Considering the
tradeoff between performance and guaranteed data replication, and
also considering the cost-sensitive nature of the consumer
electronics market, the data replication among the multiple cluster
nodes is designed in a best effort fashion. Occasional
out-of-synchronization of data among the server nodes in the
cluster due to network failure can be resolved by automatic audit
and resynchronization, or by a restart of one or more server nodes.
The databases used as a component of the IMS server, which contain
the description of internet-connected products, are also entirely
replicated to multiple server nodes in the cluster. This eliminates
the need for the database replication server and expensive storage
hardware and at same time achieves good results in terms of data
recovery.
[0039] To further simplify the recovery process, each main
description data entry of one or more internet products 102 is
assigned to one primary server node. The database record in its
primary server node will be the master record of that entry. IMS
server 112 routes all the update requests of the main description
entries to their primary server node so that the master record is
always updated first and then replicated to other server nodes in
the cluster. All databases in the cluster will be recovered
automatically based on their master records when system restarts by
using above technique. The databases can also be recovered easily
with minimum manual intervention in major disk failure. It can
dramatically reduce the data recovery cost and time.
[0040] More efficient protocols save cost. Prior internet-connected
products, including some that have used web service directly on the
internet product, have used HTTP to communicate to send and receive
data between devices and internet servers. This invention
embodiment uses web service protocol 128 to connect to web
application server 122, but translates the connections to more
efficient UDP IMS protocols 108, 114, 120, and 126 for other
communication points within the architecture. This has the benefit
of providing standard web application server interfaces while
eliminating the overhead that would be incurred if complicated http
and xml protocols were used with one or more internet products 102
and core IMS server 112. The overhead of HTTP and XML protocols
would normally make one or more internet products 102 more
expensive because they would need full TCP and HTTP and XML
capability, requiring more SRAM, flash memory, and a higher
performance processor. This invention embodiment allows one or more
internet products 102 to be less expensive. The server
infrastructure to support one or more internet products that used
TCP UDP XML and or Web service would also be more expensive than
this embodiment of the invention as more data would need to be
passed between the internet product and the server. Additionally
the server would need to maintain more state on each connected
product, requiring more memory and processing resources on the
server, and thus reducing the number of internet products each
server could support.
[0041] The following embodiment provides additional enhancements.
Periodic NAT firewall table refresh operations by one or more
internet products 102 or gateway 104 (or 104, 116, and 118)
introduce a certain amount of communication overhead. Often, for a
battery-powered internet product, packets sent down to the internet
product will be stored in the gateway, and the internet product
will periodically wake up from a low power sleep mode to query the
gateway to see if there are any such packets that the gateway needs
to transmit to the internet product. In one embodiment, this
periodic data can double as a NAT firewall refresh request,
triggering a dummy IP packet to be sent from gateway 104 (or 104,
116, and 118) to IMS server 112. This double use of a data query
packet from one or more internet products 102 to the gateway to
trigger the dummy IP packet to be sent from the gateway to the IMS
server is more efficient than handling the two functions
separately. In addition, this technique makes the design of the
gateway component simpler as it no longer needs to keep track of
the state of one or more internet products that are active on the
wireless network and must therefore maintain regular dummy packet
traffic to the IMS server to ensure the internet product is
reachable by the IMS server. The timers for determining when a
dummy packet needs to be sent are in one or more internet products
102 and not in gateway 104 (or 104, 116, and 118) so the gateway
design can be simpler and therefore less expensive. A dummy IP
packet or any other IMS packet is sent through NAT Firewall 110 to
IMS server 112 to make sure the state in the NAT Firewall reflects
that there is an active connection between the IMS server and the
internet product such that IP packets from the IMS server sent to
the internet product are not blocked by the NAT firewall because
there is no current state in the NAT firewall associating and
therefore permitting the IMS IP address to send IP packets to the
internal IP address of the internet product's gateway.
[0042] A second enhancement is as follows. In one embodiment of the
invention, IMS server 112, gateway 104 (or 104, 116, and 118), or
one or more internet products 102 requests a succession of dummy
packets to be sent from the gateway to the IMS server and, over
time, increase the send period between dummy packets. The IMS
server will then attempt to communicate with the gateway or
internet product at increasingly longer periods of time after the
send time of the last dummy packet. Eventually when the IMS server
sends an IP packet it does not receive a response from the gateway
or internet product because the IP packet was blocked due to the
timeout of the table entry in NAT firewall 110 permitting the
traffic from the IMS server to the gateway. By recording the
longest delay from dummy packet to a successfully transmitted
packet from the IMS server to the gateway, the timeout period for
the NAT firewall can be approximated, and a value determined for
the maximum period between dummy packets to maintain the NAT
firewall table state. To ensure more dependable or higher accuracy
results this NAT firewall timeout test can be repeated. By gauging
the approximate timeout period, the slowest and therefore most
bandwidth efficient refresh rate can be selected for refresh
requests on the wireless network. This NAT firewall timeout test
can be initiated and or directed from either IMS server 112,
gateway 104 (or 104, 116, and 118) or one or more internet products
102.
[0043] Another embodiment is now described. Since the one or more
internet products 102 are often powered by low-cost battery
sources, a design consideration is the reduction of the internet
product's network power consumption. Gateway 104 (or 104, 116, and
118), in contrast, is assumed to be powered by external supply and
may therefore operate with reduced consideration to power
consumption. This necessitates a network protocol in which the
internet product has minimal transmission overhead, while the
gateway may operate in a less energy optimally fashion in order
minimize internet product energy requirements.
[0044] In the embodied radio and network protocol, the internet
products operate in a decoupled fashion whereby one or more
internet products 102 do not maintain connection or synchronization
information for other internet products, including those currently
associated with the same gateway. Rather, the connection state is
maintained solely in the gateway. The internet product is only
periodically required to refresh connection state within a
predefined period of time in order to maintain a current NAT
firewall 110 table entry within the gateway.
[0045] One embodiment of the invention is providing low-latency,
highly energy efficient delivery of data packets. This is done
through an energy-efficient radio and network protocol design (CRP)
and efficient caching of data packets at a gateway's radio. Caching
is provided via queuing data packets in gateway 104 (or 104, 116,
and 118) which are destined for any currently associated one or
more internet products 102 currently associated with that gateway.
This reduces network power consumption by eliminating the
requirement to relay data requests to IMS server 112. In the
gateway, data packets are presorted chronologically and by internet
product identifier in order to optimize packet lookup time. Data is
transferred only when requested by one or more internet products
102 via a poll request (described in following sections). This
reduces network power consumption of the internet product by
eliminating the requirement to relay each data request separately
to the IMS server. In the gateway, data packets are presorted
chronologically and by internet product identifier in order to
optimize packet lookup time. The internet product may optimally
coordinate data transfer with other activities as well as
optionally batch data transfers in order to minimize power state
transition overhead.
[0046] Since the one or more internet products 102 are often
powered by low cost battery sources, a paramount design
consideration is the reduction in the internet product's network
power consumption. Gateway 104 (or 104, 116, and 118) in contrast
is assumed to be powered by external supply and may therefore
operate with reduced consideration to power consumption. This
necessitates a network protocol in which the internet product has
minimal transmission overhead, while the gateway may operate in a
less energy optimally fashion in order minimize internet product
energy requirements. In the embodied radio and network protocol,
the internet products operate in a decoupled fashion whereby one or
more internet products 102 do not maintain connection or
synchronization information for other internet products, including
those currently associated with the same gateway. Rather, the
connection state is maintained solely in the gateway. The internet
product is only periodically required to refresh connection state
within a predefined period of time in order to maintain connection
state within the gateway. The connection state is automatically
refreshed by the gateway upon any data packet transmission between
the internet product and gateway. Alternatively, the internet
product may refresh state via a scanning operation (described
below). This refresh operation may be performed at any energy
efficient time selected by the internet product, and is typically
coordinated with other operations to minimize power state
transition energy.
[0047] An additional embodiment in the invention of the internet
product and gateway is the ability of one or more internet products
102 to resynchronize with one or more gateways 104 (or 104, 116,
and 118) to provide a roaming capability. The internet product may
initiate a scan for additional gateways existing in the environment
either periodically, or when a reduced received signal strength
from the currently associated gateway is detected. When the scan
procedure locates a gateway with adequate signal strength, as
described by the scanning process in following sections, the
internet product will associate with the new gateway by initiating
a login process with IMS server 112. This indicates to the IMS
server that the internet product has roamed to a new gateway and
that all future transactions should be routed to this gateway. The
internet product, also called a "handset" in these descriptions,
remains associated with the former gateway until the IMS server
login has successfully completed. The process creates a novel
capability for one or more internet products to have mobility
through a continuous re-association process with both gateways and
the IMS server connections.
[0048] Another embodiment of the invention is an automatic channel
selection scheme initiated by gateway 104 (or 104, 116, and 118)
upon power-on or when the active channel noise floor reaches a
threshold indicating radio interference from unknown noise sources.
The gateway, whose receiver is continuously monitoring the selected
communications channel frequency, will monitor the current channel
transmission quality. Channel quality is determined both by the
presence of undesirable noise as well as occupancy by other
gateways.
[0049] Measurement of undesirable noise is performed by enabling
the receiver and periodically sampling the receiver's low noise
amplifier receive signal strength indicator. This signal is
proportional to the amount of power detected in the radio channel
at the selected frequency band. The periodic sampling records both
the average and peak values over a specified sampling period. If
either peak or average values are measured to be above predefined
constants (this detects both ambient noise and burst transmission
interference), then the channel is removed from the candidate
channel list.
[0050] To detect occupancy gateway 104 (or 104, 116, and 118) both
actively and passively solicits the presence of other gateways on
the candidate frequency channel. In this mode, the gateway requests
a reply from any nearby gateways on the same frequency channel. The
gateway then receives responses any from responding gateways. At
the same time, the channel is passively monitored for transmissions
between any nearby one or more internet products 102 and gateways.
During the listening period, the total number of bytes in all
received packets is summed. This value is used to estimate the
channel occupancy ratio. If this occupancy ratio exceeds a
threshold value, the channel is considered occupied and removed
from the candidate list. Once all channels have been scanned for
noise and occupancy and the undesirable channels removed from the
candidate list as described above, gateway 104 (or 104, 116, and
118) selects the active frequency channel through a uniformly
random selection from the candidate list.
[0051] The internet product to gateway CRP 106 is described in the
following sections. FIG. 2 is a functional diagram illustrating the
scan 200 frame used as an internet product scan for gateways
according to an embodiment of the present invention. Scan 200 is
sent once one each hopping channel at initial system
synchronization to locate gateways. Scan 200 has a maximum transmit
time for initiating one or more internet products 102 or gateway
104 (or 104, 116, and 118) of 1.92 ms or for the gateway of 2.8 ms.
The scanning frame is shown for use with either handset or USB
dongle. Scan 200 frame includes Scan ACK packet TX 201 which
includes an 11 byte header field, a 0-11 byte payload field, and a
2 byte cyclic redundancy check (CRC) field. The header includes a
destination address field of 4 bytes, a 4 byte source address
field, a 1 byte length field, a 1 byte flags field, and a 1 byte
sequence number field.
[0052] FIG. 3 is a functional diagram illustrating the poll 300
frame used for gateway 104 (or 104, 116, and 118) to one or more
internet product 102 data transfers according to an embodiment of
the present invention. Poll 300 has a polling frequency of 1 Hz,
and has a maximum transmit time for gateway 104 (or 104, 116, and
118) of 15.52 ms or for the one or more internet products 102 of
3.84 ms. The polling frame is shown for use with either handset or
USB dongle. Poll 300 frame includes Data packet TX 301 which
includes an 11 byte header field, a 0-147 byte payload field, and a
2 byte cyclic redundancy check (CRC) field. The header includes a
destination address field of 4 bytes, a 4 byte source address
field, a 1 byte length field, a 1 byte flags field, and a 1 byte
sequence number field.
[0053] FIG. 4 is a functional diagram illustrating the data 400
frame used for one or more internet products 102 to gateway 104 (or
104, 116, and 118) data transfers according to an embodiment of the
present invention. Data 400 has no maximum transmit frequency, has
a maximum of 2 retries with exponential back off, and has a maximum
frame transmit time for one or more internet products 102 of 13.6
ms or for gateway 104 (or 104, 116, and 118) of 1.92 ms. The data
frame is shown for use with either handset or USB dongle. Data 400
includes Data packet TX 401 which includes an 11 byte header field,
a 1-147 byte payload field, and a 2 byte cyclic redundancy check
(CRC) field. The header includes a destination address field of 4
bytes, a 4 byte source address field, a 1 byte length field, a 1
byte flags field, and a 1 byte sequence number field.
[0054] An embodiment for multiple data transfers to and from a
single gateway 104 (or 104, 116, and 118) by one of one or more
internet products 102 is described next. Each one or more internet
products 102 is limited to one data 400 or poll 300 frame transfer
attempt per 100 ms. Likewise the gateway will not respond to more
than one data or poll request within any 100 ms time frame. Since
each internet product may be actively associated with only one
gateway, it will not send more than one data or poll frame in any
100 ms time interval. Since the gateway may be connected to up to 4
internet products, which are not time synchronized, the gateway
will delay responding to any data or poll packets that arrive
within 100 ms of any previous data or poll packet. This is required
to achieve Federal Communications Commission (FCC) mandated
activity duty cycling.
[0055] For one or more internet products 102 initiated data 400
frames, the delay is guaranteed by the carrier sense multiple
access (CSMA) exponential back-off algorithm,
T.sub.backoff=100+rand[0-15]<<retry# ms.
For any successful data 400 or poll 300 frame transfer, there is a
100 ms delay on the transmitter lock to prevent any additional
frames from being transmitted.
[0056] FIG. 5 is a functional diagram illustrating the procedure
500 of one or more internet products 102 scanning to find one or
more gateways 104 (or 104, 116, and 118) using 16 available
channels as an example according to an embodiment of the present
invention. The internet product performs a scan for all gateways
after user login and when the user selects `Reconnect` from the
menu options. This can also automatically be performed upon loss of
connection or when receive signal strength indicates poor
connectivity to the currently associated gateway. The scan for
gateways is performed by sending scan frames sequentially on each
available channel. The scan 200 frames are separated by a 20 ms
back-off period. The maximum total transmit time from any internet
product in a 100 ms period would be,
ceil(100/(20+1.92))*1.92 ms=9.6 ms.
[0057] FIG. 6 is a functional diagram illustrating the procedure
600 of polling when one of the one or more internet products 102 is
in sleep mode and connected to gateway 104 (or 104, 116, and 118)
whereby the internet product will send a single poll 300 frame once
per second according to an embodiment of the present invention.
Poll 300 frames are sent to the associated gateway. There are no
retries for any lost sub-frame elements in the poll frame. Lost
data will be resent in the following poll frame occurring 1 second
later. The maximum transmission time for any internet product in
sleep mode during a 100 ms interval will be a single poll frame
(3.84 ms).
[0058] FIG. 7 is a functional diagram illustrating the procedure
700 of polling and scanning when the internet product is in sleep
mode and not connected to the gateway according to an embodiment of
the present invention. When one or more internet products 102 is in
sleep mode and not connected to gateway 104 (or 104, 116, and 118)
or if the connection to the associated gateway is lost during
sleep, the internet product will perform a new gateway scan 300
(see procedure 500 embodiment of internet product scan for gateways
above) once every 30 seconds instead of performing the normal poll
300 frame transmission. The internet product maximum transmission
time in any 100 ms interval will be the maximum of the poll frame
transmission and the scan for gateways given by,
MAX(3.84,9.6)=9.6 ms.
[0059] In one embodiment for the internet product in normal
operation there are both poll 300 frames transmitted once per
second as well as data 400 frames transmitted only when the
internet product user initiates some action through a key press.
The two frame types are asynchronous to one another with the
restriction that only one data or poll frame may be sent in any 100
ms time interval. FIG. 8 is a functional diagram illustrating the
procedure of data 400 frame transmitting with retries 800 during
normal operation according to an embodiment of the present
invention. The retry interval is given by the previously defined
exponential random back-off calculation. FIG. 9 is a functional
diagram illustrating the procedure 900 of poll 300 and data 400
frame transmitting when the poll frame is held during normal
operation according to an embodiment of the present invention. When
a data frame occurs within 100 ms of a scheduled poll frame
transmission time, the poll frame is held until the 100 ms delay
occurs. The maximum transmission time in any 100 ms interval will
be the maximum of a single poll or data frame given by,
MAX(3.84,13.6)=13.6 ms.
[0060] FIG. 10 is a functional diagram illustrating the procedure
1000 of scan 200 frame transmitting when the gateway is powered on
and selects a random channel according to an embodiment of the
present invention. When gateway 104 (or 104, 116, and 118) is
powered on, it selects a random channel i (where i is in the range
1 to 16 in this example). The gateway then sends a single scan 200
frame to test for existing gateways on the current channel. Gateway
then receives for 1 second to determine if the received signal
strength indication (RSSI) reading indicates too much noise on the
channel, which indicates potential interference from other
radiators. If no interference is found, the gateway will send an
additional scan frame to probe for existing gateways. If no other
gateways are found, the gateway proceeds to the operational mode.
If the channel is occupied by another gateway, or if there is
interference from other radiators on the current channel i, the
internet product will select a new random channel j between 1 and
16 and repeat the described channel probing process. The maximum
transmit time for a gateway during any 100 ms interval during
startup will be a single scan frame (1.92 ms).
[0061] FIG. 11 is a functional diagram illustrating the procedure
1100 of data 400 and poll 300 frame transmitting during normal
gateway 104 (or 104, 116, and 118) operation according to an
embodiment of the present invention. In this embodiment, the
gateway has no sleep or standby modes as detailed for the internet
product. Likewise the gateway does not initiate transmissions to
any handset other than in the gateway's power on stage described
above. Transmission time is limited at the gateway by servicing
only a single data 400 or poll 300 frame in any 100 ms interval. If
a data or poll frame arrives from another internet product within
100 ms of servicing any current poll frame, the response is delayed
until the 100 ms wait has transpired. The maximum transmission time
in any 100 ms interval will be the maximum of a single data or poll
frame given by,
MAX(1.92,13.6)=13.6 ms.
[0062] FIG. 12 is a functional diagram illustrating the procedure
1200 of data 400 and poll 300 frame transmitting when a second
internet product poll 300 is delayed by a first internet product
poll 300 frame during normal gateway operation according to an
embodiment of the present invention. If any poll or data 400 frame
arrives at the gateway within 100 ms of the previous poll or data
frame, the gateway will delay the ACK response packet until the 100
ms delay has occurred.
[0063] FIG. 13 is a functional diagram illustrating the previously
described IMS on UDP on IP packet 108, 114, 120, or 126 structures
according to an embodiment 1300 of the present invention. The
previously described CRP 106 packet (13-160 bytes) is loaded on a
UDP packet as a UDP payload. The UDP packet further has a 4 byte
UDP header and may have an added 20 byte IMS header. The UDP packet
is then loaded as an IP packet payload. The IP packet also has a 20
byte header. The total IMS packet is then 57-204 bytes long and
substantially smaller than the maximum standard web service UDP
packet length of 65,507 bytes. The practical limit for other
embodiments of an IMS packet length is estimated to be less than
500 bytes.
[0064] FIG. 14 is an operational flowchart illustrating process
steps performed by software functions in accordance with detecting
one or more internet products 102 by the internet product system
100 and a subsequent accessing or communication dialog between web
application server 122 and one or more internet products 102 in an
internet product system 100 according to an embodiment 1400 of the
present invention. In this embodiment description one or more
internet products 102 and gateway 104 (or 104, 116, and 118) are
combined into one or more electronic devices ((102, 106, and 104)
or (102, 106, 104, 116 and 118)), as would be obvious to one of
average skill in the art, to more easily teach the concepts of the
invention. It should be noted that, as previously described in
detail, the internet product may communicate in CRP within the
electronic device which in turn communicates in IMS protocol at
other connection points (108, 114, 120, or 126) within wireless
internet product system 100. Neither the internet product nor the
electronic device communicates directly in web service protocol 128
(XML/HTTP for example). Instead, both the internet product and the
electronic device rely on the rest of the invention to provide
translation and mapping of the simpler CRP and IMS protocols into
web service compatible protocol as outlined below. Also, to more
easily convey the concepts of the invention, IMS server 112 and
translation server 124 are singly combined into a proxy server (112
and 124).
[0065] At the start 1410, a dynamic IP address and port is
allocated 1412 to NAT firewall 110. The electronic device sends
1414 a sign-on message to the firewall. The NAT firewall attaches
1416 the IP address and port to the sign-on message and forwards
the combined sign-on message to the proxy server. The proxy server
sends 1418 a NAT firewall traversal information to the firewall.
The NAT firewall forwards 1420 the traversal information to the
electronic device. The electronic device sends 1422 a unique
identifier to the firewall. The NAT firewall forwards 1424 the
unique identifier to the proxy server. This completes the detection
phase of the procedure. The proxy server creates 1426 a mapping
between the unique identifier and the IP address and port. The
proxy server stores 1428 the mapping for later translation enabling
internet product system 100 to use the unique identifier as an
address throughout the system. The internet product's unique
identifier is recognizable even when an internet product's IP
address changes for instance if a product is moved from one gateway
environment to another or from one NAT firewall to another.
[0066] The next phase of the flow chart embodiment 1400 in FIG. 14
shows how web application server 122 accesses the electronic device
(and one or more internet products 102 within) in an access or
communication dialog. Web application server 122 sends 1430 an web
service protocol 128 (XML/HTTP) request to proxy server (112 and
124) using the unique identifier as an address for one of the one
or more electronic devices 102 (or one or more internet products
102 within). The proxy server translates 1432 the web service
protocol 128 XML/HTTP request to an IMS protocol 108 request.
[0067] Proxy server (112 and 124) maps 1434 the unique identifier
address used by the web application server to the previously stored
corresponding IP address and port of NAT firewall 110. The proxy
server sends 1436 the translated IMS request to NAT firewall 110.
The NAT firewall sends 1438 the IMS request to one of the one or
more electronic devices 102. The electronic device (internet
product) performs 1440 the request and then sends an IMS protocol
114 or 120 response to the firewall. The NAT firewall sends 1442
IMS protocol 108 response to proxy server 112 and 124. The proxy
server translates 1444 the IMS response to web service protocol 128
XML/HTTP response. The proxy server sends 1446 the translated web
service protocol XML/HTTP response to web application server 122
completing the accessing or communication dialog phase which ends
the entire sequence of steps 1448 of the flow chart embodiment
1400.
[0068] Various embodiments using the wireless internet product
system 100 are described next. One of these various embodiments of
the invention is an internet drawing pad that can be made as a toy
for children to create and share drawings and messages over the
internet, or as a communication device for adults to send drawings
and messages over the internet. One or more internet products 102
are made up of a touch screen display, a microcontroller and the
previously described low-power wireless radio. The user of the
drawing pad would use her finger tip or a stylus to create drawings
and or pictures on the touch-sensitive screen known to those
skilled in the art. The location of the pressed stylus or figure is
recorded on touch-sensitive sensor layers that overlay the screen.
The microcontroller converts the signals from the touch interface
to vertical and horizontal coordinates using standard touch screen
sensor methods known to those in the art. The horizontal and
vertical pixels corresponding to the locations of the pressed
screen are then recorded in the writable memory available to the
microcontroller and a bit map of the drawing or message is stored
in the memory of the drawing pad. The user of the internet drawing
pad can then choose to send the drawing to one of several locations
where the drawing or message can be viewed. In all cases the
message or drawing is sent through wireless internet product system
100.
[0069] Drawings or messages can be sent to one or more internet
drawing pads though internet product system 100 described above.
One method for addressing a drawing pad is to have each pad have a
unique serial number assigned to each unit at manufacture. Users
can enter the serial number of other pads to which they wish to
send drawings or messages on the drawing pad or enter the serial
numbers on a web application configuration page associated with the
user's drawing pad.
[0070] The drawing or message can also be sent to an email gateway
where the drawing or message will be attached to an email message
and sent to an email address. The drawing or message is passed to
an email gateway where the drawing or message will be sent to an
email address by web application server 122 that has both an
interface to IMS server 112 via the IMS protocol and to an email
server to send messages over a protocol such as simple mail
transfer protocol (SMTP). An email gateway is a special case of web
application server 122 that is connected to translation server 124
via web service protocol 128 interface and has a mail server known
to those skilled in the art, for sending and receiving data via
email. This email message will have an embedded or attached image
of the drawing or message that has been converted to a standard
internet format such as graphics interchange format (GIF) or joint
photographic experts group (JPEG) format.
[0071] The drawing or message can be sent to or from a web
application which uses a JAVA.RTM. or FLASH.RTM. interface to
capture a drawing or message made by a user on a web page. The user
would make this drawing by drawing with the mouse in a drawing pad
web application and, for example, clicking on a send button which
passes a message containing the drawing to the IMS server. The
message is then sent to an internet pad through internet product
system 100. Additionally, drawing or messages can be sent from the
internet pad to the web application and displayed to user on a
website. In one embodiment the website could be a social networking
website such as FACEBOOK.RTM. or MYSPACE.RTM.. Using the API
programming interface for the social networking site, drawings or
messages generated from pads could be displayed on the social
networking site. Similarly a control could be created to allow the
user on the social networking site to create a drawing or message
and send it to an internet pad. The social networking application
could directly communicate with IMS server 112 using the IMS
protocol or the application could use the web service interface
available through translation server 124.
[0072] The next of these various embodiments of the invention is
the embodiment where one or more internet products 102 are a
digital camera capable of taking still photos or movies. The camera
uses the radio internet system 100. On set up, a user can associate
one or more buttons on the camera with email addresses such that,
when a photo is taken and an email button is pushed, the image is
transferred though gateway 104 (or 104, 116, and 118) and IMS
server 112 to web application server 122 with an email interface
and sent to the email address corresponding to that button.
Pictures or videos can also be passed from the camera to web
application server 122. Then, using a web service interface, the
pictures or videos can be transferred to a photo printing and/or
media fulfillment company, which may create a photo or video
product such as a print or DVD, and send the media product to the
customer or another address the consumer selects. In one
embodiment, the home address of the user is entered on a
registration website when the camera is first purchased. When the
print button is pressed on the camera, the currently-selected or
displayed photo or photos are printed and mailed to the user's home
address automatically. In one embodiment, the photo is transferred
through the IMS network to an application which transfers the photo
via a web service interface to an album on a photo sharing site
hosted by a web application server.
[0073] The next of these various embodiments of the invention is
the embodiment where one or more internet products 102 is a room or
house alarm where a motion sensor on the alarm causes the alarm to
send a signal to IMS server 112 and to web application server 122
which stores the time of the alarm trigger on an alarm website. The
alarm is one or more internet products 102 and is connected to the
internet product system 100 described above. In one embodiment, the
owner of the alarm is automatically notified via email or short
message service (SMS) message of the trigger. In one embodiment,
the alarm, when triggered, takes a photo of the person or object
that triggered the alarm and sends the digital photo file along
with the alarm trigger signal to web application server 122 so that
the photo can be displayed on the alarm website to help the user
looking at the website understand the nature of the alarm.
[0074] The next of these various embodiments of the invention is
the embodiment where one or more internet products 102 is a piece
of health monitoring equipment such as a blood pressure sensor,
blood glucose sensor, pulse oxygen sensor, heart monitor, body
temperature sensor, or other medical or health sensor device
referred to hereafter as a "medical sensor". The medical sensor has
a radio system and is connected as an internet product to wireless
internet product system 100 described above. When a user uses the
medical sensor to make a measurement, the measurement data is sent
through internet product system 100 to web application server 122.
The application server can then send the information to a web
application that stores the medical data and presents it to the
user, a care provider, or a family member through a secure web page
hosted by the web application server.
[0075] The next of these various embodiments of the invention is
the embodiment where one or more internet products 102 is a piece
of exercise or weight training equipment such as a treadmill,
elliptical trainer, stationary bike, weight training machine, or
other exercise device referred to hereafter as "exercise
equipment". The exercise equipment is one or more internet product
102 and therefore has a radio system and is connected to wireless
internet product system 100 described above. When a user uses the
exercise equipment, exercise data such as time spent exercising,
calories burned, miles covered, difficulty settings, pace, and
other relevant exercise information is sent through internet
product system 100 to translation server 124 which then sends the
information on to a web application on web application server 122
that stores the exercise data and presents it to the user or the
users trainer through a web page. The exercise web page can also be
used to design exercise programs that can then be sent through the
internet product system 100 to the exercise equipment. Exercise
programs can contain information such as the duration of the
session, difficulty settings, changing profiles of difficulty and
pace over the time of the workout, and other relevant parameters.
If the exercise equipment is used by more than one person, the user
would authenticate when she first starts using the exercise
equipment by entering a pin number, swiping a magnetic card, using
a radio frequency identification (RFID) device, inserting a USB
device that contains authentication, or by using some other
authentication method known in the art. Once the user is
authenticated, the current exercise program is downloaded or a
pre-downloaded exercise program is loaded for the user. Also,
exercise data can be uploaded and associated with the correct user
after authentication has taken place.
[0076] The next of these various embodiments of the invention is
the embodiment where one or more internet product 102 is a
thermostat for residential or commercial buildings. The thermostat
installs as a standard programmable thermostat and replaces the
user's existing thermostat if one is present. The thermostat is one
or more internet product 102 and therefore has the radio described
above, and is connected to wireless internet product system 100. In
one embodiment of the thermostat, the user registers the thermostat
on a product registration website, entering in key characteristic
data for the house or commercial building that the thermostat is to
control. For example, such data could be the type, age and model
numbers of the heater and air conditioner for the building, the
input capacity of the heater and air conditioner, the zip code for
the building location, the age of the building and the HVAC system,
the efficiency of the heater and air conditioner, the square
footage or cubic footage of the building, the type of construction,
the number of windows, and/or any other data relevant to the
heating or cooling of the building. At registration, the user also
chooses a username and a password which set up a thermostat web
application account.
[0077] Web application server 122 delivers web pages to the user
which provide information and statistics gathered from the
thermostat and allow the user to control thermostat settings such
as the standard settings for a 7-day programmable thermostat, known
in the art. The thermostat web application sends data to and
collects data from the thermostat through web service protocol 128
interface on translation server 124.
[0078] The web application is connected to internet data sources
for weather information based on zip code, and sends outside
temperature and weather forecast information, including cloud
cover, rain, high and low temperatures for the day to the
thermostat to the thermostat for display.
[0079] All thermostat settings and thermostat temperature and time
program settings can be controlled though the web interface,
allowing control of the thermostat from any internet enabled
computer or device with a web browser and an internet
connection.
[0080] The thermostat can also be controlled by a utility company
or other authorized third party using the web service interface on
the application server or web application server 122. Example uses
include turning off the heater or air conditioner or temporarily
change the thermostat setting to reduce the energy demands the
heating ventilation air conditioning (HVAC) system is imposing on
the utility company's energy infrastructure. The thermostat and
thermostat web site can display if the user is enrolled in this
energy demand response system and whether the system is actively
limiting HVAC energy usage. The thermostat and thermostat website
can also provide information on the bonus accumulated by the user
for her participation in the demand response system.
[0081] To determine the efficiency of the house, an estimate of the
insulating efficiency of the house can be determined by raising the
temperature of the house above the outside air temperature. The
outside air temperature can be estimated since the user entered her
city or zip code for the house when the thermostat was registered
on the web page. The temperature for the zip code or city is obtain
through web service interfaces known to those in the art, and then
is sent from the thermostat web application server 122 to the
thermostat through the wireless internet product system 100. Once
the temperature is above the estimated outside air temperature, the
heater is turned off and the decay of the inside temperature is
measured. Using the square footage measurement and other structure
data entered by the user, and the rate of loss of heat as compared
the size and characteristics of the structure, an estimate of
heating or cooling loss can be recorded and presented to the user
to provide information about how efficient the structure is.
[0082] The thermostat system also records how changes in the inside
temperature setting selected on the thermostat affect the number of
minutes per day that the heater or air conditioner must run to keep
the structure at the set temperature. Once the number of minutes
the heater must run is known, estimates of the cost of gas or
electricity can obtained from regional averages or from pricing
data from the users utility. In some cases the pricing data will be
automatically obtained from government utility, or third party
provider servers though the web service interface. Using the input
energy capacity estimate, the total time the heater or air
conditioner operated, and the cost of energy such as gas or
electricity purchased from the user's utility company, a total cost
estimate to heat and cool the structure can be obtained. Note that
if the user's utility uses time of day pricing to compute the
energy bill, the internet thermostat system will also record the
time of day of each heating or cooling cycle in order to compute to
total cost correctly.
[0083] The thermostat web application can also collect temperature
history and temperature projections for the zip code, city, or
address the user enters at registration time.
[0084] The internet thermostat system combines the structure data
and temperature history to determine the estimated cost for heating
and cooling the house in the future for a given set of temperature
settings and program times. This allows the user to make "what-if"
changes to her temperature settings and or thermostat program to
see the estimated cost or savings of such a change over a time
period of her choosing, for example one year. This estimate can be
computed by the internet thermostat system in real time and
displayed both on the thermostat website and on the display of the
thermostat itself.
[0085] As the user changes the thermostat setting or changes the
thermostat program, the thermostat calculates and totals the cost
expense for the next day, week, month and year and presents them
the user to help her evaluate the cost associated with energy
choices. The difference in cost from the previous thermostat
setting is also presented to help the user understand a cost or
benefit projection due to her change in the thermostat temperature
setting or thermostat program.
[0086] The next of these various embodiments of the invention is a
small internet information display device which consists of a
low-cost display containing the radio system, a microcontroller, an
LCD controller, and driver hardware and software for controlling
the display and processing input familiar to those skilled in the
art. The internet information device is one or more internet
product 102 and connects to wireless internet product system 100
described above. Information such as current and forecasted
weather, stock and index prices, traffic maps with congestion
illustrations, and/or movie ratings and times are gathered by a web
application and sent to the application server to be distributed to
the internet information display device.
[0087] In one embodiment of the internet information display
device, the user registers the device on a product registration
website entering in the key data characteristics for the use of the
device such as the user's zip code, work commute destination, email
server settings, account and login information for social
networking sites such as FACEBOOK.RTM., and instant messaging
service such as AIM.RTM., YAHOO.RTM. INSTANT MESSENGER.RTM. or
MICROSOFT.RTM. MESSENGER.RTM., etc. At registration the user also
chooses a username and a password, which sets up a website account
on web application server 122. The web application server hosts web
pages that the user uses to change which information will be
downloaded and displayed on his internet information display
device.
[0088] The information device will then display the information
types selected by the user on the display. In one embodiment, this
information is constantly displayed on the screen. If there is more
information than one screen can display, the device will display
each screen for short period of time before changing to the next
screen of information, freeing the user from having to touch
buttons on the display to retrieve information. This makes the
information display useful if the user looks at it from a distance,
as no buttons will need to be pressed, which improves ease of use
for the device.
[0089] In one embodiment, the user enters on the website associated
with the display device, various alternative routes used in his
commute. The web application uses web service interfaces to other
web servers and web applications to get an estimated trip time for
each possible route, factoring in the effects of current traffic
congestion along with an optional shortest-time-route that may or
may not have been entered by the user. The travel time for these
routes is computed by the web application using the normal methods
familiar to those in the art, and the travel times are transmitted
through wireless internet product system 100 described above and
displayed on the internet information device. The user can quickly
glance at the device and see the current travel times for different
routes to one or more chosen locations and pick the quickest route
based on current conditions. To make the device useful for
locations that are not preselected by the user, a map of the major
roads and freeways indicating real-time congestion levels can also
be displayed on the information device. The user's zip code and
other location information are used to determine which maps should
be sent to the information display device.
[0090] In one embodiment, web application server 122 queries the
instant messaging and social networking sites using the account
information provided by the user on the internet information device
configuration web page. The web application then collects
information from the instant messaging service such as which
friends are currently online and sends this information to the
internet display device to be displayed. The advantage the device
provides is that the user only needs to look briefly at this device
to determine if friends are online and ready to communicate instead
of using a computer, personal digital assistant (PDA), or other
multi-purpose device the requires more operational overhead.
[0091] In one embodiment, applications are written for a social
networking site such as FACEBOOK.RTM. so that messages can be
written from a user's home page on the social networking site and
then passed to web application server 122 to be displayed on the
user's internet information device.
[0092] In one embodiment, the internet display device is used as a
client for a micro-blogging service such as TWITTER.RTM.. The web
application server 122 or web application uses the web service API
to send and receive messages between the micro blogging service and
the web application server or web application. The web application
server provides a configuration web page for the user to select
micro bloggers and/or automated information postings such as
weather and stock information that will then be automatically sent
from the micro blogging server to the web application server which
implements the micro blogging service API to send and receive
messages. The messages are then transmitted to the internet
information display device through wireless internet product system
100.
[0093] In one embodiment, web application server 122 queries the
user's email system using the account information provided by the
user on the internet device configuration web page. The web
application then collects email subject, sender, and partial first
email body text from the user's email service and sends this
information to the internet information display device to be
displayed. The advantage of using the internet device for this
purpose as opposed to a full email client is that the user only
needs to look briefly at this device to determine if an important
email has arrived and he needs to start his computer to deal with
it.
[0094] In one embodiment, the internet display device web
application server 122 takes information feeds such as an really
simple syndication (RSS) feed and/or updates on friends' pages on a
social networking site, sends this information through internet
product system 100, and displays the news feed information on the
LCD display.
[0095] The next of these various embodiments of the invention is
the embodiment where one or more internet product 102 is an
animatronic toy such as a toy robot, animatronic character, or
animatronic pet such as a dog, cat, or other animal. The
animatronic toy has motor controls to move or gesture and may also
have the ability to make sounds or play sound files. Some of these
toys will have the ability to play sound files such as stories and
coordinate animatronic movements to create the illusion that the
animatronic toy is a talking, as the toy moves and changes
expression though animatronic movements of eyes, mouth, eye brows,
ears, head, tail, hands and/or feet. The animatronic toy is an one
or more internet product 102, has the radio previously described
above, and is connected to wireless internet product system
100.
[0096] A web application hosted on the web application server 122
for the animatronic toy is created that has the following features.
The web application has a depiction of the animatronic toy which,
in this embodiment, is built using FLASH.RTM.. When the user
interacts with the FLASH.RTM. depiction, command signals are sent
to the animatronic toy which cause movement, actions, and sounds in
response to actions taken by the user on the web application. As an
example, the animatronic toy can be remotely controlled by the user
by dragging its hands and feet with the mouse, which triggers
physical movement of the hands and feet, and other items in the
animatronic toy.
[0097] There are also sensors for sound, light, and position for
the animatronics that allow activity or movement of the animatronic
toy to be sensed and transmitted through the wireless internet
product system 100 to the web application and trigger changes in
the depiction of the animatronic toy on the web page.
[0098] Similarly, web games can be played where, during the game,
signals are sent to and received from the animatronic toy to
provide information to the web game and affect the web game
outcome. In this way the animatronic toy becomes an input and
output device for the web game. In one embodiment, the animatronic
toy can be used to interact with online virtual words. For example,
success in the activities and games in an online world leads to
signals being sent down to the animatronic toy to unlock new
capabilities such as the animatronic toy being able to be used to
detect a sound in your room, sound an alarm, and sent a signal that
will be recorded by the web application.
[0099] In one embodiment, the animatronic toy senses that it is
being played with through accelerometer sensors, motion sensors,
sound sensors, and proximity sensors, and sends this activity
information to the web game or virtual world, where the user is
rewarded for the play time with online bonuses. Bonus can be used
as online currency to purchase virtual items, virtual real-estate,
or abilities in the virtual world.
[0100] In one embodiment, data from the motion sensors of one
animatronic toy can be sent through internet product system 100 to
another animatronic toy. When a user moves the motor and
sensor-enabled parts on the animatronic toy, another animatronic
toy linked to the first toy moves to mimic the positions of the
first toy. Both animatronics toys need only be connected to
internet product system 100. They can be controlled over distance
this way with one toy being the controller and the second toy being
controlled by the movements of the first toy.
[0101] The next of these various embodiments of the invention is
the embodiment where one or more internet product 102 is a handheld
or table-top game such as an electronic version of a game TV show,
chess, checkers, poker, blackjack, craps or other such games. The
game is an internet product 100 and therefore includes the radio
system described above and is connected to the wireless internet
product system 100 described above. The game allows the user to
connect to one or more users with compatible devices or compatible
web applications on web browsers to play a game. The user can
select an unknown player of a similar skill level as computed by
win/lose record, or may select a friend's screen name to indicate
what opponent she would like to play against. The game internet
product system is also connected to a game web application that
provides a way for users to play games with other users though any
web browser since the web application provides a JAVA.RTM. or
FLASH.RTM. representation of the game that send the same movement
and commands as the internet product game and therefore any
combination of web browser or internet product players may play
each other.
[0102] In one embodiment, when the user creates a high score on the
game the high score is transmitted to all game devices or a subset
of the game devices connected to wireless internet product system
100 so that all users will see the name or initials of a new top
player along with the player's high score.
[0103] In one embodiment new game play content such as questions,
topical trivia, sports statistics and other fresh content are
downloaded to the games through wireless internet product system
100.
[0104] For all the above applications, content can be downloaded
from web application server 122 to one or more internet product 102
without requiring any intervention from the user as the low power
radio subsystem can remain on and always connected and therefore
always ready to receive new content even when the internet product
is in the off mode since this off mode does not turn off the radio
subsystem. This always-on connection even when the internet product
is nominally off is possible because of the low power requirements
of the radio hardware and CRP protocols.
[0105] Foregoing descriptions of specific embodiments of the
invention have been presented for purposes of illustration and
description. They are not intended to be exhaustive or to limit the
invention to the precise forms disclosed. Modifications and
variations are possible in light of the above teaching. For
example, applicant contemplates that present invention may be
applied for various purposes, such as economizing use and
optimizing storage of fossil fuels or other non-fossil energy
conservation, as well as bioinformatic/biohazard or other remote
sensor application for homeland security and defense or
anti-terrorist surveillance or control functions.
[0106] The embodiments were chosen and described in order to
explain the principles and the application of the invention,
thereby enabling others skilled in the art to utilize the invention
in its various embodiments and modifications according to the
particular purpose contemplated. The scope of the invention is
intended to be defined by the claims appended hereto and their
equivalents.
* * * * *