US20190036727A1 - System And Method For Coupling A Digital Appliance To A Monitoring Service - Google Patents
System And Method For Coupling A Digital Appliance To A Monitoring Service Download PDFInfo
- Publication number
- US20190036727A1 US20190036727A1 US16/151,757 US201816151757A US2019036727A1 US 20190036727 A1 US20190036727 A1 US 20190036727A1 US 201816151757 A US201816151757 A US 201816151757A US 2019036727 A1 US2019036727 A1 US 2019036727A1
- Authority
- US
- United States
- Prior art keywords
- digital
- monitoring application
- appliance
- service
- device monitoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims description 55
- 230000008878 coupling Effects 0.000 title description 5
- 238000010168 coupling process Methods 0.000 title description 5
- 238000005859 coupling reaction Methods 0.000 title description 5
- 238000004891 communication Methods 0.000 claims abstract description 65
- 230000004044 response Effects 0.000 claims abstract description 9
- 230000001413 cellular effect Effects 0.000 claims description 37
- 238000001514 detection method Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 30
- 238000013515 script Methods 0.000 description 22
- 230000006855 networking Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 238000013499 data model Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/283—Processing of data at an internetworking point of a home automation network
- H04L12/2832—Interconnection of the control functionalities between home networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/281—Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/2812—Exchanging configuration information on appliance services in a home automation network describing content present in a home automation network, e.g. audio video content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/20—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
- H04W4/21—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L2012/284—Home automation networks characterised by the type of medium used
- H04L2012/2841—Wireless
Definitions
- This invention relates to data communications and, more particularly, to data communication between digital appliances and application services.
- Social networking services such as MySpace and Facebook
- Online photo services such as Flickr, Picasa, and Photobucket
- Some online photo services also enable people to share their photos with other users of the same service in a similar fashion to the popular social networking services previously noted.
- Wi-Fi routers To avoid lengthy cables in a home or small office environment, many of these locations use wireless routers to communicate wirelessly with computers located in the home or office.
- the wireless router enables the computers wirelessly coupled to it to access the Internet.
- Wi-Fi routers include a wireless transceiver and computer that typically implement the 802.11b, 802.11a, 802.11g, 802.11n, or some other known wireless communication standard that supports Internet or other wide area network communications between the devices coupled to the wireless LAN and those available through an ISP.
- Such appliances may include, for example, A/V receivers, digital picture frames, Internet radios, network music players, and the like.
- a digital picture frame may couple to a digital picture frame server.
- the digital picture frame server manages an account for a digital picture frame and enables a user to identify one or more sources for pictures to be displayed on the registered frame.
- the source for example, may be identified as a particular person's photo album at a photo service site, such as Flickr.
- the digital picture frame server receives image updates from previously identified sources as those sources are changed and stores the pictures in a photo space for the digital frame at the server.
- this photo space is an aggregation of these multiple sites so the digital frame does not have to query each photo or image service for pictures.
- the digital frame queries the digital picture frame server for the update photos that have been downloaded to the digital frame's photo space. Once these update photos have been received and stored in the digital frame, the frame commences display of the new images in the frame.
- a service specific server enables a digital picture frame to couple to a service application executing on the server, such as Facebook, and receive images from all of the photo albums available at that site.
- the device specific server and the service specific server enable digital picture frames to receive images from third party application services, they suffer from a number of limitations. Among these limitations is the ability to select specific content for a frame from a particular service application. For example, a user having a Facebook account may store multiple photo albums at the user's site in Facebook. The content of some of the photo albums may be appropriate for display at a frame located at one's home, but inappropriate for display at a frame located at business premises.
- the ability to specify which photo albums of a user or that user's friends at a social networking site may be accessed for display is unavailable. Additionally, the ability to access multiple service application sites directly is unavailable. Being able to access more sources directly and to enable the selective downloading of content from specific photo albums are desirable.
- Another limitation of current service servers is their dependency on special tags to identify content on the server site.
- the server When a user uploads content to the server site, the server enables the user to identify a tag by which the content may be accessed. If a user does not label the photos, albums, or other content with a tag, then the content does not appear on the devices that use the special user-defined tags to access the content. Consequently, a user is unable to search for the particular album, photo, or other content associated with an undefined user tag.
- a system enables digital appliances to couple to third party application services directly.
- the system includes a device regulation/support site configured to generate a script program and a data template, and a digital appliance that selectively couples to the device regulation/support site and receives the script program and data template from the device regulation/support site, the digital appliance executes the script program with reference to the data template to couple directly to a third party application service and query the third party application service for data.
- the system supports a method for enabling a digital appliance to communicate with a third party application service directly.
- the method includes selecting a script program at a device regulation/support site, generating a data template for the script program at the device regulation/support site, receiving the script program and data template at a digital appliance, executing the script program with reference to the data template at the digital appliance, coupling the digital appliance executing the script program directly to a third party application service, generating and sending with the digital appliance a query for data from the third party application service, and transmitting data from the third party application service to the digital appliance in response to the query received from the script program executed by the digital appliance.
- the system and method may be used to support a method for completing a transaction with a third party application service.
- the method includes sending a query for data from a digital appliance to a third party application service, displaying on the digital appliance data returned from the third party application service in response to the query, generating and sending a transaction request to the third party application service that corresponds to a portion of the displayed data, obtaining transaction data, generating a transaction identifier, sending the transaction identifier to a mobile telephone, and storing the transaction identifier in the mobile telephone.
- FIG. 1 is a diagram of a system that enables a wireless digital appliance to communicate with third party applications in accordance with rules stored at a device regulation/support site.
- FIG. 2 is an example display of a setup wizard used to obtain registration data for a digital appliance.
- FIG. 3 is an example display of a setup wizard used to obtain location data for a digital appliance.
- FIG. 4 is an example display of a setup wizard used to obtain photo sharing service data for a digital appliance.
- FIG. 5 is an example display of a setup wizard used to obtain ancillary service data for a digital appliance.
- FIG. 6 is an example display of a data object that enables a user to send a message identifying a digital appliance to a mobile telephone for storage in an address book.
- FIG. 7 is an example display of a data object that enables selection of particular albums of a user and a user's friend at a third party application service.
- FIG. 8 is a general data model for information stored in the regulation/support site shown in FIG. 1 .
- FIG. 9 is a block diagram of system layers in a digital appliance in FIG. 1 .
- FIG. 10 is an overview of message pathways enabled by the system of FIG. 1 .
- FIG. 11 is a flow diagram of a process enabled by a widget received from the regulation/support site of FIG. 1 .
- FIG. 12 is a flow diagram of an alternative process for selectively receiving and storing digital content in the digital appliance using a wireless wide area network.
- FIG. 13 is a diagram of a system that enables a wireless digital appliance to communicate with monitoring applications for data analysis and be configured for communication by a device regulation/support site.
- FIG. 14 is a flow diagram of a provisioning process performed by the device regulation/support site of FIG. 13 .
- FIG. 15 is a flow diagram of an over-the-air process performed by the device regulation/support site of FIG. 13 .
- FIG. 1 A system that supports digital appliances and enables communication between mobile devices, digital appliances, and applications servers is shown in FIG. 1 .
- the system 10 includes a home location 14 , a remote site location 18 , a device regulation/support site 20 , an internet service provider site 24 , a SMS/MMS server 70 , a cellular network 74 , and mobile communication devices 80 1 and 80 2 .
- the sites and locations are coupled to one another through a computer network 28 and the SMS/MMS server 70 couples the cellular network 74 and the mobile communication devices to the computer network 28 .
- the computer network may be the Internet, the World Wide Web, WANs, LANs, and/or any other type or combination of types of computer communication networks.
- the home location has a local area network (LAN) that may include a personal computer (PC) 30 , a mobile computer communication device, such as an instant messaging terminal 34 , and a data receiving and displaying device, such as one or more LCD photo frames 32 .
- LAN local area network
- PC personal computer
- mobile computer communication device such as an instant messaging terminal 34
- data receiving and displaying device such as one or more LCD photo frames 32 .
- These devices communicate with the ISP site 24 or the device regulation/support site 20 through a wireless router 38 .
- the wireless router may wirelessly communicate with the devices at the home site 14 in accordance with one of the IEEE 802.11b, 802.11a, 802.11g, 802.11n, WiMax, or cellular network standards, for example.
- the PC 30 , photo frame 32 , and IM device 34 may access the ISP site 24 and through the ISP site access the device regulation/support site 20 .
- the wireless router 38 implements a network access controller that uses smart filters to select the packets that are communicated through the wireless gateway.
- the wireless gateway is involved in user authentication for regulating access to the network 28 coupled to the wireless router.
- the wireless router 38 may include or be coupled to an IP address allocation server. This server is sometimes known as a Dynamic Host Configuration Protocol (DHCP) server. Its function is to assign IP addresses to the devices coupled to the router so they have unique IP addresses for communication. The IP addresses most likely assigned to the devices coupled to the wireless router are private IP addresses. These private IP addresses are typically mapped to a single public IP address by a network address/port translator that is a component of the wireless router 38 .
- DHCP Dynamic Host Configuration Protocol
- the network address/port translator is able to determine the corresponding private IP address for messages received from the network 28 that only have the public IP address.
- the wireless router 28 may use Media Access Controller (MAC) addresses of the devices coupled to it for identifying the devices coupled to the wireless router.
- Photo frame 32 may operate in different modes based on the type of wireless router 38 that is available. In situations where wireless router 38 is a wireless wide area network (WWAN) router, such as a cellular data network including 3G and 4G connectivity, photo frame 32 may limit available options for downloading data. Due to bandwidth and cost constraints, photo frame 32 may limit the number of photographs that may be received via wireless router 38 during a given time period. Additionally, high-bandwidth functions including video streaming may be disabled while connected to a WWAN network. When photo frame 32 establishes a link with a higher bandwidth wireless local area network (WLAN), such as the 802.11 networks mentioned above, full functionality may be restored.
- WLAN wireless local area network
- the remote site 18 includes a wireless access device 40 through which another wireless device 44 , such as another LCD photo frame, may access the ISP site 24 and the device regulation/support site 20 .
- the wireless access device 40 may coupled more than one device at site 18 to the network 28 .
- a user may associate devices at more than one site with the device controls store at site 20 to push content to multiple sites.
- the ISP site 24 includes an ISP host server 48 .
- the ISP host server is a gateway to ISP services and typically requires a computer user attempting to access the ISP services to identify an ISP user account with a username and password.
- the ISP server 48 enables communication between devices, such as those at sites 14 and 18 , and third party application servers 50 1 to 50 n coupled to the network 28 .
- These third party application servers include web page hosting, email services, search engines, IM messaging, social networking sites, and the like.
- the servers and databases supporting these services may be coupled to the ISP host 48 through WANs, or LANs, including the Internet.
- the device regulation/support site 20 has been developed to support and enable digital appliances, such as IM messaging terminals, digital picture frames, and the like.
- the device regulation/support site 20 includes a device communication gateway 54 that communicates with a device database 58 , a profile server 60 , and a device controls database 64 .
- the device regulation/support site 20 provides support services for computer network communication devices that have been registered with the site. In order to provide these services, the regulation site 20 includes identification data for the devices supported by the site. These identification data are supplied to the site by the manufacturers of the digital appliances ( FIG. 10 ) and are stored in the device database 58 . These identification data are unique for each device.
- the profile server 60 enables users to select and customize device configurations that may be stored at the site by the profile server 60 .
- the device controls database 64 stores the controls and rules selected or generated by an administrative user for a device registered with the regulation/support site 20 . These are the rules and controls applied to communications made with a particular digital appliance registered with the site 20 . These rules and controls are referenced by a server at site 20 to evaluate communications received from digital appliances controlled through site 20 . Communications or device configurations identified in such communications are compared to the authorized rules and configurations stored in database 64 .
- Any non-compliant communications or configurations are overruled by site 20 and deleted from the non-complying device.
- Authorized rules applied through site 20 may change in response to the type of network connection established by a particular digital device. If the digital device is communicating via a WWAN network, then the types of digital content made available to the device may be restricted. The same device may receive the full array of approved digital content when it connects via a WLAN network.
- the servers of site 20 in system 10 reduce the risk that a user is able to access unauthorized content through an alternative account without application of the rules and controls. As long as a user is using a device registered with the site 20 , the rules and controls are applied to communications from the device regardless of the user account or name through which the instant messaging or communication service is being accessed.
- the SMS/MMS server receives data messages that are generated in a either the SMS or MMS server protocol.
- Digital appliances and the device regulation/support site 20 may generate textual data messages in a Short Message Service (SMS) server protocol for receipt by users having a cellular telephone number as an address.
- SMS server protocol messages are sent to the SMS/MMS server.
- the SMS server uses the cellular telephone number identified in the SMS server protocol message, the SMS server transmits an SMS message over the cellular network to a mobile communication device in a known manner.
- messages with pictorial information are generated in a Multimedia Service (MIMS) server protocol and communicated by the SMS/MMS server through the cellular network with mobile devices.
- MIMS Multimedia Service
- the mobile network communication devices may use a standard SMS application program and processor in the device to generate a SMS or MIMS message containing textual or pictorial data, respectively, corresponding to a reply entered by the device user.
- This message is sent to the SMS/MMS server 70 .
- the SMS/MMS server generates a data message in the SMS or MMS server protocol that includes the reply data and transmits the data message over the computer communication network 28 to the digital appliance that sent the SMS or MIMS server protocol message.
- the digital appliance parses the data messages received from the SMS/MMS server and evaluates them with reference to the downloaded rules.
- a user of a digital appliance cannot receive messages from a cellular telephone unless the cellular telephone communicates with the SMS/MMS server to which the digital appliance is coupled and unless no rule prevents the communication with that particular cellular phone number.
- the setup wizard generates a display such as the one shown in FIG. 2 to obtain registration information from the purchaser.
- the “Frame Auth Code” is a string of alphanumeric characters that the manufacturer associates with the frame. The purchaser enters this code, which uniquely identifies the frame, along with a user generated nickname for the frame.
- the user also identifies data corresponding to an existing account with the site 20 or that enables site 20 to generate an account for the user.
- the first user associated with a frame is the administrator for the frame, who can enable/disable the features, services, and widgets associated with a frame.
- site 20 confirms the existence of an account for the user or generates an account for the user, a second display is generated by the embodiment.
- This display ( FIG. 3 ) enables a user to enable information regarding the location for the digital frame.
- the location information is provided by the entry of a zip code where the frame is located.
- the location information enables the frame to receive data to be displayed regarding local weather, events, and time.
- the setup wizard may then enable the frame user to identify a default photo sharing service ( FIG. 4 ).
- Ancillary services may also be selected, such as open network music stations ( FIG. 5 ).
- the data entered in the data objects associated with the displays in FIG. 2 through FIG. 5 are stored in the profile database 60 . These data
- FIG. 6 Another display that enables a user to identify a source of pictures is shown in FIG. 6 .
- This display may be generated by the setup wizard or it may be an option that a user may select after a frame has been activated and operated.
- This display includes data objects for obtaining a cell phone number for a mobile telephone from which the user desires to receive images.
- a data object is also provided to obtain data identifying the cell phone provider.
- the cell phone service need not be entered by the user as the server(s) for the site 20 are able to identify the phone service from a query sent to a national registry.
- the server(s) of site 20 After this information is stored in the profile database 60 , the server(s) of site 20 generates a welcome text message that is sent via device communication gateway 54 , network 28 , SMS/MMS server 70 , and the cellular network 74 to the mobile phone associated with the cell number entered by the user in the display of FIG. 6 .
- the welcome message identifies the frame with the nickname given by the user and invites the mobile phone user to store the address in the message in the address book of the user's mobile phone. Thereafter, the mobile phone user can take a picture with the mobile phone camera, add a caption, if desired, and send it to the address stored in the address book of the mobile telephone.
- the picture is then sent as a text message through the cellular network 74 and SMS/MMS server 70 to the public address of the wireless router 38 , which converts the public address to the private address for the frame, and then to the frame for display.
- the site 20 manages the devices registered with the site by assigning times for the devices to communicate with the site 20 . These times may be periodic times, such as every five minutes, or a time for a next message may be assigned upon receipt of a message, such as a command to send site 20 a message twenty minutes from the current time. These messages identify the configuration of a device or the most recent or current communications occurring or being attempted by the device.
- the site 20 compares the configuration data and/or communication data to the device controls stored in database 64 . Any non-compliant configurations result in site 20 sending command messages to the device to delete non-conforming configuration elements or to add missing configuration elements.
- any unauthorized communications initiated or attempted by the device result in the site 20 commanding the device to cease the communication and deleting the content of the communication.
- the device responds to the communications from site 20 without the user being able to prevent execution of the commands.
- an administrative user can configure rules in the device controls database 64 that are imposed on the devices associated with the user's account regardless of modifications attempted by the person entrusted with the device.
- a user may use a PC to return to the site 20 to configure the frame further or to alter the settings for the frame.
- a page called a dashboard is displayed upon confirmation of a user account with the site 20 .
- the dashboard displays all of the digital appliances associated with a user account.
- the user may select a digital appliance for further configuration. For example, a user may select services to provide content to the appliance, identify a musical genre or specify internet radio stations for the appliance, alter the appliance name, or delete the appliance from the user's account.
- selection of photo services enables a user to select the photo albums from which pictures are sent to the digital frame currently selected for configuration.
- the selections are segregated into two groups: My Albums and My Friends' Albums. Under these two groupings, a listing of all albums available for selection is provided. By clicking a box adjacent an album, a user may select or deselect an album.
- the album listing under My Friends identifies each friend and the albums available from that friend.
- the identities of the friends were obtained from the social network site in response to the user selecting the social network site as an authorized source for the digital frame. These identities were then used by the servers of site 20 to locate and identify the albums associated with each friend.
- the albums are not downloaded to the site 20 , instead, the information necessary to query the social networking site for the albums is obtained by the site 20 .
- the site 20 then generates an appropriate data template that is used by a scripting program, as described in more detail below, to communicate with the social networking site.
- a scripting program as described in more detail below.
- the site 20 does not download and store images at the site 20 .
- the servers of site 20 use script programs, which are sometimes called widgets and gadgets, to enable digital frames and other digital appliances to couple directly to social networking sites to obtain image data.
- the script programs for each type and/or model of a digital appliance are the same to facilitate the selection and downloading of the programs to the devices.
- the data that enables the programs to perform tasks for different devices differently is obtained by the site 20 from the profile database 60 and the controls database 64 and used to populate a data template that is downloaded to a device for use during execution of the script program.
- a general data model such as the one shown in FIG. 8 , may be used.
- a user 200 has a profile 204 , which is stored in profile database 60 .
- a user 204 may have a plurality of digital appliances 208 associated with the user.
- Each appliance has a unique identifier obtained from the appliance manufacturer, which is stored in device database 58 .
- Each device has a plurality of settings 212 , which are also stored in the database 58 . These settings identify the musical skins, internet radio stations, location of the appliance, and other data relevant to the operation of the appliance and for updating the content of the appliance.
- Each device 208 has one package 216 associated with the device.
- the package 216 defines a group of scripting language programs that are related and dependent upon one another for operation particular appliances.
- a package 216 has a plurality of scripting language programs or scripts 220 . These scripts are programs that support a third party service application or that operate as gadgets or widgets to achieve particular functionality for a device.
- the scripts 220 are executed with data templates that are implemented in the XML format.
- one or more servers of site 20 recognize the device group to which a digital appliance belongs and assign a package for that device group to the device. This package includes keys for encrypting and decrypting message between the digital appliance and the servers of site 20 .
- One or more servers of site 20 also select a default set of scripts for the device that conform with the authorized activities for the device and then appropriate data is used to populate the data templates to provide a default set of device settings and services.
- these default scripts and data templates are modified with additional scripts for new services or new settings identified by a user or the default data templates may be modified with parameters obtained from the digital appliance configuration data entered by a user.
- These scripts and data templates are then downloaded to the digital appliance associated with a particular package in the general data model.
- These scripts and data templates are stored in the digital appliance.
- the script programs are executed with reference to the data templates perform functions for the device, such as updating content on the appliance from authorized service applications and/or generating reports for the site 20 . These reports are used by the site 20 to verify compliance with the rules and regulations for a device stored in the controls database 64 .
- the scripts and data templates downloaded for a digital appliance in one embodiment enable the digital appliance to communicate with internet radio stations, third party applications, such as Facebook, MySpace, Photobucket, Flickr, Picasa, Snapfish, Zphoto, and weather data sources, and select appropriate and authorized content for the device.
- the embodiment includes a gadget script and data template.
- the gadget script is a program that enables movie listing information to be displayed and ticket transactions conducted and the data template enables the gadget to obtain the listing information for theaters in the area identified by the location data and to transact ticket sales for movie showings selected from the displayed listings with the user's third party account or profile data from the site 20 .
- Other scripts that the servers of site 20 may send to a digital appliance in this embodiment include scripts that generate usage reports and other data regarding the sources accessed by the digital appliance.
- the digital appliances are enabled for communication with the servers of site 20 , the servers of third party applications, and other servers with the system capabilities shown in FIG. 9 .
- This system 300 provides a graphic user interface (GUI) layer 302 , an application layer 304 , a framework layer 308 , an operating system layer 312 , a base support package (BSP) 316 , hardware modules 320 , and the appropriate support integrated circuits 324 for the appliance.
- the GUI layer 302 includes a GUI 326 that has a skin that can be configured by a user using the dashboard described previously. Additionally, a manufacturer may provide specific bit maps and related display elements 328 to site 20 that can be downloaded for use by the system 300 .
- the application layer 304 includes a scripting engine 330 that executes the scripts downloaded from the site 20 .
- a manager 334 for content administration is also provided as well as a browser 338 for user communication with sites over the Internet.
- the framework layer 308 includes a component 342 for database operations, a component 346 for audio/visual content management, a component 350 for streaming content management, a component 354 for third party application management, a component 358 for network communication management, an OAL component 362 for implementing an operating system abstraction layer, and a component 366 for external storage management.
- the OS layer 312 includes a component 370 for communication with various operating systems.
- the OS layer 312 , the framework layer 308 , and the application layer 304 are all supported by a portable graphics library 374 .
- the BSP layer 316 includes the main processor and interface circuits 378 , the device drivers 382 , and other related support circuits 386 .
- Other hardware modules 320 include the circuitry dedicated to platform operation such as IM messaging terminal components 390 , storage drives 394 , and communication transceivers and tuners 398 .
- the silicon layer 324 refers to other application specific integrated circuits 400 , such as digital signal processors, and peripheral hardware 404 , such as audio encoder/decoders and video encoder/decoders.
- the term component refers to the programming instructions to implement a function, the circuit(s) that embodies a function, or a combination of both programming instructions and circuit(s).
- the term “configuration” for a device includes the software, script programs, data templates, and hardware components, or combinations thereof.
- the functionality of a system having digital appliances enabled with system 300 and the servers of a site 20 is shown in FIG. 10 .
- the system 500 enables users 504 to communicate with the servers 508 of a device support/regulation site to register and configure their digital appliances 512 .
- Manufacturers 516 of the digital appliances provide unique identifiers for the appliances. Additionally, the manufacturers are able to produce a common platform appliance and then specify the interface characteristics or features for appliances sold or otherwise distributed by particular sources 520 . These feature sets are defined in packages for devices and communicated by the manufacturers 516 to the servers 508 .
- the servers 508 authenticate the selections and identification of third party accounts with the third party applications 530 .
- Welcome messages for mobile phones are generated and sent to mobile phones 538 through an SMS/MMS interface 534 to enable the phone users to store readily available and easily discernible addresses for sending text messages and images to appliances 512 .
- the servers 508 In response to registration and configuration of the appliances, the servers 508 generate and download scripts with data templates to the appliances 512 . Execution of these scripts with reference to the appropriate data templates by the digital appliances enables the appliances to communicate directly with third party applications to obtain and update content from these sources. Consequently, the servers at site 20 do not operate as a bottleneck in the delivery of content to the appliances 512 .
- the system 500 enables widgets and gadgets to be selected and downloaded with data templates by the servers 504 that enable a digital appliance to coordinate a variety of transactions.
- a movie widget may be selected by the servers 504 and downloaded with a data template to a digital appliance enabled by system 300 to enable the system 10 to perform the process shown in FIG. 11 .
- a digital picture frame receives the movie widget and data template. As the digital picture frame executes the movie widget script with reference to the data template (block 600 ), the picture frame queries a third party application site for movies showing at a theater identified by the data template (block 604 ). The theater was previously selected by the user through the dashboard for the user's account.
- a user may operate the GUI of the picture frame to query for drill down data, which in this case includes the show times for a particular movie (block 612 ).
- drill down data which in this case includes the show times for a particular movie (block 612 ).
- the user selects a movie and show time by operating the GUI and the widget generates a transaction request for tickets to the selected showing (block 620 ).
- the transaction request may be sent to a third party application at which the user has an existing account or one that requires payment information for the transaction.
- the ticket transaction request may be sent to a third party ticket application, such as Fandango. This type of third party site requires users to have existing accounts for transactions and the data from such an account to used to support the transaction (block 624 ).
- third party sites may communicate with the servers 504 of site 20 to obtain credit card information from the user's profile to pay for the requested tickets (block 624 ).
- Either the third party application or the servers 504 communicate with the movie widget script to confirm the ticket request (block 628 ) and, if confirmed (block 632 ), complete the payment transaction securely with the third party application (block 636 ).
- a transaction identifier may be generated by third party application or the servers 504 and the transaction identifier may be transmitted via the SMS/MMS interface to the user's telephone identified in the user's profile (block 640 ). Additionally, a transaction record may be generated that is sent to the user's email account, which is also identified in the user's profile (block 644 ).
- the user then goes to the theater and displays the transaction identifier with the user's mobile telephone to view the movie. If the transaction request is not confirmed by the widget (block 632 ), the process terminates without a transaction being consummated.
- Other widgets are also supported by such a system. For example, a widget for a social networking site may generate updates for appointment changes for a group calendar kept by friends on such a site.
- a process 1200 for selectively sending digital content to a digital device such as photo frame 32 is depicted in FIG. 12 .
- Process 1200 selectively allows network communications between the digital device and one or more remote servers storing digital content.
- One network configuration that may employ process 1200 includes a digital device communicating with remote servers via a network that has restricted bandwidth and is subject to heavy network congestion. Examples of such networks include cellular data networks including 3G and 4G networks. As described above, the types of content sent to the digital device while using these networks may be restricted.
- Process 1200 describes a method for sending allowable digital content in a manner suited to networks subject to bandwidth and congestion constraints.
- process 1200 begins with a digital device, such as photo frame 32 , querying a server for a time when the digital device may begin downloading content data (block 1204 ).
- the server may be part of regulation/support site 20 .
- the server returns a time when the digital device may begin receiving stored content, also known as a “callback time”.
- the time may be determined based on various factors, including the time of day in the time zone where the digital device is active, the amount of time that has elapsed since the digital device last received content, and predicted network congestion for various times of the day based on network congestion measurements.
- the server sets a callback time to a time predicted to have a lower level of network traffic congestion present on the wireless network being used to send digital content to the digital device.
- the digital device waits for the appropriate callback time, and contacts the server to begin downloading content (block 1208 ).
- the device selectively deletes a portion of stored digital content in response to deletion instructions sent by the server (block 1216 ).
- the digital device proceeds to download the content from the server (block 1220 ).
- the amount of digital content downloaded may be regulated by the server to keep the amount of data traffic placed on the wireless network within a predetermined range.
- each callback may limit the amount of transferred data to a maximum transfer of 10 megabytes for each scheduled callback, although the transfer limit may be raised or lowered to accommodate various wireless networks.
- the digital device Upon receiving new digital content, the digital device displays a notification that new content is ready for viewing (block 1224 ). This notification may include an on-screen alert, or a notification sound may be played to announce the availability of newly downloaded content.
- the digital device periodically requests updated content by requesting a new callback time from the server in order to download new digital content (block 1204 ).
- FIG. 13 depicts a system 1300 that is used to manage communications between digital appliances and an application that communicates with a plurality of digital appliances 1312 .
- digital appliance means any device having a processor and connected components that enable the digital appliance to perform a predetermined task or function.
- the system 1300 includes a plurality of systems, digital appliances, and programs that communicate with one another through a wide area computer network 1304 , such as the Internet, a cellular service 1308 , or both the network and the cellular service.
- network 1304 supports HTTPS and MQTT communication protocols for the sending and receiving of messages between the various system components, particularly, the digital appliances 1312 , the stacks of the Device Monitoring Application 1316 , and the VASS 1324 .
- the digital appliances 1312 can be different devices, such as a police car pursuit notifier, a smartphone, a surveillance camera, and the like.
- Device types can also be different versions of the same kind of device.
- Device_Type1 could be a squad car tracker hardware version 1
- Device_Type2 could be the squad car tracker hardware version 2.
- the digital appliances generate data for a Device Monitoring Application 1316 that is connected to the internet 1304 through a Cloud Service 1320 .
- the Device Monitoring Application (DMA) 1316 is a system configured to provide services for the digital appliances. Such systems are typically implemented as application programs developed to store and analyze data generated by the digital appliances for the benefit of the purchasers and users of the digital appliances.
- a DMA is provided for each type of digital appliance and multiple versions of a DMA can be provided for different purposes, such as one version for development, one version for field tests, and another version for devices that are in use by customers. These different versions of the DMA are referred to as stacks in this document.
- the Device Authentication Service 1328 , Provisioning Service 1332 , the Over-The-Air Service 1336 , the IoT Connect Service 1340 , the IoT Billing Manager 1344 , and the IoT Administrator Service 1348 are a set of services that enables the stacks of the DMA 1316 to authenticate, provision, update, connect to cellular services, manage customer subscriptions, and generate administration reports for an inventory of digital appliances.
- the abbreviation “IoT” refers to the Internet of Things.
- Cloud Service 1320 is a cloud service IoT system such as Amazon Web Services (AWS).
- the Cloud Service includes an IoT registry of the digital appliances managed by the VASS 1324 .
- Cloud Service 1320 is used by the VASS and the stacks of the DMA 1316 to communicate with the digital appliances 1312 .
- cloud service means a site accessible through a computer network that provides infrastructure, software, or a platform to users.
- Provisioning is required for use of a digital appliance in an environment.
- the process of provisioning includes assigning ownership and enabling service for a digital appliance. These tasks are achieved by identifying the type of service to be used for communication, such as cellular, cloud service, or both cellular and cloud service; the stack of the DMA 1316 that monitors and services the digital appliance; and an organization within the DMA 1316 that owns the digital appliance.
- the device After a user has purchased a digital appliance, the device must be activated, authenticated, and assigned to a stack of the Device Monitoring Application 1316 and to an organization identified within the stacks of the DMA 1316 so the digital appliance can be enabled for Cloud or Cellular connectivity. The assignment is made through communications with the DMA 1316 .
- this assignment can begin with the user logging into an account in the DMA 1316 and entering a number printed on a label on the device, scanning a barcode on the device using a smartphone app, entering a random code generated by the appliance and displayed by the appliance, or interacting with the digital appliance with a communication device, such as an application program executing on a smartphone, over a Bluetooth or Wi-Fi channel.
- a communication device such as an application program executing on a smartphone
- a provisioning process 1400 is shown in FIG. 14 .
- the process begins with an un-configured digital appliance sending a hardware identification code, which in this document is called an authentication token or authtoken, to the DMA 1316 , which sends a message containing the authtoken to the VASS in the HTTPS protocol through the network 1304 (block 1404 ).
- a hardware identification code which in this document is called an authentication token or authtoken
- the phrase “corresponds to an authtoken stored in a database of authtokens” means the number on the label, bar code value, or displayed number is stored in the database or that a random number generated by the device has not already been associated with another digital appliance having a database record stored in the database.
- the Device Authentication service also verifies that the appliance has not been previously authenticated (block 1408 ).
- the provisioning process continues with the Device Authentication service generating a set of credentials within the DMA 1316 (block 1412 ).
- credentials refers to any textual data, numerical data, or combination of textual and numerical data that when installed in a digital appliance enable communication between the digital appliance, its DMA 1316 , and the VASS.
- the process determines whether the digital appliance communicates through the Cloud Service 1320 , the Cellular Service 1308 , or both the Cloud Service and the Cellular Service (block 1416 ).
- the appropriate communication service for connectivity between the DMA 1316 and the digital appliance 1312 is then configured for the Cloud Service 1320 (block 1424 ), the Cellular service 1308 (block 1420 ), or both services (block 1422 ).
- This enablement may also include a pre-defined security policy for the device within the DMA 1316 of the Cloud Service 1320 .
- One feature of this communication identification arises when the master database record for an authtoken identifies both Cloud Service and Cellular Service as being appropriate for communication. In that case, both communication services must be maintained.
- the VASS upon detection of the loss of cellular service, also disables Cloud Service communication until cellular service is restored.
- the provisioning process continues with the VASS returning a JSON encoded message containing the credentials and other connection-related programs and data templates via the HTTPS protocol to the DMA 1316 through the network 1304 (block 1428 ).
- the DMA 1316 transfers the data received from the VASS to the digital appliance 1312 over the channel used by the digital appliance to initiate the authentication process with the DMA 1316 (block 1432 ).
- the DMA 1316 can augment the VASS provided data with additional programs or configuration data during this transfer.
- the digital appliance receives the provisioning data generated by the VASS and the DMA through the Cloud Service and the network, it closes the communication channel used for authentication and uses the credentials, programs, and data templates to communicate with the DMA 1316 through the Cloud Service 1320 or the Cellular Service 1308 thereafter (block 1436 ). If the digital appliance cannot be authenticated (block 1408 ), the VASS returns an authentication failure message to the DMA 1316 through the network 1304 and the Cloud Service 1320 and this failure is handled by the DMA 1316 (block 1440 ). Once this provisioning process is finished for a digital appliance, the appliance is associated with an end-owner, which is identified within one of the stacks of the DMA 1316 .
- the owner identified in a stack of the DMA 1316 receives data from the digital appliances 1312 owned by the owner through MQTT topics of the stack, which speeds data reception over previously used HTTPS protocol for data collection. The process then waits for receipt of the next authentication token and repeats the provisioning of the appliance.
- the authtoken, credentials, and identification of the programs, data templates, and communication channel sent to a digital appliance are incorporated in a database record that is stored in a master database used by the VASS.
- Each database record in the master database has the same fields and formats.
- a single database is used by the VASS to control communication between the digital appliances 1312 and the DMA 1320 and its version appropriate for the digital appliance. That is, by having a master database record format that supports all digital appliance types and all DMAs and their versions only one VASS is required to support communications between the various digital appliances and their respective DMA versions.
- This database architecture is technologically significant because the system of FIG.
- VASS has an interface that is common for all DMA versions and digital appliances for which it controls communication. This common interface also enables a single VASS to support communications between all the different digital appliance types and their respective DMA versions.
- master database record means a data structure that has the same format and fields for all digital appliance types and all DMA versions. A master database record is stored in a single database in association with the authtoken obtained from each digital appliance supported by the single database.
- VASS This type of VASS is more secure since device identification data is stored at only one location, can be scaled more easily because entire new sites do not have to be developed, and can be extended to different types of digital appliances because the common interface has been proven to be robust for digital appliances that communicate in the manner supported by the VASS.
- a developer of appliance firmware provides firmware updates to the VASS for the updating of the digital appliances of a particular type in the field so those appliances do not have to be taken out of service for the update.
- the appliance firmware updates are specific to a given device type.
- a firmware release for a given device type can include multiple files, such as a bootloader, appliance application program, and modem firmware.
- the list of files for a firmware update is defined at the VASS as part of device type definition.
- the developer of the firmware assigns the firmware release a unique name or version identifier. Each file in the firmware is also given a version identifier. This identification allows a new release of the application portion of the firmware bundle for the appliance without the appliance having to download and update a modem firmware update as well.
- the developer can optionally supply a list of prior acceptable versions for each component or file of an appliance firmware bundle to potentially reduce the size of the download.
- the bootloader version 1.2 may be the current version, but the 1.0 or 1.1 version of the bootloader may also be acceptable for the firmware update.
- OTA over-the-air
- a firmware release can also be performed in accordance with a policy in the VASS that all appliances of a DMA, all appliances of an identified device type, all appliances owned by an identified stack, or all appliances under an identified organization should be running a specified version.
- the process continues with the generation of an OTA configuration program containing the overall firmware release name, the firmware components release names, their versions and prior acceptable versions, download source locations, and corresponding hashes (block 1508 ).
- This OTA configuration program is sent to the appropriate digital appliances through DMA, Cloud Service, and network (block 1512 ).
- each digital appliance receives the OTA configuration program, it checks the version of its current components (block 1516 ) and downloads any of the components not in the prior acceptable list (block 1520 ).
- the downloads are performed using the MQTT protocol to speed the downloading over the previously used HTTPS protocol.
- the appliance verifies the hash of the downloaded files (block 1528 ) and applies the update, if the hash verifies the transmission of the file (block 1532 ). Otherwise, an exception message is returned to the VASS (block 1536 ) for a retransmission attempt.
- an appliance reports completion of the upgrade to the VASS and the DMA (block 1540 ).
- the system 1300 and the processes 1400 and 1500 described above enable an organization that excels at data analysis to offload aspects of data collection, communication management, and hardware/firmware development to entities more capable in those areas.
- the VASS in particular, configures the digital appliances through provisioning and OTA processes to remain operational without having to be removed from service for updates or requiring appliances to have the most recent version of the firmware installed in the appliance at the time of purchase. These processes are accomplished without interfering with the ability of the DMA to receive data from the digital appliances for analysis and operating the digital appliances with reference to the received data.
- a DMA that monitors digital appliances that collect medical patient vitals or other medical data and return that data to the DMA for analysis so the DMA can operate the appliances to provide audible or visual indications of patient condition need not include the communication and appliance management in their application and devices since those services are provided by the VASS.
- the separation of these tasks enables the entities of these respective roles to focus on the tasks for which they have developed expertise.
- the entities that purchased or leased the digital appliances is able to receive effective utilization of the digital appliances in their enterprises.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present application is a continuation-in-part application that claims priority to pending U.S. patent application Ser. No. 13/321,507, which is entitled “System And Method For Coupling A Wireless Device To Social Networking Services And A Mobile Communication Device,” which was filed on Nov. 18, 2011, and which issued as U.S. Pat. No. ______ on mm/dd/yyyy, and which claims priority to earlier filed PCT application PCT/US2010/034844, which is entitled “System And Method For Coupling A Wireless Device To Social Networking Services And A Mobile Communication Device,” which was filed on May 14, 2010, and which claims priority to earlier filed U.S. Provisional Application Ser. No. 61/179,506 entitled “System And Method For Coupling A Wireless Device To Social Networking Services And A Mobile Communication Device,” which was filed on May 19, 2009.
- This invention relates to data communications and, more particularly, to data communication between digital appliances and application services.
- Social networking services, such as MySpace and Facebook, are third party application services that enable users to communicate with one another and share information, such as multimedia, music, digital images, and the like. Online photo services, such as Flickr, Picasa, and Photobucket, are commonly used by users who upload their digital pictures to them so that they can view the pictures and share them with friends and families. Some online photo services also enable people to share their photos with other users of the same service in a similar fashion to the popular social networking services previously noted.
- To avoid lengthy cables in a home or small office environment, many of these locations use wireless routers to communicate wirelessly with computers located in the home or office. The wireless router enables the computers wirelessly coupled to it to access the Internet. By using a Wi-Fi router, computers in the home or office are coupled together in a LAN without requiring cables to be coupled between the computers and the router for communication purposes. Wi-Fi routers include a wireless transceiver and computer that typically implement the 802.11b, 802.11a, 802.11g, 802.11n, or some other known wireless communication standard that supports Internet or other wide area network communications between the devices coupled to the wireless LAN and those available through an ISP. Expanded use of wireless networking in the home, coupled with the broad availability of a variety of consumer media content in digital form has resulted in an increasing number of consumer appliances being offered with standard or optional wireless networking capability. Such appliances may include, for example, A/V receivers, digital picture frames, Internet radios, network music players, and the like.
- Currently, these devices may be coupled to social networking sites through a device specific or a service specific server only. For example, a digital picture frame may couple to a digital picture frame server. The digital picture frame server manages an account for a digital picture frame and enables a user to identify one or more sources for pictures to be displayed on the registered frame. The source, for example, may be identified as a particular person's photo album at a photo service site, such as Flickr. Thereafter, the digital picture frame server receives image updates from previously identified sources as those sources are changed and stores the pictures in a photo space for the digital frame at the server. When multiple sources have been identified for a digital frame, this photo space is an aggregation of these multiple sites so the digital frame does not have to query each photo or image service for pictures. Instead, the digital frame queries the digital picture frame server for the update photos that have been downloaded to the digital frame's photo space. Once these update photos have been received and stored in the digital frame, the frame commences display of the new images in the frame. A service specific server enables a digital picture frame to couple to a service application executing on the server, such as Facebook, and receive images from all of the photo albums available at that site.
- While the device specific server and the service specific server enable digital picture frames to receive images from third party application services, they suffer from a number of limitations. Among these limitations is the ability to select specific content for a frame from a particular service application. For example, a user having a Facebook account may store multiple photo albums at the user's site in Facebook. The content of some of the photo albums may be appropriate for display at a frame located at one's home, but inappropriate for display at a frame located at business premises. Currently, the ability to specify which photo albums of a user or that user's friends at a social networking site may be accessed for display is unavailable. Additionally, the ability to access multiple service application sites directly is unavailable. Being able to access more sources directly and to enable the selective downloading of content from specific photo albums are desirable.
- Another limitation of current service servers is their dependency on special tags to identify content on the server site. When a user uploads content to the server site, the server enables the user to identify a tag by which the content may be accessed. If a user does not label the photos, albums, or other content with a tag, then the content does not appear on the devices that use the special user-defined tags to access the content. Consequently, a user is unable to search for the particular album, photo, or other content associated with an undefined user tag.
- A system enables digital appliances to couple to third party application services directly. The system includes a device regulation/support site configured to generate a script program and a data template, and a digital appliance that selectively couples to the device regulation/support site and receives the script program and data template from the device regulation/support site, the digital appliance executes the script program with reference to the data template to couple directly to a third party application service and query the third party application service for data.
- The system supports a method for enabling a digital appliance to communicate with a third party application service directly. The method includes selecting a script program at a device regulation/support site, generating a data template for the script program at the device regulation/support site, receiving the script program and data template at a digital appliance, executing the script program with reference to the data template at the digital appliance, coupling the digital appliance executing the script program directly to a third party application service, generating and sending with the digital appliance a query for data from the third party application service, and transmitting data from the third party application service to the digital appliance in response to the query received from the script program executed by the digital appliance.
- The system and method may be used to support a method for completing a transaction with a third party application service. The method includes sending a query for data from a digital appliance to a third party application service, displaying on the digital appliance data returned from the third party application service in response to the query, generating and sending a transaction request to the third party application service that corresponds to a portion of the displayed data, obtaining transaction data, generating a transaction identifier, sending the transaction identifier to a mobile telephone, and storing the transaction identifier in the mobile telephone.
-
FIG. 1 is a diagram of a system that enables a wireless digital appliance to communicate with third party applications in accordance with rules stored at a device regulation/support site. -
FIG. 2 is an example display of a setup wizard used to obtain registration data for a digital appliance. -
FIG. 3 is an example display of a setup wizard used to obtain location data for a digital appliance. -
FIG. 4 is an example display of a setup wizard used to obtain photo sharing service data for a digital appliance. -
FIG. 5 is an example display of a setup wizard used to obtain ancillary service data for a digital appliance. -
FIG. 6 is an example display of a data object that enables a user to send a message identifying a digital appliance to a mobile telephone for storage in an address book. -
FIG. 7 is an example display of a data object that enables selection of particular albums of a user and a user's friend at a third party application service. -
FIG. 8 is a general data model for information stored in the regulation/support site shown inFIG. 1 . -
FIG. 9 is a block diagram of system layers in a digital appliance inFIG. 1 . -
FIG. 10 is an overview of message pathways enabled by the system ofFIG. 1 . -
FIG. 11 is a flow diagram of a process enabled by a widget received from the regulation/support site ofFIG. 1 . -
FIG. 12 is a flow diagram of an alternative process for selectively receiving and storing digital content in the digital appliance using a wireless wide area network. -
FIG. 13 is a diagram of a system that enables a wireless digital appliance to communicate with monitoring applications for data analysis and be configured for communication by a device regulation/support site. -
FIG. 14 is a flow diagram of a provisioning process performed by the device regulation/support site ofFIG. 13 . -
FIG. 15 is a flow diagram of an over-the-air process performed by the device regulation/support site ofFIG. 13 . - A system that supports digital appliances and enables communication between mobile devices, digital appliances, and applications servers is shown in
FIG. 1 . Thesystem 10 includes ahome location 14, aremote site location 18, a device regulation/support site 20, an internetservice provider site 24, a SMS/MMS server 70, acellular network 74, and mobile communication devices 80 1 and 80 2. The sites and locations are coupled to one another through acomputer network 28 and the SMS/MMS server 70 couples thecellular network 74 and the mobile communication devices to thecomputer network 28. The computer network may be the Internet, the World Wide Web, WANs, LANs, and/or any other type or combination of types of computer communication networks. The home location has a local area network (LAN) that may include a personal computer (PC) 30, a mobile computer communication device, such as aninstant messaging terminal 34, and a data receiving and displaying device, such as one or more LCD photo frames 32. These devices communicate with theISP site 24 or the device regulation/support site 20 through awireless router 38. The wireless router may wirelessly communicate with the devices at thehome site 14 in accordance with one of the IEEE 802.11b, 802.11a, 802.11g, 802.11n, WiMax, or cellular network standards, for example. Using thewireless router 38, thePC 30,photo frame 32, andIM device 34 may access theISP site 24 and through the ISP site access the device regulation/support site 20. - The
wireless router 38 implements a network access controller that uses smart filters to select the packets that are communicated through the wireless gateway. Typically, the wireless gateway is involved in user authentication for regulating access to thenetwork 28 coupled to the wireless router. Thewireless router 38 may include or be coupled to an IP address allocation server. This server is sometimes known as a Dynamic Host Configuration Protocol (DHCP) server. Its function is to assign IP addresses to the devices coupled to the router so they have unique IP addresses for communication. The IP addresses most likely assigned to the devices coupled to the wireless router are private IP addresses. These private IP addresses are typically mapped to a single public IP address by a network address/port translator that is a component of thewireless router 38. The network address/port translator is able to determine the corresponding private IP address for messages received from thenetwork 28 that only have the public IP address. Alternatively, thewireless router 28 may use Media Access Controller (MAC) addresses of the devices coupled to it for identifying the devices coupled to the wireless router.Photo frame 32 may operate in different modes based on the type ofwireless router 38 that is available. In situations wherewireless router 38 is a wireless wide area network (WWAN) router, such as a cellular data network including 3G and 4G connectivity,photo frame 32 may limit available options for downloading data. Due to bandwidth and cost constraints,photo frame 32 may limit the number of photographs that may be received viawireless router 38 during a given time period. Additionally, high-bandwidth functions including video streaming may be disabled while connected to a WWAN network. Whenphoto frame 32 establishes a link with a higher bandwidth wireless local area network (WLAN), such as the 802.11 networks mentioned above, full functionality may be restored. - The
remote site 18 includes awireless access device 40 through which anotherwireless device 44, such as another LCD photo frame, may access theISP site 24 and the device regulation/support site 20. Thewireless access device 40 may coupled more than one device atsite 18 to thenetwork 28. As described in more detail below, a user may associate devices at more than one site with the device controls store atsite 20 to push content to multiple sites. - The
ISP site 24 includes anISP host server 48. The ISP host server is a gateway to ISP services and typically requires a computer user attempting to access the ISP services to identify an ISP user account with a username and password. Once the ISP host server confirms a user account exists with the ISP, theISP server 48 enables communication between devices, such as those atsites network 28. These third party application servers include web page hosting, email services, search engines, IM messaging, social networking sites, and the like. The servers and databases supporting these services may be coupled to theISP host 48 through WANs, or LANs, including the Internet. - The device regulation/
support site 20 has been developed to support and enable digital appliances, such as IM messaging terminals, digital picture frames, and the like. The device regulation/support site 20 includes adevice communication gateway 54 that communicates with adevice database 58, aprofile server 60, and a device controlsdatabase 64. The device regulation/support site 20 provides support services for computer network communication devices that have been registered with the site. In order to provide these services, theregulation site 20 includes identification data for the devices supported by the site. These identification data are supplied to the site by the manufacturers of the digital appliances (FIG. 10 ) and are stored in thedevice database 58. These identification data are unique for each device. By allowing registration of only those devices made by particular manufacturers, the operator of the regulation site is assured that the devices have the requisite capabilities for the services supported by the site. Theprofile server 60 enables users to select and customize device configurations that may be stored at the site by theprofile server 60. The device controlsdatabase 64 stores the controls and rules selected or generated by an administrative user for a device registered with the regulation/support site 20. These are the rules and controls applied to communications made with a particular digital appliance registered with thesite 20. These rules and controls are referenced by a server atsite 20 to evaluate communications received from digital appliances controlled throughsite 20. Communications or device configurations identified in such communications are compared to the authorized rules and configurations stored indatabase 64. Any non-compliant communications or configurations are overruled bysite 20 and deleted from the non-complying device. Authorized rules applied throughsite 20 may change in response to the type of network connection established by a particular digital device. If the digital device is communicating via a WWAN network, then the types of digital content made available to the device may be restricted. The same device may receive the full array of approved digital content when it connects via a WLAN network. By applying the rules and controls to device communications, rather than account communications, the servers ofsite 20 insystem 10 reduce the risk that a user is able to access unauthorized content through an alternative account without application of the rules and controls. As long as a user is using a device registered with thesite 20, the rules and controls are applied to communications from the device regardless of the user account or name through which the instant messaging or communication service is being accessed. - The SMS/MMS server receives data messages that are generated in a either the SMS or MMS server protocol. Digital appliances and the device regulation/
support site 20 may generate textual data messages in a Short Message Service (SMS) server protocol for receipt by users having a cellular telephone number as an address. The SMS server protocol messages are sent to the SMS/MMS server. Using the cellular telephone number identified in the SMS server protocol message, the SMS server transmits an SMS message over the cellular network to a mobile communication device in a known manner. In a similar manner, messages with pictorial information are generated in a Multimedia Service (MIMS) server protocol and communicated by the SMS/MMS server through the cellular network with mobile devices. The mobile network communication devices may use a standard SMS application program and processor in the device to generate a SMS or MIMS message containing textual or pictorial data, respectively, corresponding to a reply entered by the device user. This message is sent to the SMS/MMS server 70. The SMS/MMS server generates a data message in the SMS or MMS server protocol that includes the reply data and transmits the data message over thecomputer communication network 28 to the digital appliance that sent the SMS or MIMS server protocol message. The digital appliance parses the data messages received from the SMS/MMS server and evaluates them with reference to the downloaded rules. Thus, a user of a digital appliance cannot receive messages from a cellular telephone unless the cellular telephone communicates with the SMS/MMS server to which the digital appliance is coupled and unless no rule prevents the communication with that particular cellular phone number. - More specific reference is now made to the structure and processes that enable the device regulation/
support site 20 to provide content to a digital picture frame in a novel manner. After a user has purchased a digital picture frame, the purchaser usesPC 30 to access the device regulation/support site 20 through an ISP. At thesite 20, the purchaser activates a setup wizard. In one embodiment, the setup wizard generates a display such as the one shown inFIG. 2 to obtain registration information from the purchaser. The “Frame Auth Code” is a string of alphanumeric characters that the manufacturer associates with the frame. The purchaser enters this code, which uniquely identifies the frame, along with a user generated nickname for the frame. The user also identifies data corresponding to an existing account with thesite 20 or that enablessite 20 to generate an account for the user. The first user associated with a frame is the administrator for the frame, who can enable/disable the features, services, and widgets associated with a frame. Aftersite 20 confirms the existence of an account for the user or generates an account for the user, a second display is generated by the embodiment. This display (FIG. 3 ) enables a user to enable information regarding the location for the digital frame. In this embodiment, the location information is provided by the entry of a zip code where the frame is located. The location information enables the frame to receive data to be displayed regarding local weather, events, and time. The setup wizard may then enable the frame user to identify a default photo sharing service (FIG. 4 ). Ancillary services may also be selected, such as open network music stations (FIG. 5 ). The data entered in the data objects associated with the displays inFIG. 2 throughFIG. 5 are stored in theprofile database 60. These data are used to provide image content to the frame. - Another display that enables a user to identify a source of pictures is shown in
FIG. 6 . This display may be generated by the setup wizard or it may be an option that a user may select after a frame has been activated and operated. This display includes data objects for obtaining a cell phone number for a mobile telephone from which the user desires to receive images. In the display ofFIG. 6 , a data object is also provided to obtain data identifying the cell phone provider. In some embodiments, the cell phone service need not be entered by the user as the server(s) for thesite 20 are able to identify the phone service from a query sent to a national registry. After this information is stored in theprofile database 60, the server(s) ofsite 20 generates a welcome text message that is sent viadevice communication gateway 54,network 28, SMS/MMS server 70, and thecellular network 74 to the mobile phone associated with the cell number entered by the user in the display ofFIG. 6 . The welcome message identifies the frame with the nickname given by the user and invites the mobile phone user to store the address in the message in the address book of the user's mobile phone. Thereafter, the mobile phone user can take a picture with the mobile phone camera, add a caption, if desired, and send it to the address stored in the address book of the mobile telephone. The picture is then sent as a text message through thecellular network 74 and SMS/MMS server 70 to the public address of thewireless router 38, which converts the public address to the private address for the frame, and then to the frame for display. - In order to ensure the devices are operating and communicating in accordance with the rules established for the devices, the
site 20 manages the devices registered with the site by assigning times for the devices to communicate with thesite 20. These times may be periodic times, such as every five minutes, or a time for a next message may be assigned upon receipt of a message, such as a command to send site 20 a message twenty minutes from the current time. These messages identify the configuration of a device or the most recent or current communications occurring or being attempted by the device. Thesite 20 compares the configuration data and/or communication data to the device controls stored indatabase 64. Any non-compliant configurations result insite 20 sending command messages to the device to delete non-conforming configuration elements or to add missing configuration elements. Likewise, any unauthorized communications initiated or attempted by the device result in thesite 20 commanding the device to cease the communication and deleting the content of the communication. As these communications are between the device andsite 20 without user intervention, the device responds to the communications fromsite 20 without the user being able to prevent execution of the commands. In this manner, an administrative user can configure rules in the device controlsdatabase 64 that are imposed on the devices associated with the user's account regardless of modifications attempted by the person entrusted with the device. - At any time after activation of a frame, a user may use a PC to return to the
site 20 to configure the frame further or to alter the settings for the frame. In one embodiment, a page called a dashboard is displayed upon confirmation of a user account with thesite 20. The dashboard displays all of the digital appliances associated with a user account. The user may select a digital appliance for further configuration. For example, a user may select services to provide content to the appliance, identify a musical genre or specify internet radio stations for the appliance, alter the appliance name, or delete the appliance from the user's account. - As shown in
FIG. 7 , selection of photo services enables a user to select the photo albums from which pictures are sent to the digital frame currently selected for configuration. The selections are segregated into two groups: My Albums and My Friends' Albums. Under these two groupings, a listing of all albums available for selection is provided. By clicking a box adjacent an album, a user may select or deselect an album. The album listing under My Friends identifies each friend and the albums available from that friend. The identities of the friends were obtained from the social network site in response to the user selecting the social network site as an authorized source for the digital frame. These identities were then used by the servers ofsite 20 to locate and identify the albums associated with each friend. The albums are not downloaded to thesite 20, instead, the information necessary to query the social networking site for the albums is obtained by thesite 20. Thesite 20 then generates an appropriate data template that is used by a scripting program, as described in more detail below, to communicate with the social networking site. By clicking a box adjacent an album, a user may select specific albums for a friend. Thus, albums that may not be appropriate for a frame located at a particular location can be avoided as sources for images, while a frame located in a more appropriate space may have such albums selected as image sources. - As already noted, the
site 20 does not download and store images at thesite 20. Instead, the servers ofsite 20 use script programs, which are sometimes called widgets and gadgets, to enable digital frames and other digital appliances to couple directly to social networking sites to obtain image data. The script programs for each type and/or model of a digital appliance are the same to facilitate the selection and downloading of the programs to the devices. The data that enables the programs to perform tasks for different devices differently is obtained by thesite 20 from theprofile database 60 and thecontrols database 64 and used to populate a data template that is downloaded to a device for use during execution of the script program. To support this capability, a general data model, such as the one shown inFIG. 8 , may be used. Auser 200 has aprofile 204, which is stored inprofile database 60. As already noted, auser 204 may have a plurality ofdigital appliances 208 associated with the user. Each appliance has a unique identifier obtained from the appliance manufacturer, which is stored indevice database 58. Each device has a plurality ofsettings 212, which are also stored in thedatabase 58. These settings identify the musical skins, internet radio stations, location of the appliance, and other data relevant to the operation of the appliance and for updating the content of the appliance. Eachdevice 208 has one package 216 associated with the device. The package 216 defines a group of scripting language programs that are related and dependent upon one another for operation particular appliances. A package 216 has a plurality of scripting language programs or scripts 220. These scripts are programs that support a third party service application or that operate as gadgets or widgets to achieve particular functionality for a device. - In one embodiment, the scripts 220 are executed with data templates that are implemented in the XML format. In response to device records being received from a manufacturer for digital appliances recently produced, one or more servers of
site 20 recognize the device group to which a digital appliance belongs and assign a package for that device group to the device. This package includes keys for encrypting and decrypting message between the digital appliance and the servers ofsite 20. One or more servers ofsite 20 also select a default set of scripts for the device that conform with the authorized activities for the device and then appropriate data is used to populate the data templates to provide a default set of device settings and services. Upon registration of the digital appliance with thesite 20, these default scripts and data templates are modified with additional scripts for new services or new settings identified by a user or the default data templates may be modified with parameters obtained from the digital appliance configuration data entered by a user. These scripts and data templates are then downloaded to the digital appliance associated with a particular package in the general data model. These scripts and data templates are stored in the digital appliance. At appropriate times, the script programs are executed with reference to the data templates perform functions for the device, such as updating content on the appliance from authorized service applications and/or generating reports for thesite 20. These reports are used by thesite 20 to verify compliance with the rules and regulations for a device stored in thecontrols database 64. - The scripts and data templates downloaded for a digital appliance in one embodiment enable the digital appliance to communicate with internet radio stations, third party applications, such as Facebook, MySpace, Photobucket, Flickr, Picasa, Snapfish, Zphoto, and weather data sources, and select appropriate and authorized content for the device. Additionally, the embodiment includes a gadget script and data template. The gadget script is a program that enables movie listing information to be displayed and ticket transactions conducted and the data template enables the gadget to obtain the listing information for theaters in the area identified by the location data and to transact ticket sales for movie showings selected from the displayed listings with the user's third party account or profile data from the
site 20. Other scripts that the servers ofsite 20 may send to a digital appliance in this embodiment include scripts that generate usage reports and other data regarding the sources accessed by the digital appliance. - The digital appliances are enabled for communication with the servers of
site 20, the servers of third party applications, and other servers with the system capabilities shown inFIG. 9 . Thissystem 300 provides a graphic user interface (GUI)layer 302, anapplication layer 304, aframework layer 308, anoperating system layer 312, a base support package (BSP) 316,hardware modules 320, and the appropriate support integratedcircuits 324 for the appliance. TheGUI layer 302 includes aGUI 326 that has a skin that can be configured by a user using the dashboard described previously. Additionally, a manufacturer may provide specific bit maps andrelated display elements 328 tosite 20 that can be downloaded for use by thesystem 300. Theapplication layer 304 includes ascripting engine 330 that executes the scripts downloaded from thesite 20. Amanager 334 for content administration is also provided as well as abrowser 338 for user communication with sites over the Internet. Theframework layer 308 includes acomponent 342 for database operations, acomponent 346 for audio/visual content management, acomponent 350 for streaming content management, acomponent 354 for third party application management, acomponent 358 for network communication management, anOAL component 362 for implementing an operating system abstraction layer, and acomponent 366 for external storage management. TheOS layer 312 includes acomponent 370 for communication with various operating systems. TheOS layer 312, theframework layer 308, and theapplication layer 304 are all supported by aportable graphics library 374. - With further reference to
FIG. 9 , theBSP layer 316 includes the main processor andinterface circuits 378, thedevice drivers 382, and otherrelated support circuits 386.Other hardware modules 320 include the circuitry dedicated to platform operation such as IMmessaging terminal components 390, storage drives 394, and communication transceivers andtuners 398. Thesilicon layer 324 refers to other application specificintegrated circuits 400, such as digital signal processors, andperipheral hardware 404, such as audio encoder/decoders and video encoder/decoders. As used herein, the term component refers to the programming instructions to implement a function, the circuit(s) that embodies a function, or a combination of both programming instructions and circuit(s). In a similar manner, the term “configuration” for a device includes the software, script programs, data templates, and hardware components, or combinations thereof. - The functionality of a system having digital appliances enabled with
system 300 and the servers of asite 20 is shown inFIG. 10 . Thesystem 500 enablesusers 504 to communicate with theservers 508 of a device support/regulation site to register and configure theirdigital appliances 512.Manufacturers 516 of the digital appliances provide unique identifiers for the appliances. Additionally, the manufacturers are able to produce a common platform appliance and then specify the interface characteristics or features for appliances sold or otherwise distributed byparticular sources 520. These feature sets are defined in packages for devices and communicated by themanufacturers 516 to theservers 508. Theservers 508 authenticate the selections and identification of third party accounts with thethird party applications 530. Welcome messages for mobile phones are generated and sent tomobile phones 538 through an SMS/MMS interface 534 to enable the phone users to store readily available and easily discernible addresses for sending text messages and images toappliances 512. In response to registration and configuration of the appliances, theservers 508 generate and download scripts with data templates to theappliances 512. Execution of these scripts with reference to the appropriate data templates by the digital appliances enables the appliances to communicate directly with third party applications to obtain and update content from these sources. Consequently, the servers atsite 20 do not operate as a bottleneck in the delivery of content to theappliances 512. - The
system 500 enables widgets and gadgets to be selected and downloaded with data templates by theservers 504 that enable a digital appliance to coordinate a variety of transactions. For example, a movie widget may be selected by theservers 504 and downloaded with a data template to a digital appliance enabled bysystem 300 to enable thesystem 10 to perform the process shown inFIG. 11 . In this example, a digital picture frame receives the movie widget and data template. As the digital picture frame executes the movie widget script with reference to the data template (block 600), the picture frame queries a third party application site for movies showing at a theater identified by the data template (block 604). The theater was previously selected by the user through the dashboard for the user's account. As the movies are displayed on the frame with the poster art (block 608), a user may operate the GUI of the picture frame to query for drill down data, which in this case includes the show times for a particular movie (block 612). After viewing the returned data (block 616), the user selects a movie and show time by operating the GUI and the widget generates a transaction request for tickets to the selected showing (block 620). The transaction request may be sent to a third party application at which the user has an existing account or one that requires payment information for the transaction. In the example being discussed, the ticket transaction request may be sent to a third party ticket application, such as Fandango. This type of third party site requires users to have existing accounts for transactions and the data from such an account to used to support the transaction (block 624). Other third party sites may communicate with theservers 504 ofsite 20 to obtain credit card information from the user's profile to pay for the requested tickets (block 624). Either the third party application or theservers 504 communicate with the movie widget script to confirm the ticket request (block 628) and, if confirmed (block 632), complete the payment transaction securely with the third party application (block 636). A transaction identifier may be generated by third party application or theservers 504 and the transaction identifier may be transmitted via the SMS/MMS interface to the user's telephone identified in the user's profile (block 640). Additionally, a transaction record may be generated that is sent to the user's email account, which is also identified in the user's profile (block 644). The user then goes to the theater and displays the transaction identifier with the user's mobile telephone to view the movie. If the transaction request is not confirmed by the widget (block 632), the process terminates without a transaction being consummated. Other widgets are also supported by such a system. For example, a widget for a social networking site may generate updates for appointment changes for a group calendar kept by friends on such a site. - A
process 1200 for selectively sending digital content to a digital device such asphoto frame 32 is depicted inFIG. 12 .Process 1200 selectively allows network communications between the digital device and one or more remote servers storing digital content. One network configuration that may employprocess 1200 includes a digital device communicating with remote servers via a network that has restricted bandwidth and is subject to heavy network congestion. Examples of such networks include cellular data networks including 3G and 4G networks. As described above, the types of content sent to the digital device while using these networks may be restricted.Process 1200 describes a method for sending allowable digital content in a manner suited to networks subject to bandwidth and congestion constraints. - Referring to
FIG. 12 ,process 1200 begins with a digital device, such asphoto frame 32, querying a server for a time when the digital device may begin downloading content data (block 1204). The server may be part of regulation/support site 20. The server returns a time when the digital device may begin receiving stored content, also known as a “callback time”. In the embodiment ofFIG. 12 , the time may be determined based on various factors, including the time of day in the time zone where the digital device is active, the amount of time that has elapsed since the digital device last received content, and predicted network congestion for various times of the day based on network congestion measurements. In one embodiment, the server sets a callback time to a time predicted to have a lower level of network traffic congestion present on the wireless network being used to send digital content to the digital device. The digital device waits for the appropriate callback time, and contacts the server to begin downloading content (block 1208). In situations where the digital device is set to download content that will exceed the available storage capacity in the device (block 1212), the device selectively deletes a portion of stored digital content in response to deletion instructions sent by the server (block 1216). Once the digital device has sufficient storage space to store new content, the digital device proceeds to download the content from the server (block 1220). The amount of digital content downloaded may be regulated by the server to keep the amount of data traffic placed on the wireless network within a predetermined range. For example, each callback may limit the amount of transferred data to a maximum transfer of 10 megabytes for each scheduled callback, although the transfer limit may be raised or lowered to accommodate various wireless networks. Upon receiving new digital content, the digital device displays a notification that new content is ready for viewing (block 1224). This notification may include an on-screen alert, or a notification sound may be played to announce the availability of newly downloaded content. The digital device periodically requests updated content by requesting a new callback time from the server in order to download new digital content (block 1204). - Another digital appliance support/regulation site enables a plurality of digital appliance types to be configured and updated for continued operations by the appliance support/regulation site to enable a device monitoring system to communicate with the digital appliances and with application programs without exceeding the technological capabilities of the device monitoring system.
FIG. 13 depicts asystem 1300 that is used to manage communications between digital appliances and an application that communicates with a plurality ofdigital appliances 1312. As used in this document, “digital appliance” means any device having a processor and connected components that enable the digital appliance to perform a predetermined task or function. Thesystem 1300 includes a plurality of systems, digital appliances, and programs that communicate with one another through a widearea computer network 1304, such as the Internet, acellular service 1308, or both the network and the cellular service. In the embodiment discussed in this document,network 1304 supports HTTPS and MQTT communication protocols for the sending and receiving of messages between the various system components, particularly, thedigital appliances 1312, the stacks of theDevice Monitoring Application 1316, and theVASS 1324. Thedigital appliances 1312 can be different devices, such as a police car pursuit notifier, a smartphone, a surveillance camera, and the like. Device types can also be different versions of the same kind of device. For example, Device_Type1 could be a squad cartracker hardware version 1 and Device_Type2 could be the squad cartracker hardware version 2. The digital appliances generate data for aDevice Monitoring Application 1316 that is connected to theinternet 1304 through a Cloud Service 1320. The Device Monitoring Application (DMA) 1316 is a system configured to provide services for the digital appliances. Such systems are typically implemented as application programs developed to store and analyze data generated by the digital appliances for the benefit of the purchasers and users of the digital appliances. A DMA is provided for each type of digital appliance and multiple versions of a DMA can be provided for different purposes, such as one version for development, one version for field tests, and another version for devices that are in use by customers. These different versions of the DMA are referred to as stacks in this document. - Enablement and management of the communications between the
digital appliances 1312 and the stacks of theDMA 1316 are performed by the Value Added Services System (VASS) 1324. The Device Authentication Service 1328,Provisioning Service 1332, the Over-The-Air Service 1336, theIoT Connect Service 1340, the IoT Billing Manager 1344, and the IoT Administrator Service 1348 are a set of services that enables the stacks of theDMA 1316 to authenticate, provision, update, connect to cellular services, manage customer subscriptions, and generate administration reports for an inventory of digital appliances. The abbreviation “IoT” refers to the Internet of Things.Cellular Service Provider 1308 is a gateway to a cellular service network for one or more of thedigital appliances 1312. Cloud Service 1320 is a cloud service IoT system such as Amazon Web Services (AWS). The Cloud Service includes an IoT registry of the digital appliances managed by theVASS 1324. Cloud Service 1320 is used by the VASS and the stacks of theDMA 1316 to communicate with thedigital appliances 1312. As used in this document, the term “cloud service” means a site accessible through a computer network that provides infrastructure, software, or a platform to users. - Provisioning is required for use of a digital appliance in an environment. The process of provisioning includes assigning ownership and enabling service for a digital appliance. These tasks are achieved by identifying the type of service to be used for communication, such as cellular, cloud service, or both cellular and cloud service; the stack of the
DMA 1316 that monitors and services the digital appliance; and an organization within theDMA 1316 that owns the digital appliance. After a user has purchased a digital appliance, the device must be activated, authenticated, and assigned to a stack of theDevice Monitoring Application 1316 and to an organization identified within the stacks of theDMA 1316 so the digital appliance can be enabled for Cloud or Cellular connectivity. The assignment is made through communications with theDMA 1316. For a consumer-based digital appliance, this assignment can begin with the user logging into an account in theDMA 1316 and entering a number printed on a label on the device, scanning a barcode on the device using a smartphone app, entering a random code generated by the appliance and displayed by the appliance, or interacting with the digital appliance with a communication device, such as an application program executing on a smartphone, over a Bluetooth or Wi-Fi channel. For an appliance shipped to an established customer, the provisioning could be done as part of the logistics process. - In more detail, a
provisioning process 1400 is shown inFIG. 14 . The process begins with an un-configured digital appliance sending a hardware identification code, which in this document is called an authentication token or authtoken, to theDMA 1316, which sends a message containing the authtoken to the VASS in the HTTPS protocol through the network 1304 (block 1404). Some formats and methods of transfer of the authtoken were previously noted above. The formats and methods of the authtoken are dependent on the capabilities of the appliance and how it is configured for use. The Device Authentication service of the VASS verifies the authtoken in the received message corresponds to an authtoken stored in a database of authtokens for the device type also identified in the message maintained at the VASS. As used in this document, the phrase “corresponds to an authtoken stored in a database of authtokens” means the number on the label, bar code value, or displayed number is stored in the database or that a random number generated by the device has not already been associated with another digital appliance having a database record stored in the database. The Device Authentication service also verifies that the appliance has not been previously authenticated (block 1408). The provisioning process continues with the Device Authentication service generating a set of credentials within the DMA 1316 (block 1412). As used in this document, the term “credentials” refers to any textual data, numerical data, or combination of textual and numerical data that when installed in a digital appliance enable communication between the digital appliance, itsDMA 1316, and the VASS. The process determines whether the digital appliance communicates through the Cloud Service 1320, theCellular Service 1308, or both the Cloud Service and the Cellular Service (block 1416). The appropriate communication service for connectivity between theDMA 1316 and thedigital appliance 1312 is then configured for the Cloud Service 1320 (block 1424), the Cellular service 1308 (block 1420), or both services (block 1422). This enablement may also include a pre-defined security policy for the device within theDMA 1316 of the Cloud Service 1320. One feature of this communication identification arises when the master database record for an authtoken identifies both Cloud Service and Cellular Service as being appropriate for communication. In that case, both communication services must be maintained. That is, if the user of a digital appliance fails to maintain an active cellular account with the Cellular Service, then the VASS, upon detection of the loss of cellular service, also disables Cloud Service communication until cellular service is restored. The provisioning process continues with the VASS returning a JSON encoded message containing the credentials and other connection-related programs and data templates via the HTTPS protocol to theDMA 1316 through the network 1304 (block 1428). TheDMA 1316 transfers the data received from the VASS to thedigital appliance 1312 over the channel used by the digital appliance to initiate the authentication process with the DMA 1316 (block 1432). TheDMA 1316 can augment the VASS provided data with additional programs or configuration data during this transfer. Once the digital appliance receives the provisioning data generated by the VASS and the DMA through the Cloud Service and the network, it closes the communication channel used for authentication and uses the credentials, programs, and data templates to communicate with theDMA 1316 through the Cloud Service 1320 or theCellular Service 1308 thereafter (block 1436). If the digital appliance cannot be authenticated (block 1408), the VASS returns an authentication failure message to theDMA 1316 through thenetwork 1304 and the Cloud Service 1320 and this failure is handled by the DMA 1316 (block 1440). Once this provisioning process is finished for a digital appliance, the appliance is associated with an end-owner, which is identified within one of the stacks of theDMA 1316. Thereafter, the owner identified in a stack of theDMA 1316 receives data from thedigital appliances 1312 owned by the owner through MQTT topics of the stack, which speeds data reception over previously used HTTPS protocol for data collection. The process then waits for receipt of the next authentication token and repeats the provisioning of the appliance. - The authtoken, credentials, and identification of the programs, data templates, and communication channel sent to a digital appliance are incorporated in a database record that is stored in a master database used by the VASS. Each database record in the master database has the same fields and formats. Thus, a single database is used by the VASS to control communication between the
digital appliances 1312 and the DMA 1320 and its version appropriate for the digital appliance. That is, by having a master database record format that supports all digital appliance types and all DMAs and their versions only one VASS is required to support communications between the various digital appliances and their respective DMA versions. This database architecture is technologically significant because the system ofFIG. 1 , which has a database tailored specifically for the digital appliance it supports, must be replicated for different types of digital appliances and different versions of the same appliance type. Additionally, the VASS has an interface that is common for all DMA versions and digital appliances for which it controls communication. This common interface also enables a single VASS to support communications between all the different digital appliance types and their respective DMA versions. As used in this document, “master database record” means a data structure that has the same format and fields for all digital appliance types and all DMA versions. A master database record is stored in a single database in association with the authtoken obtained from each digital appliance supported by the single database. - When the firmware for a particular type of digital appliance moved from development to test to production, a new regulation/
support site 20 had to be developed for the new firmware. Migrating thedatabases multiple sites 20 for both different types of digital appliances and different levels of the same digital appliance type was eliminated. Consequently, support for new DMA versions and new digital appliance types requires only a modicum of change at the VASS. This type of VASS is more secure since device identification data is stored at only one location, can be scaled more easily because entire new sites do not have to be developed, and can be extended to different types of digital appliances because the common interface has been proven to be robust for digital appliances that communicate in the manner supported by the VASS. - From time to time, a developer of appliance firmware provides firmware updates to the VASS for the updating of the digital appliances of a particular type in the field so those appliances do not have to be taken out of service for the update. The appliance firmware updates are specific to a given device type. A firmware release for a given device type can include multiple files, such as a bootloader, appliance application program, and modem firmware. The list of files for a firmware update is defined at the VASS as part of device type definition. The developer of the firmware assigns the firmware release a unique name or version identifier. Each file in the firmware is also given a version identifier. This identification allows a new release of the application portion of the firmware bundle for the appliance without the appliance having to download and update a modem firmware update as well. The developer can optionally supply a list of prior acceptable versions for each component or file of an appliance firmware bundle to potentially reduce the size of the download. For example, the bootloader version 1.2 may be the current version, but the 1.0 or 1.1 version of the bootloader may also be acceptable for the firmware update.
- When a developer is ready for a firmware update to be distributed to appliances in the field, it uploads the firmware and component version identification information to the VASS platform. The component version identification information identifies the files that constitute a firmware version. A firmware version can include several binary files. A checksum or other hash is calculated for each uploaded file and stored at the VASS. An over-the-air (OTA)
process 1500 is shown inFIG. 15 . The process begins with either the stack of theDMA 1316 that owns multiple digital appliances to send a message to the VASS to implement an OTA update or immediately after authentication of a new appliance, a new firmware update could be required to configure the newly authenticated appliance (block 1504). Additionally, a firmware release can also be performed in accordance with a policy in the VASS that all appliances of a DMA, all appliances of an identified device type, all appliances owned by an identified stack, or all appliances under an identified organization should be running a specified version. The process continues with the generation of an OTA configuration program containing the overall firmware release name, the firmware components release names, their versions and prior acceptable versions, download source locations, and corresponding hashes (block 1508). This OTA configuration program is sent to the appropriate digital appliances through DMA, Cloud Service, and network (block 1512). As each digital appliance receives the OTA configuration program, it checks the version of its current components (block 1516) and downloads any of the components not in the prior acceptable list (block 1520). The downloads are performed using the MQTT protocol to speed the downloading over the previously used HTTPS protocol. Once all of the components in the OTA configuration program have been checked (block 1524), the appliance verifies the hash of the downloaded files (block 1528) and applies the update, if the hash verifies the transmission of the file (block 1532). Otherwise, an exception message is returned to the VASS (block 1536) for a retransmission attempt. Once an update is successfully completed, an appliance reports completion of the upgrade to the VASS and the DMA (block 1540). - The
system 1300 and theprocesses - While the system and method for have been illustrated by the description of exemplary processes and system components, and while the various processes and components have been described in considerable detail, applicant does not intend to restrict or in any limit the scope of the appended claims to such detail. Additional advantages and modifications will also readily appear to those skilled in the art. Therefore, the system and method described above in their broadest aspects are not limited to the specific details, implementations, or illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of applicant's disclosed system and method.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/151,757 US10826718B2 (en) | 2009-05-19 | 2018-10-04 | System and method for coupling a digital appliance to a monitoring service |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17950609P | 2009-05-19 | 2009-05-19 | |
PCT/US2010/034844 WO2010135174A1 (en) | 2009-05-19 | 2010-05-14 | System and method for coupling a wireless device to social networking services and a mobile communication device |
US201113321507A | 2011-11-18 | 2011-11-18 | |
US16/151,757 US10826718B2 (en) | 2009-05-19 | 2018-10-04 | System and method for coupling a digital appliance to a monitoring service |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2010/034844 Continuation-In-Part WO2010135174A1 (en) | 2009-05-19 | 2010-05-14 | System and method for coupling a wireless device to social networking services and a mobile communication device |
US13/321,507 Continuation-In-Part US10135630B2 (en) | 2009-05-19 | 2010-05-14 | System and method for coupling a wireless device to social networking services and a mobile communication device |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190036727A1 true US20190036727A1 (en) | 2019-01-31 |
US10826718B2 US10826718B2 (en) | 2020-11-03 |
Family
ID=65038372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/151,757 Active 2030-07-16 US10826718B2 (en) | 2009-05-19 | 2018-10-04 | System and method for coupling a digital appliance to a monitoring service |
Country Status (1)
Country | Link |
---|---|
US (1) | US10826718B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220109980A1 (en) * | 2019-02-01 | 2022-04-07 | Arm Ip Limited | Template-based registration |
US11394572B2 (en) | 2016-01-28 | 2022-07-19 | Overkiz | Method for configuring, monitoring or supervising a home automation installation |
US11677752B2 (en) * | 2016-12-28 | 2023-06-13 | Overkiz | Method for configuring remote access, control and supervision of at least one home automation device belonging to a home automation installation |
US11695770B2 (en) | 2016-12-28 | 2023-07-04 | Overkiz | Method for configuring remote access controlling, and supervising at least one home automation device belonging to a home automation installation |
US11700138B2 (en) | 2016-12-28 | 2023-07-11 | Overkiz | Method for configuring, monitoring or supervising a home automation installation |
US20230229417A1 (en) * | 2022-01-19 | 2023-07-20 | Calamp Corp. | Technologies for over-the-air updates for telematics systems |
US11784844B2 (en) * | 2020-06-23 | 2023-10-10 | Orange | Method and device for managing content consumption in an extended home network |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6499017B1 (en) | 1999-01-29 | 2002-12-24 | Harris Corporation | Method for provisioning communications devices and system for provisioning same |
US7111053B1 (en) | 2000-05-20 | 2006-09-19 | Ciena Corporation | Template-driven management of telecommunications network via utilization of operations support services clients |
US7536450B2 (en) | 2001-09-17 | 2009-05-19 | Ricoh Company, Ltd. | System, method, and computer program product for sending remote device configuration information to a monitor using e-mail |
US6947985B2 (en) | 2001-12-05 | 2005-09-20 | Websense, Inc. | Filtering techniques for managing access to internet sites or other software applications |
US20030117280A1 (en) | 2001-12-20 | 2003-06-26 | Visionary Enterprises, Inc. | Security communication and remote monitoring/response system |
US20030210265A1 (en) | 2002-05-10 | 2003-11-13 | Haimberg Nadav Y. | Interactive chat messaging |
US7275215B2 (en) | 2002-07-29 | 2007-09-25 | Cerulean Studios, Llc | System and method for managing contacts in an instant messaging environment |
US7428585B1 (en) | 2002-07-31 | 2008-09-23 | Aol Llc, A Delaware Limited Liability Company | Local device access controls |
US7853668B2 (en) | 2002-09-17 | 2010-12-14 | At&T Intellectual Property I, L.P. | Communication threads over different communication mediums |
US7185059B2 (en) | 2002-09-17 | 2007-02-27 | Bellsouth Intellectual Property Corp | Multi-system instant messaging (IM) |
CA2506585A1 (en) | 2002-11-18 | 2004-06-03 | Valerie Kucharewski | People lists |
US7640336B1 (en) | 2002-12-30 | 2009-12-29 | Aol Llc | Supervising user interaction with online services |
US7853652B2 (en) | 2003-01-18 | 2010-12-14 | International Business Machines Corporation | Instant messaging system with privacy codes |
US7606866B2 (en) | 2003-02-14 | 2009-10-20 | Siemens Communications, Inc. | Messenger assistant for personal information management |
US7484176B2 (en) | 2003-03-03 | 2009-01-27 | Aol Llc, A Delaware Limited Liability Company | Reactive avatars |
US7219303B2 (en) | 2003-05-20 | 2007-05-15 | Aol Llc | Presence and geographic location notification based on a setting |
US7363378B2 (en) | 2003-07-01 | 2008-04-22 | Microsoft Corporation | Transport system for instant messaging |
JP4311174B2 (en) * | 2003-11-21 | 2009-08-12 | 日本電気株式会社 | Authentication method, mobile radio communication system, mobile terminal, authentication side device, authentication server, authentication proxy switch, and program |
US7702728B2 (en) | 2004-01-30 | 2010-04-20 | Microsoft Corporation | Mobile shared group interaction |
US7675903B2 (en) | 2004-02-06 | 2010-03-09 | Alcatel Lucent | Dynamic contact list management system and method |
US8027335B2 (en) | 2004-05-05 | 2011-09-27 | Prodea Systems, Inc. | Multimedia access device and system employing the same |
US20060253584A1 (en) | 2005-05-03 | 2006-11-09 | Dixon Christopher J | Reputation of an entity associated with a content item |
US7814410B2 (en) | 2005-09-12 | 2010-10-12 | Workman Nydegger | Initial server-side content rendering for client-script web pages |
US8223938B2 (en) | 2005-09-30 | 2012-07-17 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for providing caller identification services |
US7739367B2 (en) | 2006-01-12 | 2010-06-15 | Ricoh Company, Ltd. | Managing network-enabled devices |
US20070180100A1 (en) | 2006-01-31 | 2007-08-02 | Microsoft Corporation | Realtime Approval Control |
US7835736B2 (en) | 2006-04-03 | 2010-11-16 | Disney Enterprises, Inc. | System and method for initializing a portable communication device within a group at a point of activation |
US20080021777A1 (en) | 2006-04-24 | 2008-01-24 | Illumobile Corporation | System for displaying visual content |
US20080109788A1 (en) | 2006-11-07 | 2008-05-08 | Joan Pons Prieto | System and Method for Remotely Administering a Computer Network |
WO2008085206A2 (en) | 2006-12-29 | 2008-07-17 | Prodea Systems, Inc. | Subscription management of applications and services provided through user premises gateway devices |
US20080201420A1 (en) | 2007-02-20 | 2008-08-21 | William Wong | Digital media frame with peer to peer networking |
US8136145B2 (en) | 2007-03-13 | 2012-03-13 | Facebook, Inc. | Network authentication for accessing social networking system information by a third party application |
US8595186B1 (en) | 2007-06-06 | 2013-11-26 | Plusmo LLC | System and method for building and delivering mobile widgets |
US20090138579A1 (en) | 2007-11-26 | 2009-05-28 | Emtrace Technologies, Inc. | Remote configuration of electronic device with user interface provided from electronic device |
US8725745B2 (en) | 2009-04-13 | 2014-05-13 | Microsoft Corporation | Provision of applications to mobile devices |
-
2018
- 2018-10-04 US US16/151,757 patent/US10826718B2/en active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11394572B2 (en) | 2016-01-28 | 2022-07-19 | Overkiz | Method for configuring, monitoring or supervising a home automation installation |
US11677752B2 (en) * | 2016-12-28 | 2023-06-13 | Overkiz | Method for configuring remote access, control and supervision of at least one home automation device belonging to a home automation installation |
US11695770B2 (en) | 2016-12-28 | 2023-07-04 | Overkiz | Method for configuring remote access controlling, and supervising at least one home automation device belonging to a home automation installation |
US11700138B2 (en) | 2016-12-28 | 2023-07-11 | Overkiz | Method for configuring, monitoring or supervising a home automation installation |
US12021871B2 (en) | 2016-12-28 | 2024-06-25 | Overkiz | Method for remotely configuring access to, controlling and monitoring at least one home automation device forming part of a home automation installation |
US20220109980A1 (en) * | 2019-02-01 | 2022-04-07 | Arm Ip Limited | Template-based registration |
US11784844B2 (en) * | 2020-06-23 | 2023-10-10 | Orange | Method and device for managing content consumption in an extended home network |
US20230229417A1 (en) * | 2022-01-19 | 2023-07-20 | Calamp Corp. | Technologies for over-the-air updates for telematics systems |
Also Published As
Publication number | Publication date |
---|---|
US10826718B2 (en) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10135630B2 (en) | System and method for coupling a wireless device to social networking services and a mobile communication device | |
US10826718B2 (en) | System and method for coupling a digital appliance to a monitoring service | |
US11671826B2 (en) | Voice control and telecommunications service integration | |
US9356895B2 (en) | Message transmission system and method for a structure of a plurality of organizations | |
TWI450558B (en) | Method and system for providing online service corresponding to multiple mobile devices, server and mobile device thereof, and computer program product | |
CN106471465B (en) | Service enabler function | |
RU2426252C2 (en) | Apparatus and method for creating service accounts and configuring devices | |
CN100486173C (en) | Configuring of network settings of thin client devices using portable storage media | |
US8245284B2 (en) | Extensible network discovery | |
US8966383B2 (en) | Graphical user interface and method for mobile device activation | |
JP2019204519A (en) | Portal authentication | |
US20020069243A1 (en) | System and method for effectively providing user information from a user device | |
WO2018000834A1 (en) | Wifi hotspot information modification method and device | |
CN101926127B (en) | Unified communications systems and methods | |
US8938226B2 (en) | Reassigned mobile message notifications | |
CN113542307B (en) | Link indication referring to content for presentation on a mobile device | |
US9491617B2 (en) | Network access | |
CN105592168A (en) | Remotely locating and commanding a mobile device | |
US20100030346A1 (en) | Control system and control method for controlling controllable device such as peripheral device, and computer program for control | |
TWI558131B (en) | System and method of having a plurality of organizations to dispatch a message | |
US8121295B1 (en) | Method, apparatus, and system for controlling playout of media | |
US20150326513A1 (en) | Message transmission system and method suitable for individual and organization | |
KR101341228B1 (en) | System and method for network setup of wireless device for home network | |
EP3942832A1 (en) | Network based media processing security | |
US11960591B2 (en) | Provisioning and integrating devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ZIPIT WIRELESS, SOUTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MATSON, WILLIAM R.;SQUIRES, CHRISTOPHER ROSS;REEL/FRAME:047069/0415 Effective date: 20181001 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |