US20180124195A1 - Push notifications for multiple user devices - Google Patents
Push notifications for multiple user devices Download PDFInfo
- Publication number
- US20180124195A1 US20180124195A1 US15/627,852 US201715627852A US2018124195A1 US 20180124195 A1 US20180124195 A1 US 20180124195A1 US 201715627852 A US201715627852 A US 201715627852A US 2018124195 A1 US2018124195 A1 US 2018124195A1
- Authority
- US
- United States
- Prior art keywords
- notification
- server
- tap
- network
- user device
- 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
- 238000000034 method Methods 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 10
- 238000009434 installation Methods 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 abstract description 31
- 239000010410 layer Substances 0.000 description 54
- 238000004891 communication Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101100127285 Drosophila melanogaster unc-104 gene Proteins 0.000 description 2
- 230000037361 pathway Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000010079 rubber tapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000004606 Fillers/Extenders Substances 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000002716 delivery method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 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/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1895—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
-
- H04L67/26—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/18—Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
- H04W4/185—Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals by embedding added-value information into content, e.g. geo-tagging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- 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/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Definitions
- the described embodiments relate generally to communications using electronic devices, including systems and techniques for providing push notifications to multiple user devices.
- a user can have multiple active electronic devices available for communication, sometimes collocated and at other times distributed at different locations.
- a user may also have a tablet device, a laptop computer, a desktop computer, a portable media player, a wearable computing device, and/or one or more other electronic devices, some or all of which may be able to conduct wireless communications using one or more different radio access technologies (RATs) and/or wired communications.
- RATs radio access technologies
- the multiple different electronic devices can be associated with a common user account, and the user of the multiple electronic devices can receive notifications for various applications and/or services on one or more of the multiple electronic devices.
- the notifications can be indicated to the user by one or more different outputs from the various electronic devices, such via as an audible indication (e.g., a ringtone or alert sound), a visual indication (e.g., a pop-up window, a drop down window, or an application badge or icon change), and/or a haptic indication (e.g., a vibration or tapping pattern).
- an audible indication e.g., a ringtone or alert sound
- a visual indication e.g., a pop-up window, a drop down window, or an application badge or icon change
- a haptic indication e.g., a vibration or tapping pattern.
- Individual applications and services on each of the user's multiple electronic devices can receive push notifications, and with the proliferation of electronic devices and applications thereon, some wireless network architectures are unable to support enough simultaneous semi-persistent higher layer connections for all electronic devices to communicate with network-based servers that support the applications and services that seek to provide push notifications to the electronic devices.
- Representative embodiments set forth herein disclose various systems and techniques for intelligently and efficiently managing push notifications for multiple user devices.
- the embodiments set forth various systems and techniques for communicating notifications for applications and/or services to user devices via one or more network-based edge servers with which a set of multiple associated user devices are registered.
- Each user device can be associated with a common network-based service account, e.g., an iCloud® account, and can be configured to receive notifications for various applications and services.
- a user device can receive notifications directly from an associated edge server or via one or more intermediate nodes and/or delegated user devices. Delegation of user devices to other associated user devices can be based on a default configuration and/or a user configurable setting, which can vary for different applications and services as well as based on capabilities of the user devices.
- the user device Rather than use a semi-persistent higher layer connection, e.g., at a Transport Control Protocol (TCP) layer, with keep-alive messaging to retain the higher layer connection between a user device and a distant network-based server that generates notifications to push to the user device, the user device registers with a network-based edge server that coalesces notifications received from various sources for the user device.
- the edge server sends separately a notification tap, to indicate availability of notifications, and subsequently provides notification content, which can be retrieved by the user device and/or by delegated user devices.
- the notification tap can be provided to the user device: (i) via a cellular paging mechanism when the user device is reachable via a cellular wireless network, (ii) via a wireless personal area network (WPAN) connection, such as a Bluetooth classic or Bluetooth Low Energy (BTLE) connection when the user device is reachable via another nearby associated user device, (iii) via a wireless local area network (WLAN) connection, such as a Wi-Fi connection when the user device is reachable through a WLAN network, (iv) via a peer-to-peer wireless connection from another associated user device, and/or (v) via a wired connection, e.g., an Ethernet connection, when the user device is reachable through a wired network.
- WPAN wireless personal area network
- BTLE Bluetooth classic or Bluetooth Low Energy
- Notification content for a particular user device can be cached at the edge server and/or at one or more delegated user devices for later retrieval by the particular user device.
- a user device can optionally take actions in response to a notification tap to retrieve notification content for pending cached notifications.
- Splitting notifications for user devices into two parts, a notification tap with no content provided initially, and a notification portion that includes content payload provided separately allows for efficient low-bandwidth push indications of available notifications with on demand pull retrieval by requesting user devices of notification content conveniently stored at a proximate edge server and/or at a delegated user device.
- Notification content need not be sent to multiple user devices, thereby reducing data traffic loading, and a low latency notification tap can be provided with minimal signaling.
- the notification tap can be sent without encryption reducing the processing power required for processing the notification taps, as the notification content can be sent separately with secure end-to-end encryption.
- the embodiments disclosed herein apply to one or more user devices, some of which can include wireless capability, but can also be used beneficially for wired user devices as well.
- some of the user devices are wireless cellular devices; while in some embodiments, the notification methods and apparatuses described can operate without a wireless cellular device.
- FIG. 1 illustrates an exemplary notification tap architecture, according to some embodiments.
- FIG. 2 illustrates an exemplary message flow in the notification tap architecture of FIG. 1 , according to some embodiments.
- FIG. 3 illustrates an exemplary stack diagram in the notification tap architecture of FIG. 1 with a gateway and base station also illustrated, according to some embodiments.
- FIG. 4 illustrates exemplary logic performed by a server of a server network, according to some embodiments.
- FIG. 5 illustrates an exemplary notification tap architecture, including illustration of a device registry, a routing table, and a notification history, according to some embodiments.
- FIG. 6 illustrates exemplary activities in the architecture of FIG. 5 , according to some embodiments.
- FIG. 7 illustrates exemplary logic of a server corresponding to some of the events of FIG. 6 , according to some embodiments.
- FIG. 8 illustrates an exemplary notification tap architecture including a presence cloud, according to some embodiments.
- FIG. 9 illustrates exemplary messages and activities in a notification tap architecture including a presence cloud, according to some embodiments.
- FIG. 10 illustrates exemplary protocol stacks of entities in a notification tap architecture that includes a presence cloud, according to some embodiments.
- FIG. 11 illustrates exemplary logic for a delegate device supporting delivery of a notification tap and of notification content packages to a delegating device, according to some embodiments.
- FIG. 12 illustrates an exemplary computing device for realizing various devices disclosed herein, according to some embodiments.
- Representative embodiments set forth herein disclose various systems and techniques for intelligently and efficiently managing notifications for multiple user devices.
- the embodiments set forth various systems and techniques for communicating notifications for applications and/or services to user devices via one or more network-based edge servers with which a set of multiple associated user devices register.
- the term “notification” is used to refer to any information presented via a user interface (UI) of a user device for an application and/or service, particularly for important events. Notifications can appear at the top or corner of a screen (also referred to as a banner) for a short period of time or can overlay in the center of the screen until acknowledged or until a timeout occurs.
- Some notifications associated with applications provide an indication as a badge overlaid on the application icon.
- notification will be used to refer to any such notification indication whether a banner, a pop-up window, or an actionable interrupt.
- Many applications and services can provide for notifications to present supplemental information at a user device, such as to indicate initiation of a proposed service connection (voice, video, Internet messaging, teleconferencing, etc.), to catalog one or more events (email, voice mail, reminders, appointments, etc.), or to indicate near real time information (stock, weather, sports, news, etc.).
- Notifications can be organized into various categories and presented to the user of the mobile wireless communication device on demand (e.g., in response to a user input), as an overlay (e.g., as an indicator associated with a graphical icon), or as an interrupt (e.g., as a pop-up message requiring a user response).
- User devices can be configured to present notifications in different forms, e.g., based on user preference or based on applicability to a service/application.
- the notifications can be provided by one or more different outputs from the various user devices, such as an audible indication (e.g., a ringtone or alert sound), a visual indication (e.g., a pop-up window, a drop down window, or an application badge or icon change), and/or a haptic indication (e.g., a vibration or tapping pattern).
- an audible indication e.g., a ringtone or alert sound
- a visual indication e.g., a pop-up window, a drop down window, or an application badge or icon change
- a haptic indication e.g., a vibration or tapping pattern
- Each user device can be associated with a common network-based service account, e.g., an iCloud account, and can be configured to receive notifications for various applications and services.
- a user device When a user device is not in proximity to any other associated user devices, the user device can function as a primary user device and provide notifications to a user based on a default configuration and/or based on a user configurable setting, which can vary for different applications and services.
- the user devices can exchange relevant capability information among each other, such as device type, software versions, hardware versions, configuration settings, operating states, battery level, user interaction states, and/or power source.
- the user devices can also exchange information for applications that are synchronized via network-based services, such as via iCloud or via application specific servers.
- Representative applications include a scheduling calendar, an email application, a “reminder” or “to do” list, social networking applications, in addition to communication services that can provide voice connections, video connections, and/or messaging connections.
- the user devices can negotiate dynamically or be configured to determine to which of the user devices to provide notifications for a set of applications and services common to a set of user devices.
- Each user device of a set of associated user devices can register with a proximate edge server and obtain a globally unique identifier (guid) from the proximate edge server.
- the user device if capable of cellular wireless communications, can obtain from a cellular wireless base station, e.g., an eNodeB, a device identifier (for example, a unique international mobile subscriber identity (IMSI)) and a cellular wireless gateway address, e.g., a resolvable domain name server (DNS) address and/or an Internet Protocol (IP) address, for a gateway that can provide a notification indication via a cellular wireless system, e.g., a paging system, to the user device.
- a cellular wireless base station e.g., an eNodeB
- a device identifier for example, a unique international mobile subscriber identity (IMSI)
- IMS international mobile subscriber identity
- DNS resolvable domain name server
- IP Internet Protocol
- the user device can register its presence with the proximate edge server by sending the device identifier, the cellular wireless gateway address, and the GUID to the proximate edge server.
- the edge server can provide a notification indication, e.g., a “notification tap”, to the user device via the cellular wireless gateway, e.g., by sending a message to the cellular wireless gateway address to page the user device and indicate one or more available notifications.
- the edge server can maintain a semi-persistent higher layer connection, e.g., at the TCP layer, with one or more source servers that generate notifications for applications and/or services for the user device.
- the edge server can coalesce notifications from multiple applications and servers for the user device to provide a consolidated notification tap to the user device to indicate availability of the notifications for retrieval.
- the user device can delegate presence to another user device that is associated with a common user account, e.g., an iCloud account, and the notification taps for the notifications can be sent to the delegated user device, which can forward the notification tap to the user device.
- the edge server and the delegated user device can cache notification content for the notifications for retrieval on demand by the user device.
- the user device can delegate presence to multiple delegated user devices in parallel.
- a delegated user device can consolidate notifications for multiple associated user devices and provide notification taps and notification content to individual user devices on demand.
- a user device in the set of associated user devices can maintain a “keep alive” protocol to confirm relative proximity between the user device and one or more delegated user devices.
- the set of user devices detect proximity to each other and communicate with each other based on a wireless personal area network (WPAN) wireless communication protocol, e.g., a Bluetooth® (BT) Classic or Bluetooth Low Energy (BTLE) wireless communication protocol, and/or based on a wireless local area network (WLAN) wireless communication protocol, e.g., a peer-to-peer Wi-Fi wireless communication protocol or an Apple Wireless Direct Link (AWDL) wireless communication protocol.
- WPAN wireless personal area network
- WLAN wireless local area network
- AWDL Apple Wireless Direct Link
- FIGS. 1 through 12 illustrate detailed diagrams of systems and methods that can be used to implement these systems and techniques.
- a user device can include one or more device applications that can interact with one or more application servers associated with one or more source entities. For each application, an application server associates the user device with a user account alias, which can also be referred to as a user account identifier.
- a user device may be referred to herein as a device.
- a network of servers can provide a notification service to convey event data to the application in the user device. The event data may be simply a notification indication. Such a notification indication can be referred to as a notification tap, analogous to a tap on the shoulder.
- Content related to the event can be obtained by the device application after receipt of the notification tap; this content can be referred to as notification content or, in some specific instances, as a notification content package.
- the application server can be hosted by a web service such as an auction forum or a web-based retailer.
- the user device can be a cellular phone, a tablet, a laptop, a desktop computer, a wireless-enabled wearable device such as a watch, or an internet-connected media server (e.g., AppleTV).
- the network of servers can include a collection of servers known as edge servers.
- the network of servers can include one or more device registries.
- the user device can obtain a globally unique identifier (GUID) from an edge server.
- GUID globally unique identifier
- Each device registry contains entries associating the user account alias with particular devices and includes the GUID for each user device.
- Last hop delivery from an edge server to the user device can be via a gateway.
- the gateway can be co-located with, for example, a cellular base station such as a Long Term Evolution (LTE) eNodeB and radio tower or a Wi-Fi access point (AP).
- LTE Long Term Evolution
- AP Wi-Fi access point
- routing is done without use of a path through a cellular network and no gateway is involved.
- the device registry maintains an association that links a user account alias with one or more user devices.
- This device registry is used on an on demand basis, thus eliminating any link state requirement.
- the device registry can serve one or more edge servers.
- An exemplary pathway for a notification tap to flow from the application server to the user device is established as follows, in some embodiments.
- the user device obtains the gateway address from the gateway.
- the user device sends the gateway address to an edge server and sends a device identifier to the edge server.
- the device identifier can be a generic identifier, which may be pre-existing or may be a temporary identifier generated by the network.
- a pre-existing identifier that may be used in some embodiments is an international mobile subscriber identity (IMSI).
- the edge server stores the device identifier and the gateway address in a routing table.
- the edge server maps the user account alias in the notification to the one or more guids associated with the user account.
- the edge server Based on the guid values, the edge server forwards the notifications to an edge server proximate to the devices of the user account (when the devices of the user account are split geographically, the notifications can be forwarded as necessary to all proximate edge servers).
- the proximate edge server maintains a list or history of recent notification taps (GUIDs, sources (application servers), and a timestamp for each notification tap).
- the proximate edge server sends a notification tap to the user devices, possibly via a paging channel (the user devices may have delegated their presence to a delegate device, in which case the notification tap flows to the delegate device).
- the user device that received the notification tap in some embodiments, establishes an event-driven temporary connection, e.g., TCP-based via a cellular data bearer channel, to fetch one or more (a batch of) notifications after receiving the notification tap. While the temporary connection is established, any new notifications for the device can be routed directly over the temporary connection.
- the user device requests the notification content from the proximate edge server (when a delegate device received the notification tap, it forwards the notification tap to one or more recipients (delegating devices) using a low-power wireless communication protocol, e.g., via Bluetooth Low Energy or Bluetooth Classic) when available or via another wireless communication protocol, e.g., via Wi-Fi or wireless peer-to-peer communication.
- a low-power wireless communication protocol e.g., via Bluetooth Low Energy or Bluetooth Classic
- the user device does not need a steady state semi-persistent higher layer connection to the edge servers nor does it need such connections to application servers.
- each application and/or service in a collection of device applications and services for a user device can send notifications to the user device.
- An example of a device application can also be referred to as a client application.
- the techniques presented herein apply generally to applications installed on a user device; however, the applications are not limited to those involved in a client-server relationship.
- notifications can be supported by semi-persistent higher layer connections, e.g., at a TCP layer, between a given application server hosting a source application and a given user device hosting a device application.
- the notification can be parsed into multiple parts, e.g., the notification tap and the notification content.
- the notification tap can be sent through an existing low-latency network such as via a cellular paging radio resource control (RRC) signaling channel (LTE, UMTS, GSM), or via a legacy one-way paging system separate from the cellular system.
- RRC radio resource control
- LTE, UMTS, GSM cellular paging radio resource control
- GSM radio resource control
- the details of the delivery method are opaque to the application server.
- the edge servers can carry the burden of delivering notifications for the device application to the user device.
- the edge servers can also fetch notification content from the application server in response to requests from the user device (or from associated delegated user devices), such as following sending a notification tap to the user device (and/or to the delegated user device(s)).
- the notification tap can be provided to the user device, directly or via intermediate delegated user devices, without undue steady-state power drain from the user device yet with low latency.
- FIG. 1 illustrates a diagram 100 of an application server 110 in communication with a user device 150 via a server network 140 .
- the server network 140 includes servers 120 and 130 . Servers 120 and 130 may also be referred to herein as edge servers.
- a device application 160 is installed on the user device 150 .
- user device 150 in some embodiments, may or may not be a cellular device.
- user device 150 in some embodiments, includes a cellular phone, a tablet, a laptop, a desktop computer, a wireless-enabled wearable device such as a watch, and/or an internet-connected media server.
- a notification 170 is sent to the server 120 of the server network 140 based on an association known at the application server 110 between a user account alias and the server network 140 .
- the server 120 determines that server 130 can deliver a notification tap to the user device 150 . Formation of a notification tap 175 from the notification 170 is indicated on FIG. 1 with an arrow near the bottom of the figure.
- the server network 140 provides the notification tap 175 for the notification 170 received from the application server 110 .
- Notification content 182 for the notification 170 includes payload or data that the application server 110 seeks to convey to the device application 160 of the user device 150 .
- the application server 110 in some embodiments, can also send the notification content 182 to the server 120 of the server network 140 . In some embodiments, the application server 110 only sends the notification 170 to the server network 140 and awaits a request for the notification content 182 .
- the notification content 182 payload information that is distinct from the notification tap 175 , is indicated at the bottom of FIG. 1 and also indicated as being delivered in a generic message 180 .
- the notification tap 175 is conveyed to the user device 150 without encryption. Transmission of notification tap 175 , in some embodiments without encryption makes additional channels available for conveyance and saves processing power and avoids delay required for encryption and decryption operations.
- the notification content 182 can be stored at convenient retrieval locations and fetched from those locations by the user device 150 . This reduces traffic because the notification content is only sent to those devices requesting it and reduces latency because a retrieval location can be reached directly by the user device 150 without re-traversing the network path that the notification tap 175 followed.
- the user device 150 can fetch the notification content 182 from the server network 140 (messages 234 A and 236 A), and/or from the application server 110 (messages 234 B and 236 B). Also, as shown in FIG. 9 and illustrated in logic 1106 - 1108 - 1110 of FIG. 11 , the user device 150 can fetch the notification content 182 from those locations and also from a delegate device (user device 810 , messages 234 C and 236 C).
- a delegate device user device 810 , messages 234 C and 236 C.
- the server 120 forwards the notification 170 to the server 130 with which the user device 150 (and/or one or more delegate user devices) can be registered.
- the server 130 sends the notification tap 175 to the device application 160 on the user device 150 , and subsequently, the device application 160 receives a message 180 bearing the notification content 182 .
- separation of the notification into the notification tap 175 which can correspond to one or more coalesced notifications for different device applications 160 on the user device 150 , from delivery of the notification content 182 provides for a low latency, minimal bandwidth push indication of the availability of notification, which can be retrieved responsive to on demand pull requests from the user device 150 (and/or from one or more delegate user devices).
- Notification content is also referred to herein, as a notification content package or as notification content packages.
- the user device 150 can represent a device having wireless communications capabilities, such as a smart phone (e.g., an iPhone®), a tablet device (e.g., an iPad®), a wearable computing device (e.g., an Apple WatchTM), a portable media player (e.g., an iPod®), a laptop computer (e.g., a MacBook®), a desktop computer (e.g., an iMac®), a digital media server/extender (e.g., an Apple TV®), among other possible devices.
- a smart phone e.g., an iPhone®
- a tablet device e.g., an iPad®
- a wearable computing device e.g., an Apple WatchTM
- portable media player e.g., an iPod®
- laptop computer e.g., a MacBook®
- a desktop computer e.g., an iMac®
- a digital media server/extender e.g., an Apple TV®
- Additional user devices which can connect to the user device 150 and provide audio, video, and/or data media interfaces supplemental to the user device 150 , can include a wireless headset, a vehicle sound system, a digital television, a digital media recorder, a wearable computing device or any other suitable wireless device capable of wireless communication and input/output capabilities.
- FIG. 2 illustrates a diagram 200 of an exemplary message flow in a notification tap architecture, according to some embodiments.
- Time advances from top to bottom, as illustrated by the time axis on the left.
- headings are provided identifying the application server 110 , server network 140 , and the user device 150 .
- an operating system 210 and the device application 160 are indicated.
- the vertical lines below the headings provide a timeline for messages that originate or terminate at the corresponding entity or network, or events or activities associated with an entity or network at a particular time.
- Messages between entities in some instances, are represented as numbered arrows, with functional description provided in the corresponding description herein.
- an event 220 occurs at the application server 110 (for example, in a source application 309 , as illustrated further in FIG. 3 ).
- the application server 110 in response to the event 220 , sends a notification 170 to the server network 140 .
- a mapping 222 occurs that determines a network server that is near, or proximate to, the user device 150 .
- the notification is forwarded to the proximate network server (for example, the server 130 ) and the proximate server finds a routing 224 to reach a gateway (for example gateway 320 , as illustrated further in FIG. 3 ) that can forward a notification tap to the user device 150 .
- the proximate network server performs an update 226 to a notification history 228 of notifications for the user device 150 .
- the notification tap 175 at time t 1 via the gateway (not shown), reaches the operating system 210 of the user device 150 .
- the operating system 210 sends a message 230 to the device application 160 and receives a response message 232 .
- the notification content is fetched at a time t 2 .
- FIG. 2 indicates this time schematically or qualitatively.
- the operating system 210 obtains the notification content (or notification content package), from the server network 140 by sending message 234 A and receiving the notification content in a message 236 A.
- the operating system 210 obtains the notification content (or notification content package), from the application server 110 by sending message 234 B and receiving the notification content in a message 236 B.
- the alternative entities delivering the notification content to the user device 150 are marked with dashed ellipses and the annotation “alternatives” in FIG. 2 .
- message 180 bearing the notification content 182 , is received by the device application 160 .
- the notification content in some embodiments, is a social media message, a software update, part of correspondence with a web retailer or web-based auction service, for example.
- the device application 160 then processes the notification content as appropriate.
- notification content is cached at the proximate network server of the server network 140 .
- the user device 150 retrieves the notification content 182 , in response to the notification tap 175 , via the proximate network server of the server network 140 , either from notifications cached at the proximate network server or dynamically retrieved by the proximate network server from the application server 110 .
- FIG. 3 illustrates an exemplary stack diagram 300 that shows particular portions of protocol stacks for various entities in a notification tap architecture. Not all layers are shown; some layers are represented as a single layer.
- a protocol stack of the application server 110 includes a source application 309 , middle layers 308 , a transport control protocol (TCP) layer 306 , and lower layers 302 .
- An exemplary protocol stack of servers 120 and 130 includes a TCP layer 314 , middle layers 312 , and a baseband layer 310 .
- a protocol stack of a gateway 320 includes middle layers 324 and baseband layer 322 .
- a protocol stack of a base station 330 includes a baseband layer 332 directed to the gateway 320 and a physical layer 336 directed to user device 150 .
- the protocol stack of the base station 330 also includes middle layers 334 .
- the user device's 150 protocol stack includes the device application 160 , middle layers 348 , TCP layer 346 , other layers 344 , and baseband 342 .
- the base station 330 may be a cellular base station or, in some embodiments, a Wi-Fi access point (AP).
- AP Wi-Fi access point
- the device-server communication of FIG. 3 is illustrated as a peer-protocol level communication path 358 .
- the TCP connection between the application server 110 and the server 120 (shown as server 120 / 130 in FIG. 3 ) is shown as path 305 .
- the TCP connection between server 130 and the user device 150 is shown as path 356 .
- Base station 330 middle layers 334 communicate with the other layers 344 of the user device 150 on path 354 .
- Physical layer paths are shown as 303 , 316 , 326 , and 352 .
- the gateway 320 and the base station 330 may be co-located.
- Other middle-layer protocols are available, for example the fiber-oriented SONET protocols and circuit-like asynchronous transport mode (ATM); TCP is simply representative of a network protocol.
- Path 358 illustrates communication activity of representative embodiments disclosed herein that efficiently support notifications in a scalable manner.
- the notification architecture allows many TCP connections from many application servers to exist via paths such as 305 and to not burden the base station 330 or the MNO network in which the base station 330 is integrated.
- the server 130 can reach the gateway 320 over the Internet.
- the application server 110 can reach the server 120 over the Internet.
- the notification architecture illustrated decouples the application server 110 from routing details of the notification such as the participation of the gateway 320 to provide notification to the user device 150 .
- the cooperation of the gateway 320 and the base station 330 allows delivery of the notification tap 175 to the user device 150 via path 354 and without the use of TCP path 356 .
- SIG. 347 is an RRC signaling layer, in some embodiments.
- SIG. 347 then passes the notification tap up to the middle layers 348 and finally it reaches the device application 160 without using the TCP layer 346 of the protocol stack of the user device 150 .
- FIG. 4 illustrates a diagram 400 of exemplary logic performed by the server network 140 to deliver a notification tap to a user device such as the user device 150 .
- the server network 140 establishes a device registry entry including a global user identifier (GUID) associated with a device.
- the GUID can be a value leased by a wireless service provider from a original equipment manufacturer (OEM) of the user device 150 .
- the entry can be indexed (or addressed) by a user account identifier (which can also be referred to as a user account alias).
- the server network 140 for example the server 120 , receives an event notification from an application server, for example, the application server 110 .
- the application server 110 reaches the server 120 based on an association that it recognizes, for example, based on a previously-stored database entry, between the user account alias and the server network 140 .
- the notification is then forwarded within the server network 140 (not illustrated in FIG. 4 ).
- a member of the server network 140 for example, the server 130 , determines a network address of a gateway based on accessing the device registry using the user account identifier as an address.
- the server network 140 for example, the server 130 , sends a notification tap corresponding to the notification, via the gateway, to the user device associated with the GUID.
- the gateway 320 can make use of the base station 330 to deliver notification tap 175 to the user device 150 via path 354 .
- FIG. 5 illustrates a diagram 500 including additional elements of the notification tap architecture introduced in FIG. 1 .
- a wireless connection from the base station 330 to the user device 150 is shown as a jagged line labeled 506 .
- the connection from the server 130 to the gateway 320 is shown as 502 .
- 502 may be realized using the Internet 540 .
- a device registry 510 , a routing table 520 , a notification history 530 , and the Internet 540 are illustrated.
- the application server 110 , elements of the server network 140 , and the gateway 320 communicate via the Internet 540 .
- the device registry 510 holds entries such as those shown in Table 1.
- the device registry 510 is populated with entries when a user installs a given device application on a device, for example, the device application 160 installed on the user device 150 .
- An application server for example the application server 110 , associated with the device application is informed of the user account alias and of an address associated with the server network 140 .
- the GUID is entered into the device registry and associated with the user account alias.
- a server of the server network 140 reading a GUID value from the device registry is able to determine a server of the server network 140 that is nearby to the user device 150 .
- Such a server is sometimes referred to herein as a proximate server.
- the server 130 is the proximate server with respect to the user device 150 .
- the server 130 communicates to the user device 150 via gateway 320 which is interconnected to base station 330 over connection 504 .
- the routing table 520 holds entries such as those illustrated in Table 2. “Address_1,” and “Generic_ID_1,” etc., are simply representative of actual numerical or character string values.
- a network may use an IMSI as the generic identifier.
- the notification history 530 holds database entries such as those illustrated in Table 3. “Time_1,” etc., are simply representative of actual numerical values.
- Example Entries Source (Application Row Index GUID Server) Timestamp 1 2343-dd4f-23r-23 messages.apple.com Time_1 2 2343-dd4f-23r-23 newsfeed.apple.com Time_2 3 2343-dd4f-23r-23 wsj.com Time_3 4 2343-dd4f-23r-23 twitter.com Time_4
- FIG. 6 illustrates a message flow/activity diagram 600 for a notification tap architecture with messages and activities indicated.
- connecting pathways between architectural elements are not shown.
- Ordinal numbers in circles indicate successive messages or activities.
- the first activity is thus marked with a numeral 1 inside a circle and is annotated “Obtain GUID 604 ”. That is, at some point in time, the user device 150 obtains a GUID value from the server network 140 .
- the illustrative GUID in FIG. 6 is indicated with the reference numeral 604 .
- the encircled numeral 2 indicates that the user device 150 obtains the gateway (GW) address 606 .
- the encircled numeral 3 indicates that the user device 150 provides a triplet of values (or three-tuple) to the server 130 .
- the three-tuple includes GUID 604 , the GW address 606 , and a device identifier 602 .
- the device identifier 602 in some embodiments, is an IMSI value of a subscriber identity module (SIM) or electronic SIM (eSIM) present on the user device 150 .
- SIM subscriber identity module
- eSIM electronic SIM
- the three-tuple is used to populate a row in the routing table 520 , such as illustrated in Table 2.
- the encircled numerals 1, 2, and 3 refer to activities and messages that establish state values in the architecture.
- the messages and activities 4 - 10 illustrate message flow to achieve the protocol path 358 by which the source application 309 communicates with the device application 160 .
- the server network 140 uses the device registry 510 , the routing table 520 and the gateway 320 , in some embodiments, to achieve communication over the protocol path 358 in a scalable manner.
- Encircled numeral 4 refers to notification 170 being sent by the application server 110 to the server 120 .
- Notification 170 is created by the application server 110 after an event, in some embodiments, in the source application 309 .
- the server 120 performs mapping 222 using the device registry 510 to associate a user account alias with a GUID, indicated by encircled numeral 5. Based on the mapping 222 , the server 120 knows that the retrieved GUID corresponds to the server 130 . Thus, the server 120 sends, as indicated by encircled numeral 6, the notification 170 to the proximate server, in this case, the server 130 .
- Server 130 then needs to send a notification tap 175 via a gateway and learns the gateway by reference to the routing table 520 , indicated in FIG. 6 as “find routing, 224 .”
- the server 130 includes the value of the device identifier 602 found in the routing table 520 in a message to the gateway 320 .
- a home location register (HLR) associated with the MNO operating base station 330 can find a cell tower, based on a registration entry including the device identifier 602 (in some embodiments, an IMSI), from which the user device 150 can be reached with the signal 506 .
- HLR home location register
- the server 130 also augments a notification history 228 by performing an update 226 to add the notification 170 along with a current timestamp to the list of recent notifications recorded in the notification history 228 .
- Encircled numeral 9 refers to delivery of the notification tap 175 to the device application 160 . This delivery, in some embodiments, is through the gateway 320 and the base station 330 .
- the device application in some embodiments, then requests the notification content 182 corresponding to the notification tap 175 (e.g., using request message 230 shown in FIG. 2 ).
- the notification content 182 also referred to as one or more notification content packages, is delivered to the device application 160 from the application server 110 or the server network 140 , in some embodiments (e.g., messages 236 A or 236 B of FIG. 2 ).
- the user device 150 sends the GUID 604 to the server 130 with a particular timestamp value in an inquiry message.
- the inquiry message can be delivered using a wireless LAN, e.g., Wi-Fi, cellular or wired connection, depending on the connectivity of the user device 150 .
- the server 130 then forms an update message including those notification taps in the notification history more recent than the particular timestamp value and sends the update message to the user device 150 .
- the user device 150 then provides the notification taps to one or more respective device applications (all the notification taps need not be for the same device application) in the user device 150 . In some instances a cellular connection is used. After the one or more device applications request notification content packages and those have been delivered to the user device 150 over the cellular connection, the user device 150 , in some embodiments, disconnects from the cellular connection.
- FIG. 7 illustrates exemplary logic 700 for operation of a server, for example, server 130 in relation to the user device 150 .
- the server provides a GUID to a device.
- the server 130 provides the GUID 604 to the user device 150 .
- the server receives a three-tuple including the GUID, a gateway (GW) address, and a device identifier (in some embodiments, an IMSI value of a SIM or eSIM in the device).
- the server creates an entry in a routing table based on the GUID and the GW address. Network state has now been set. In some instances, a notification tap is then received, such as at 708 .
- the server finds a GW address from the routing table by reading the routing table based on the GUID.
- the server at 712 , updates a notification history to include the notification tap and a current timestamp value.
- the server sends the notification tap to the device via a gateway reached using the GW address.
- Presence includes meanings of an ability of a device to be reached via a network.
- a user device can make use of peers that have wall-power and possibly wired Internet connectivity. Instead of the user device registering with a gateway to receive notification taps, a user device may delegate this task (which can be referred to as “delegating presence”) to a peer device better able to receive the notification taps.
- the peer device may be a desktop computer with wall power and a wired Ethernet connection.
- a user device that is, a delegating device, may delegate to more than one peer device.
- the delegate device may provide cache storage of notification taps and of multiple notification content packages.
- the delegate device acts as an intermediary between the proximate server and the delegating devices.
- the delegate device is reached by the proximate server via a wired connection and/or via a wireless connection, depending on circumstances. Selection of the delegate device is performed by a multi-device algorithm based on physical proximity, network connectivity and/or power-availability of each device.
- FIG. 8 illustrates a diagram 800 of a notification tap architecture including a delegation feature.
- the user device 150 delegates reception of notification taps to another device, for example, a user device 810 .
- User device 810 may be one of several device types.
- user device 810 in some embodiments is a cellular phone, a tablet, a laptop, a desktop computer, a wireless-enabled wearable device such as a watch, or an internet-connected media server.
- the user device 810 is the destination of the notification tap 175 and, subsequently, the notification content 182 .
- User device 810 can be a non-cellular device and can be reached without use of a cellular network, in some embodiments.
- the user device 150 is referred to in FIGS. 8 to 10 as a delegating device, and the user device 810 is referred to in FIGS. 8 to 10 as a delegate device.
- User device 810 in some instances, has access to wall-power and/or a wired Ethernet connection.
- One or more delegating devices in some instances are in communication with the user device 810 . Any or all of the delegate device and the delegating device(s) in a presence cloud 820 can be the recipients of the notification tap 175 ; one or more may then receive or request the notification content 182 .
- FIG. 8 illustrates user device 150 as a delegating device in communication with the user device 810 via a wireless connection 806 .
- User device 810 and user device 150 are referred to herein as members of the presence cloud 820 .
- the user device 150 delegates presence to more than one peer device. Thus, user device 810 and another delegate device may both receive the notification tap 175 and forward it to the user device 150 .
- Wireless connection 806 within the presence cloud 820 is a low energy consumption, short-range connection supported by a communication format such as Bluetooth low energy (BLTE).
- the user device 810 requests one or more notification content 182 or notification content packages from application server 110 and/or other application servers associated with other applications.
- the user device 810 caches these notification content packages until the user device 150 requests delivery of the notification content 182 to the user device 150 .
- a message flow including delegation of presence is similar to that described in FIG. 6 for the notification taps, up to the point that the proximate edge server receives the notification (encircled numeral 6 of FIG. 6 ).
- the following 6 steps or activities illustrate delivery of a notification tap in an architecture including a delegate device.
- the proximate edge server receives the notification (also see steps leading up to an including encircled numeral 6 of FIG. 6 ).
- the proximate edge server recognizes the delegate device ( FIG. 8 , user device 810 ) as the target (next) recipient of the notification.
- the proximate edge server sends a notification tap (first instance of notification tap 175 in FIG. 8 ) to the delegate device (user device 810 ).
- the delegate device may request the notification content from the proximate edge server and cache it for the benefit of one or more delegating devices.
- the delegate device sends the notification tap (second instance of the notification tap 175 in FIG. 8 ) to the one or more delegating devices (for example, user device 150 , FIG. 8 ).
- Each notification includes a sequence-number-like identifier so that the recipient delegating device can discard notification taps already received.
- the delegating devices in the presence cloud can make use of peers in the presence cloud that have wall-power. Because the events associated with the source application in the application server are parsed into notification taps and notification content, a need for intermediate storage is reduced or eliminated. This parsing, in some embodiments, may occur at the application server 110 or in the server network 140 . Encryption to protect payload (notification content) can be provided on the notification content after the recipient user device (for example, user device 150 of FIG. 8 ) has established a persistent data connection. A user of the delegate device and delegating device do not need to be involved in identifying a device to be the delegate device.
- the probability is increased of low-latency notification content delivery while simultaneously maintaining only low power requirements at the delegating device.
- Caching of notification content at the proximate edge server (for example, server 130 of FIG. 8 ) or at the delegate device (for example, user device 810 of FIG. 8 ) also reduces latency.
- Future architectural/network changes to last-hop delivery modes are not propagated to the application server 110 because it has constant interfaces of the interface to the Internet 540 and the interface to the collection of edge servers in server network 140 .
- distinct delegate devices can be identified by instances of the multi-device algorithm running in devices associated with the user account alias at each separate geographic location. User account alias usage is described above with respect to Table 1, for example.
- FIG. 9 illustrates a diagram 900 of messages and activities in a notification tap architecture including a delegate device and a delegating device.
- Event 220 in FIG. 9 , occurs at the source application 309 in the application server 110 .
- a notification 170 is sent to the server network 140 and intra-network forwarding, mapping 222 , routing 224 , and update to notification history 228 occur as in encircled numerals 4, 5, 6, 7, and 8 of FIG. 6 .
- Notification tap 175 which will ultimately reach the device application 160 in the user device 150 , is sent to user device 810 (which is the delegate device) of the presence cloud 820 .
- User device 810 forwards, within the presence cloud 820 , the notification tap 175 to the user device 150 (which is the delegating device).
- Operating system 210 and device application 160 communicate with messages 230 and 232 as in FIG. 2 .
- Three alternatives are shown in FIG. 9 for delivery of the notification content 182 to the device application 160 .
- the alternatives of fetching from the server network 140 with messages 234 A and 236 A or of fetching from the application server 110 with messages 234 B and 236 B were discussed with respect to FIG. 2 .
- a third alternative of fetching from the delegate device within the presence cloud 820 , user device 810 is shown realized with messages 234 C and 236 C.
- the device application 160 receives the notification content 182 in a message 180 , similar to the completion of the communication shown in FIG. 2 and also as represented by path 358 of FIG. 3 , however now with the participation of the user device 810 , at least with respect to delivery of the notification tap 175 .
- FIG. 10 illustrates a diagram 1000 that provides an updated version of the protocol stack diagram of FIG. 3 with the user device 810 assisting in the last-hop delivery from the server network 140 possibly without use of the base station 330 .
- the base station 330 is present and provides, including use of the gateway 320 , a path to the user device 810 .
- Path 358 from the source application 309 to the device application 160 is achieved with the assistance of the user device 810 acting as a delegate.
- the protocol stack of the user device 810 includes a baseband layer 1010 in communication with a baseband layer 310 of server network 140 (as represented by server 120 / 130 in FIG. 10 ), middle layers 1012 , and, in some embodiments, a TCP layer 1014 .
- a physical layer 1011 is shown in communication over a path 1016 with a baseband layer 1042 of the user device 150 .
- Physical and baseband layers refer generally to modulation and electrical waveform transmitters and receivers (wired or wireless), payload and signaling transmission and reception, formatting of packets, and retransmission and channel coding operations.
- the terms physical layer and baseband layer are used interchangeably herein.
- middle layers 1048 communicate with higher layers that can include device applications 160 that communicate with application servers 110 .
- a peer-to-peer TCP connection is shown from the TCP layer 306 of the application server 110 to the TCP layer 314 of server 120 / 130 of the server network 140 (path 305 ) and to TCP layer 1014 of the user device 810 (path 356 ).
- the user device 810 receives both wall-power and has a high speed Ethernet connection (either wired or wireless).
- frequent high-bandwidth transmissions over the path 356 are not an energy concern for the user device 810 .
- the server network 140 is not involved and application server 110 reaches the user device 810 for delivery of notification content (as opposed to notification taps) via the Internet 540 .
- TCP layer 1014 and baseband layer 1010 are used to connect to the application server 110 over the Internet 540 to recover notification content.
- Other application servers also connect in to the server network 140 , forming a fan-in of notifications coming into the server network 140 and efficiently conveyed to hundreds of millions of devices, including user device 150 .
- User device 810 communicates with the user device 150 within the presence cloud 820 over the path 1016 .
- the transmission/reception method used to communicate over the path 1016 is a low energy protocol such as BTLE.
- FIG. 11 illustrates a diagram 1100 of exemplary logic performed by a delegate device, according to some embodiments.
- a delegate device in a presence cloud receives a notification tap intended for a delegating device that is a member of the presence cloud.
- the delegate device forwards the notification tap to the delegating device.
- the delegate device recovers notification content, referred to here as notification content packages.
- the notification content in some embodiments, is fetched from a server network and/or from one or more application servers.
- the delegate device receives a request from the delegating device for one or more notification content packages.
- the delegate device delivers the requested one or more content packages to the delegating device.
- the delegating device then acts on the notification content, which may be for example, a social media message, a software update, a transactional message with a web retailer, and/or any other notification-type content.
- Wireless devices and mobile devices in particular, can incorporate multiple different radio access technologies (RATs) to provide connections through different wireless networks that offer different services and/or capabilities.
- a wireless device can include hardware and software to support a wireless personal area network (WPAN) according to a WPAN communication protocol, such as those standardized by the Bluetooth® special interest group (SIG) and/or those developed by Apple referred to as an Apple Wireless Direct Link (AWDL).
- WPAN wireless personal area network
- SIG Bluetooth® special interest group
- AWDL Apple Wireless Direct Link
- the wireless device can discover compatible peripheral wireless devices and can establish connections to these peripheral wireless devices located in order to provide specific communication services through a WPAN.
- the wireless device can act as a communications hub that provides access to a wireless local area network (WLAN) and/or to a wireless wide area network (WWAN) to a wide variety of services that can be supported by various applications executing on the wireless device.
- WLAN wireless local area network
- WWAN wireless wide area network
- communication capability for a secondary wireless device can be extended using a local WPAN (or WLAN) connection to a primary wireless device that provides a WWAN connection.
- the secondary wireless device can also include wireless circuitry for a WLAN connection and can originate and/or terminate connections via a WLAN connection.
- Whether to use a direct connection or a relayed connection can depend on performance characteristics of one or more links of an active communication session between the secondary wireless device and a remote device. Fewer links (or hops) can provide for lower latency, and thus a direct connection can be preferred; however, unlike a legacy circuit-switched connection that provides a dedicated link, the direct connection via a WLAN can share bandwidth with other wireless devices on the same WLAN and/or with the backhaul connection from the access point that manages the WLAN. When performance on the local WLAN connection link and/or on the backhaul connection degrades, a relayed connection via a primary wireless device can be preferred. By monitoring performance of an active communication session and availability and capabilities of associated wireless devices (such as proximity to a primary wireless device), a secondary wireless device can request transfer of an active communication session between a direction connection and a relayed connection or vice versa.
- wireless communication device wireless device
- mobile device mobile station
- wireless station wireless access point
- station access point
- user equipment UE
- wireless user device wireless user device
- user device may be used interchangeably herein to describe one or more common consumer electronic devices that may be capable of performing procedures associated with various embodiments of the disclosure.
- any one of these consumer electronic devices may relate to: a cellular phone or a smart phone, a tablet computer, a laptop computer, a notebook computer, a personal computer, a netbook computer, a media player device, an electronic book device, a MiFi® device, a wearable computing device, as well as any other type of electronic computing device having wireless communication capability that can include communication via one or more wireless communication protocols such as used for communication on: a wireless wide area network (WWAN), a wireless metro area network (WMAN) a wireless local area network (WLAN), a wireless personal area network (WPAN), a near field communication (NFC), a cellular wireless network, a fourth generation (4G) LTE, LTE Advanced (LTE-A), and/or 5G or other present or future developed advanced cellular wireless networks.
- WWAN wireless wide area network
- WMAN wireless metro area network
- WLAN wireless local area network
- WPAN wireless personal area network
- NFC near field communication
- 4G fourth generation
- LTE LTE Advanced
- the wireless device can also operate as part of a wireless communication system, which can include a set of client devices, which can also be referred to as stations, client wireless devices, or client wireless devices, interconnected to an access point (AP), e.g., as part of a WLAN, and/or to each other, e.g., as part of a WPAN and/or an “ad hoc” wireless network, such as a Wi-Fi direct connection.
- AP access point
- the client device can be any wireless device that is capable of communicating via a WLAN technology, e.g., in accordance with a wireless local area network communication protocol.
- the WLAN technology can include a Wi-Fi (or more generically a WLAN) wireless communication subsystem or radio
- the Wi-Fi radio can implement an Institute of Electrical and Electronics Engineers (IEEE) 802.11 technology, such as one or more of: IEEE 802.11a; IEEE 802.11b; IEEE 802.11g; IEEE 802.11-2007; IEEE 802.11n; IEEE 802.11-2012; IEEE 802.11ac; or other present or future developed IEEE 802.11 technologies.
- IEEE Institute of Electrical and Electronics Engineers
- wireless devices described herein may be configured as multi-mode wireless communication devices that are also capable of communicating via different third generation (3G) and/or second generation (2G) RATs.
- a multi-mode wireless device can be configured to prefer attachment to LTE networks offering faster data rate throughput, as compared to other 3G legacy networks offering lower data rate throughputs.
- a multi-mode wireless device may be configured to fall back to a 3G legacy network, e.g., an Evolved High Speed Packet Access (HSPA+) network or a Code Division Multiple Access (CDMA) 2000 Evolution-Data Only (EV-DO) network, when LTE and LTE-A networks are otherwise unavailable.
- HSPA+ Evolved High Speed Packet Access
- CDMA Code Division Multiple Access
- EV-DO Evolution-Data Only
- FIG. 12 illustrates in block diagram format an exemplary computing device 1200 that can be used to implement the various components and techniques described herein, according to some embodiments.
- the detailed view of the exemplary computing device 1200 illustrates various components that can be included in the user device 150 , the user device 810 the server 130 , the server 120 , the gateway 320 , and the base station 330 illustrated in various figures, including FIGS. 1, 3, 5, 6, 8, 9, and 10 .
- the computing device 1200 can include a processor 1202 that represents a microprocessor or controller for controlling the overall operation of computing device 1200 .
- the computing device 1200 can also include a user input device 1208 that allows a user of the computing device 1200 to interact with the computing device 1200 .
- the user input device 1208 can take a variety of forms, such as a button, keypad, dial, touch screen, audio input interface, visual/image capture input interface, input in the form of sensor data, etc.
- the computing device 1200 can include a display 1210 (screen display) that can be controlled by the processor 1202 to display information to the user (for example, visual/silent alert notifications and/or information relating to incoming, outgoing, or active communication sessions).
- a data bus 1216 can facilitate data transfer between at least a storage device 1240 , the processor 1202 , and a controller 1213 .
- the controller 1213 can be used to interface with and control different equipment through an equipment control bus 1214 .
- the computing device 1200 can also include a network/bus interface 1211 that couples to a data link 1212 .
- the network/bus interface 1211 can include wireless circuitry, such as a wireless transceiver and/or baseband processor.
- the computing device 1200 also includes a storage device 1240 , which can includes a single storage or a plurality of storages (e.g., hard drives), and includes a storage management module that manages one or more partitions within the storage device 1240 .
- storage device 1240 can include flash memory, semiconductor (solid state) memory or the like.
- the computing device 1200 can also include a Random Access Memory (“RAM”) 1220 and a Read-Only Memory (“ROM”) 1222 .
- the ROM 1222 can store programs, utilities or processes to be executed in a non-volatile manner.
- the RAM 1220 can provide volatile data storage, and stores instructions related to the operation of the computing device 1200 .
- the computing device 1200 can include a secure element (SE) 1250 .
- the SE in some embodiments is a universal integrated circuit card (UICC) or an embedded UICC (eUICC).
- the SE in some embodiments, has present on it one or more SIMs or eSIMs.
- a method for delivering notification to a device includes a network server: (i) receiving, from the device, a message including: a user account identifier, a global user identifier (GUID), and a device identifier; (ii) creating an entry in a device registry, the entry including: the user account identifier, the device identifier, and the GUID; (iii) receiving from an application server a notification including the user account identifier; (iv) determining a network address of a gateway associated with the device based at least in part on the user account identifier and the entry in the device registry; and (v) sending a notification tap corresponding to the notification to the device associated with the GUID via the gateway using the network address of the gateway associated with the device.
- GUID global user identifier
- the GUID includes a value leased by a wireless service provider from an original equipment manufacturer (OEM) of the device.
- the device registry includes a second entry associated with the user account identifier, the second entry including a second device identifier associated with a second device, and the device and the second device are distinct devices.
- the method further includes the network server determining a second network address of a second gateway associated with the second device based at least in part on the user account identifier and the second entry in the device registry, and sending a second notification tap corresponding to the notification to the second device via the second gateway using the second network address.
- the method further includes the network server maintaining a notification history for the device, the notification history including source identifiers for application servers and timestamp values for notifications received from the application servers.
- the method further includes the network server receiving an inquiry message from the device, the inquiry message including the GUID and a timestamp value, and sending to the device, via the gateway, one or more notification taps corresponding to one or more notifications having timestamp values more recent than the timestamp value included in the inquiry message.
- the method further includes the network server receiving from the device a request for notification content for the notification, and sending to the device the notification content.
- the notification tap is sent without encryption, and the notification content is sent with secure end-to-end encryption.
- the notification tap is sent to the device via a delegate device determined by the device.
- the delegate device caches notification content for the notification and provides the notification content to the device separately from the notification tap.
- the notification tap is sent to the device via a paging channel of a wireless network.
- the device identifier includes an International Mobile Subscriber Identity (IMSI).
- IMSI International Mobile Subscriber Identity
- the device identifier includes a temporary identifier generated by a network with which the device is registered for a wireless service.
- a method for delivering notifications, to a delegating device via a delegate device includes the delegate device: (i) providing a globally unique identifier (GUID) for the delegate device, a gateway (GW) address for a gateway proximate to the delegate device, and a user account identifier to a network server; (ii) receiving via the gateway a notification tap corresponding to a notification for the delegating device; and (iii) sending the notification tap to the delegating device, where the delegate device and the delegating device are both associated with the user account identifier.
- GUID globally unique identifier
- GW gateway address for a gateway proximate to the delegate device
- user account identifier to a network server
- the method further includes the delegate device receiving, via the gateway, notification content associated with the notification for the delegating device; caching the notification content for subsequent delivery to the delegating device; and providing the notification content to the delegating device separately from the notification tap.
- the method further includes the delegate device receiving from the delegating device a request for notification content associated with the notification after sending the notification tap to the delegating device, where the notification content is provided to the delegate device in response to receipt of the request for notification content.
- the method further includes the delegate device obtaining the GUID from the network server, where the GUID includes a value leased by a wireless service provider from an original equipment manufacturer (OEM) of the delegate device.
- the notification for the delegating device originates from an application server that stores a user account alias associated with the delegating device, and the user account alias is provided to the application server upon installation of an application on the delegating device.
- a method includes a network server: (i) providing a globally unique identifier (GUID) to a device; (ii) receiving the GUID, a gateway (GW) address associated with a gateway, and a device identifier from the device; (iii) creating an entry in a routing table based on the GUID, the GW address, and/or the device identifier; (iv) receiving a notification tap addressed to the device associated with the GUID; (v) accessing, based on the GUID, the GW address in the routing table; (vi) updating a notification history to include the notification tap; and (vii) sending the notification tap to the device via the gateway.
- the notification tap is provided to the device via a paging channel.
- the various aspects, embodiments, implementations or features of the described embodiments can be used separately or in any combination.
- Various aspects of the described embodiments can be implemented by software, hardware or a combination of hardware and software.
- the described embodiments can also be embodied as computer readable code on a computer readable medium.
- the computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, hard storage drives, solid state drives, and optical data storage devices.
- the computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This Application claims the benefit of U.S. Provisional Patent Application No. 62/417,213, entitled “PUSH NOTIFICATIONS FOR MULTIPLE USER DEVICES” filed Nov. 3, 2016, the content of which is incorporated by reference herein in its entirety for all purposes.
- The described embodiments relate generally to communications using electronic devices, including systems and techniques for providing push notifications to multiple user devices.
- Today, a user can have multiple active electronic devices available for communication, sometimes collocated and at other times distributed at different locations. In addition to a smart phone, a user may also have a tablet device, a laptop computer, a desktop computer, a portable media player, a wearable computing device, and/or one or more other electronic devices, some or all of which may be able to conduct wireless communications using one or more different radio access technologies (RATs) and/or wired communications. The multiple different electronic devices can be associated with a common user account, and the user of the multiple electronic devices can receive notifications for various applications and/or services on one or more of the multiple electronic devices. The notifications can be indicated to the user by one or more different outputs from the various electronic devices, such via as an audible indication (e.g., a ringtone or alert sound), a visual indication (e.g., a pop-up window, a drop down window, or an application badge or icon change), and/or a haptic indication (e.g., a vibration or tapping pattern). Individual applications and services on each of the user's multiple electronic devices can receive push notifications, and with the proliferation of electronic devices and applications thereon, some wireless network architectures are unable to support enough simultaneous semi-persistent higher layer connections for all electronic devices to communicate with network-based servers that support the applications and services that seek to provide push notifications to the electronic devices.
- In view of the foregoing, there is a need for a push notification architecture to reduce network loading and intelligently and efficiently manage notifications for multiple user devices to provide the best user experience possible.
- Representative embodiments set forth herein disclose various systems and techniques for intelligently and efficiently managing push notifications for multiple user devices. The embodiments set forth various systems and techniques for communicating notifications for applications and/or services to user devices via one or more network-based edge servers with which a set of multiple associated user devices are registered. Each user device can be associated with a common network-based service account, e.g., an iCloud® account, and can be configured to receive notifications for various applications and services. A user device can receive notifications directly from an associated edge server or via one or more intermediate nodes and/or delegated user devices. Delegation of user devices to other associated user devices can be based on a default configuration and/or a user configurable setting, which can vary for different applications and services as well as based on capabilities of the user devices. Rather than use a semi-persistent higher layer connection, e.g., at a Transport Control Protocol (TCP) layer, with keep-alive messaging to retain the higher layer connection between a user device and a distant network-based server that generates notifications to push to the user device, the user device registers with a network-based edge server that coalesces notifications received from various sources for the user device. The edge server sends separately a notification tap, to indicate availability of notifications, and subsequently provides notification content, which can be retrieved by the user device and/or by delegated user devices. The notification tap can be provided to the user device: (i) via a cellular paging mechanism when the user device is reachable via a cellular wireless network, (ii) via a wireless personal area network (WPAN) connection, such as a Bluetooth classic or Bluetooth Low Energy (BTLE) connection when the user device is reachable via another nearby associated user device, (iii) via a wireless local area network (WLAN) connection, such as a Wi-Fi connection when the user device is reachable through a WLAN network, (iv) via a peer-to-peer wireless connection from another associated user device, and/or (v) via a wired connection, e.g., an Ethernet connection, when the user device is reachable through a wired network. Notification content for a particular user device can be cached at the edge server and/or at one or more delegated user devices for later retrieval by the particular user device. A user device can optionally take actions in response to a notification tap to retrieve notification content for pending cached notifications. Splitting notifications for user devices into two parts, a notification tap with no content provided initially, and a notification portion that includes content payload provided separately allows for efficient low-bandwidth push indications of available notifications with on demand pull retrieval by requesting user devices of notification content conveniently stored at a proximate edge server and/or at a delegated user device. Notification content need not be sent to multiple user devices, thereby reducing data traffic loading, and a low latency notification tap can be provided with minimal signaling. Additionally, the notification tap can be sent without encryption reducing the processing power required for processing the notification taps, as the notification content can be sent separately with secure end-to-end encryption. The embodiments disclosed herein apply to one or more user devices, some of which can include wireless capability, but can also be used beneficially for wired user devices as well. In some embodiments, some of the user devices are wireless cellular devices; while in some embodiments, the notification methods and apparatuses described can operate without a wireless cellular device.
- This Summary is provided merely for purposes of summarizing some example embodiments so as to provide a basic understanding of some aspects of the subject matter described herein. Accordingly, it will be appreciated that the above-described features are merely examples and should not be construed to narrow the scope or spirit of the subject matter described herein in any way. Other features, aspects, and advantages of the subject matter described will become apparent from the following Detailed Description, Figures, and Claims.
- Other aspects and advantages of the embodiments described herein will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the described embodiments.
- The included drawings are for illustrative purposes and serve only to provide examples of possible structures and arrangements for the disclosed systems and techniques for intelligently and efficiently managing calls and other communications between multiple associated user devices. These drawings in no way limit any changes in form and detail that may be made to the embodiments by one skilled in the art without departing from the spirit and scope of the embodiments. The embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings, where like reference numerals designate like structural elements.
-
FIG. 1 illustrates an exemplary notification tap architecture, according to some embodiments. -
FIG. 2 illustrates an exemplary message flow in the notification tap architecture ofFIG. 1 , according to some embodiments. -
FIG. 3 illustrates an exemplary stack diagram in the notification tap architecture ofFIG. 1 with a gateway and base station also illustrated, according to some embodiments. -
FIG. 4 illustrates exemplary logic performed by a server of a server network, according to some embodiments. -
FIG. 5 illustrates an exemplary notification tap architecture, including illustration of a device registry, a routing table, and a notification history, according to some embodiments. -
FIG. 6 illustrates exemplary activities in the architecture ofFIG. 5 , according to some embodiments. -
FIG. 7 illustrates exemplary logic of a server corresponding to some of the events ofFIG. 6 , according to some embodiments. -
FIG. 8 illustrates an exemplary notification tap architecture including a presence cloud, according to some embodiments. -
FIG. 9 illustrates exemplary messages and activities in a notification tap architecture including a presence cloud, according to some embodiments. -
FIG. 10 illustrates exemplary protocol stacks of entities in a notification tap architecture that includes a presence cloud, according to some embodiments. -
FIG. 11 illustrates exemplary logic for a delegate device supporting delivery of a notification tap and of notification content packages to a delegating device, according to some embodiments. -
FIG. 12 illustrates an exemplary computing device for realizing various devices disclosed herein, according to some embodiments. - Representative applications of apparatuses, systems, and methods according to the presently described embodiments are provided in this section. These examples are being provided solely to add context and aid in the understanding of the described embodiments. It will thus be apparent to one skilled in the art that the presently described embodiments can be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order to avoid unnecessarily obscuring the presently described embodiments. Other applications are possible, such that the following examples should not be taken as limiting.
- Representative embodiments set forth herein disclose various systems and techniques for intelligently and efficiently managing notifications for multiple user devices. The embodiments set forth various systems and techniques for communicating notifications for applications and/or services to user devices via one or more network-based edge servers with which a set of multiple associated user devices register. The term “notification” is used to refer to any information presented via a user interface (UI) of a user device for an application and/or service, particularly for important events. Notifications can appear at the top or corner of a screen (also referred to as a banner) for a short period of time or can overlay in the center of the screen until acknowledged or until a timeout occurs. Some notifications associated with applications provide an indication as a badge overlaid on the application icon. The term “notification” will be used to refer to any such notification indication whether a banner, a pop-up window, or an actionable interrupt. Many applications and services can provide for notifications to present supplemental information at a user device, such as to indicate initiation of a proposed service connection (voice, video, Internet messaging, teleconferencing, etc.), to catalog one or more events (email, voice mail, reminders, appointments, etc.), or to indicate near real time information (stock, weather, sports, news, etc.). Notifications can be organized into various categories and presented to the user of the mobile wireless communication device on demand (e.g., in response to a user input), as an overlay (e.g., as an indicator associated with a graphical icon), or as an interrupt (e.g., as a pop-up message requiring a user response). User devices can be configured to present notifications in different forms, e.g., based on user preference or based on applicability to a service/application. The notifications can be provided by one or more different outputs from the various user devices, such as an audible indication (e.g., a ringtone or alert sound), a visual indication (e.g., a pop-up window, a drop down window, or an application badge or icon change), and/or a haptic indication (e.g., a vibration or tapping pattern). Both the user of a set of associated user devices and at least some of the user devices are mobile, and as such, how to reach a user device (or set of multiple user devices) to provide notifications can change over time.
- Each user device can be associated with a common network-based service account, e.g., an iCloud account, and can be configured to receive notifications for various applications and services. When a user device is not in proximity to any other associated user devices, the user device can function as a primary user device and provide notifications to a user based on a default configuration and/or based on a user configurable setting, which can vary for different applications and services. When the user device is within proximity of one or more other associated user devices, the user devices can exchange relevant capability information among each other, such as device type, software versions, hardware versions, configuration settings, operating states, battery level, user interaction states, and/or power source. The user devices can also exchange information for applications that are synchronized via network-based services, such as via iCloud or via application specific servers. Representative applications include a scheduling calendar, an email application, a “reminder” or “to do” list, social networking applications, in addition to communication services that can provide voice connections, video connections, and/or messaging connections. The user devices can negotiate dynamically or be configured to determine to which of the user devices to provide notifications for a set of applications and services common to a set of user devices.
- Each user device of a set of associated user devices can register with a proximate edge server and obtain a globally unique identifier (guid) from the proximate edge server. The user device, if capable of cellular wireless communications, can obtain from a cellular wireless base station, e.g., an eNodeB, a device identifier (for example, a unique international mobile subscriber identity (IMSI)) and a cellular wireless gateway address, e.g., a resolvable domain name server (DNS) address and/or an Internet Protocol (IP) address, for a gateway that can provide a notification indication via a cellular wireless system, e.g., a paging system, to the user device. The user device can register its presence with the proximate edge server by sending the device identifier, the cellular wireless gateway address, and the GUID to the proximate edge server. The edge server can provide a notification indication, e.g., a “notification tap”, to the user device via the cellular wireless gateway, e.g., by sending a message to the cellular wireless gateway address to page the user device and indicate one or more available notifications. The edge server can maintain a semi-persistent higher layer connection, e.g., at the TCP layer, with one or more source servers that generate notifications for applications and/or services for the user device. The edge server can coalesce notifications from multiple applications and servers for the user device to provide a consolidated notification tap to the user device to indicate availability of the notifications for retrieval. In some embodiments, the user device can delegate presence to another user device that is associated with a common user account, e.g., an iCloud account, and the notification taps for the notifications can be sent to the delegated user device, which can forward the notification tap to the user device. Additionally, the edge server and the delegated user device can cache notification content for the notifications for retrieval on demand by the user device. In some embodiments, the user device can delegate presence to multiple delegated user devices in parallel. In some embodiments, a delegated user device can consolidate notifications for multiple associated user devices and provide notification taps and notification content to individual user devices on demand.
- In some embodiments, a user device in the set of associated user devices can maintain a “keep alive” protocol to confirm relative proximity between the user device and one or more delegated user devices. In some embodiments, the set of user devices detect proximity to each other and communicate with each other based on a wireless personal area network (WPAN) wireless communication protocol, e.g., a Bluetooth® (BT) Classic or Bluetooth Low Energy (BTLE) wireless communication protocol, and/or based on a wireless local area network (WLAN) wireless communication protocol, e.g., a peer-to-peer Wi-Fi wireless communication protocol or an Apple Wireless Direct Link (AWDL) wireless communication protocol.
- Accordingly, the foregoing approaches provide systems and techniques for intelligently and efficiently managing notifications for multiple user devices. A more detailed discussion of these systems and techniques is set forth below and described in conjunction with
FIGS. 1 through 12 , which illustrate detailed diagrams of systems and methods that can be used to implement these systems and techniques. - A user device can include one or more device applications that can interact with one or more application servers associated with one or more source entities. For each application, an application server associates the user device with a user account alias, which can also be referred to as a user account identifier. A user device may be referred to herein as a device. When an event occurs at a source entity, the application in the user device must be promptly informed of the event. A network of servers can provide a notification service to convey event data to the application in the user device. The event data may be simply a notification indication. Such a notification indication can be referred to as a notification tap, analogous to a tap on the shoulder. Content related to the event can be obtained by the device application after receipt of the notification tap; this content can be referred to as notification content or, in some specific instances, as a notification content package. For example, the application server can be hosted by a web service such as an auction forum or a web-based retailer. The user device can be a cellular phone, a tablet, a laptop, a desktop computer, a wireless-enabled wearable device such as a watch, or an internet-connected media server (e.g., AppleTV). The network of servers can include a collection of servers known as edge servers. The network of servers can include one or more device registries. The user device can obtain a globally unique identifier (GUID) from an edge server. Each device registry contains entries associating the user account alias with particular devices and includes the GUID for each user device. Last hop delivery from an edge server to the user device can be via a gateway. The gateway can be co-located with, for example, a cellular base station such as a Long Term Evolution (LTE) eNodeB and radio tower or a Wi-Fi access point (AP). In some embodiments, routing is done without use of a path through a cellular network and no gateway is involved.
- To avoid maintaining a communication network link state for millions of user devices, the device registry maintains an association that links a user account alias with one or more user devices. This device registry is used on an on demand basis, thus eliminating any link state requirement. The device registry can serve one or more edge servers. An exemplary pathway for a notification tap to flow from the application server to the user device is established as follows, in some embodiments.
- 1) The user device obtains the gateway address from the gateway.
- 2) The user device sends the gateway address to an edge server and sends a device identifier to the edge server. The device identifier can be a generic identifier, which may be pre-existing or may be a temporary identifier generated by the network. A pre-existing identifier that may be used in some embodiments is an international mobile subscriber identity (IMSI).
- 3) The edge server stores the device identifier and the gateway address in a routing table.
- 4) When an event occurs at the application server, a notification is sent to an edge server (the application server is aware of the user account alias created or provided when the device application is installed in the user device).
- 5) The edge server maps the user account alias in the notification to the one or more guids associated with the user account.
- 6) Based on the guid values, the edge server forwards the notifications to an edge server proximate to the devices of the user account (when the devices of the user account are split geographically, the notifications can be forwarded as necessary to all proximate edge servers).
- 7) The proximate edge server maintains a list or history of recent notification taps (GUIDs, sources (application servers), and a timestamp for each notification tap).
- 8) The proximate edge server sends a notification tap to the user devices, possibly via a paging channel (the user devices may have delegated their presence to a delegate device, in which case the notification tap flows to the delegate device).
- 9) The user device that received the notification tap, in some embodiments, establishes an event-driven temporary connection, e.g., TCP-based via a cellular data bearer channel, to fetch one or more (a batch of) notifications after receiving the notification tap. While the temporary connection is established, any new notifications for the device can be routed directly over the temporary connection. The user device, in some embodiments, requests the notification content from the proximate edge server (when a delegate device received the notification tap, it forwards the notification tap to one or more recipients (delegating devices) using a low-power wireless communication protocol, e.g., via Bluetooth Low Energy or Bluetooth Classic) when available or via another wireless communication protocol, e.g., via Wi-Fi or wireless peer-to-peer communication.
- Some exemplary benefits of the notification tap architecture are as follows. The user device does not need a steady state semi-persistent higher layer connection to the edge servers nor does it need such connections to application servers. For example, each application and/or service in a collection of device applications and services for a user device can send notifications to the user device. An example of a device application can also be referred to as a client application. The techniques presented herein apply generally to applications installed on a user device; however, the applications are not limited to those involved in a client-server relationship. In some existing architectures, notifications can be supported by semi-persistent higher layer connections, e.g., at a TCP layer, between a given application server hosting a source application and a given user device hosting a device application. Storing TCP state for each of these applications in the network of a mobile network operator (MNO) that provides service to the user device is not scalable. In exemplary embodiments disclosed herein, the notification can be parsed into multiple parts, e.g., the notification tap and the notification content. The notification tap can be sent through an existing low-latency network such as via a cellular paging radio resource control (RRC) signaling channel (LTE, UMTS, GSM), or via a legacy one-way paging system separate from the cellular system. The details of the delivery method are opaque to the application server. After installation of the device application in the user device and creation of an entry in the routing table, the edge servers can carry the burden of delivering notifications for the device application to the user device. The edge servers can also fetch notification content from the application server in response to requests from the user device (or from associated delegated user devices), such as following sending a notification tap to the user device (and/or to the delegated user device(s)). The notification tap can be provided to the user device, directly or via intermediate delegated user devices, without undue steady-state power drain from the user device yet with low latency.
-
FIG. 1 illustrates a diagram 100 of anapplication server 110 in communication with auser device 150 via aserver network 140. Theserver network 140 includes 120 and 130.servers 120 and 130 may also be referred to herein as edge servers. AServers device application 160 is installed on theuser device 150. As noted inFIG. 1 ,user device 150, in some embodiments, may or may not be a cellular device. For example,user device 150 in some embodiments, includes a cellular phone, a tablet, a laptop, a desktop computer, a wireless-enabled wearable device such as a watch, and/or an internet-connected media server. - After an event occurrence at a source, e.g., at an
application server 110, anotification 170 is sent to theserver 120 of theserver network 140 based on an association known at theapplication server 110 between a user account alias and theserver network 140. Upon receiving thenotification 170, theserver 120 determines thatserver 130 can deliver a notification tap to theuser device 150. Formation of anotification tap 175 from thenotification 170 is indicated onFIG. 1 with an arrow near the bottom of the figure. - The
server network 140 provides thenotification tap 175 for thenotification 170 received from theapplication server 110.Notification content 182 for thenotification 170 includes payload or data that theapplication server 110 seeks to convey to thedevice application 160 of theuser device 150. Theapplication server 110, in some embodiments, can also send thenotification content 182 to theserver 120 of theserver network 140. In some embodiments, theapplication server 110 only sends thenotification 170 to theserver network 140 and awaits a request for thenotification content 182. - The
notification content 182, payload information that is distinct from thenotification tap 175, is indicated at the bottom ofFIG. 1 and also indicated as being delivered in ageneric message 180. In some embodiments, thenotification tap 175 is conveyed to theuser device 150 without encryption. Transmission ofnotification tap 175, in some embodiments without encryption makes additional channels available for conveyance and saves processing power and avoids delay required for encryption and decryption operations. Thenotification content 182 can be stored at convenient retrieval locations and fetched from those locations by theuser device 150. This reduces traffic because the notification content is only sent to those devices requesting it and reduces latency because a retrieval location can be reached directly by theuser device 150 without re-traversing the network path that thenotification tap 175 followed. The multiple-retrieval aspects of the architecture are illustrated in subsequent figures. For example, as shown inFIG. 2 , theuser device 150 can fetch thenotification content 182 from the server network 140 ( 234A and 236A), and/or from the application server 110 (messages 234B and 236B). Also, as shown inmessages FIG. 9 and illustrated in logic 1106-1108-1110 ofFIG. 11 , theuser device 150 can fetch thenotification content 182 from those locations and also from a delegate device (user device 810, 234C and 236C).messages - The
server 120 forwards thenotification 170 to theserver 130 with which the user device 150 (and/or one or more delegate user devices) can be registered. Theserver 130 sends thenotification tap 175 to thedevice application 160 on theuser device 150, and subsequently, thedevice application 160 receives amessage 180 bearing thenotification content 182. As discussed herein, separation of the notification into thenotification tap 175, which can correspond to one or more coalesced notifications fordifferent device applications 160 on theuser device 150, from delivery of thenotification content 182 provides for a low latency, minimal bandwidth push indication of the availability of notification, which can be retrieved responsive to on demand pull requests from the user device 150 (and/or from one or more delegate user devices). Notification content is also referred to herein, as a notification content package or as notification content packages. - The user device 150 (and user device 810, introduced in
FIG. 8 ) can represent a device having wireless communications capabilities, such as a smart phone (e.g., an iPhone®), a tablet device (e.g., an iPad®), a wearable computing device (e.g., an Apple Watch™), a portable media player (e.g., an iPod®), a laptop computer (e.g., a MacBook®), a desktop computer (e.g., an iMac®), a digital media server/extender (e.g., an Apple TV®), among other possible devices. Additional user devices, which can connect to theuser device 150 and provide audio, video, and/or data media interfaces supplemental to theuser device 150, can include a wireless headset, a vehicle sound system, a digital television, a digital media recorder, a wearable computing device or any other suitable wireless device capable of wireless communication and input/output capabilities. -
FIG. 2 illustrates a diagram 200 of an exemplary message flow in a notification tap architecture, according to some embodiments. Time advances from top to bottom, as illustrated by the time axis on the left. Across the top of the figure, headings are provided identifying theapplication server 110,server network 140, and theuser device 150. Within theuser device 150, anoperating system 210 and thedevice application 160 are indicated. The vertical lines below the headings provide a timeline for messages that originate or terminate at the corresponding entity or network, or events or activities associated with an entity or network at a particular time. Messages between entities, in some instances, are represented as numbered arrows, with functional description provided in the corresponding description herein. - At a time t0, an
event 220 occurs at the application server 110 (for example, in asource application 309, as illustrated further inFIG. 3 ). Theapplication server 110, in response to theevent 220, sends anotification 170 to theserver network 140. Within theserver network 140, amapping 222 occurs that determines a network server that is near, or proximate to, theuser device 150. The notification is forwarded to the proximate network server (for example, the server 130) and the proximate server finds arouting 224 to reach a gateway (forexample gateway 320, as illustrated further inFIG. 3 ) that can forward a notification tap to theuser device 150. The proximate network server performs anupdate 226 to anotification history 228 of notifications for theuser device 150. Thenotification tap 175 at time t1, via the gateway (not shown), reaches theoperating system 210 of theuser device 150. Theoperating system 210, in some embodiments, sends amessage 230 to thedevice application 160 and receives aresponse message 232. The notification content is fetched at a time t2.FIG. 2 indicates this time schematically or qualitatively. In some embodiments, theoperating system 210 obtains the notification content (or notification content package), from theserver network 140 by sendingmessage 234A and receiving the notification content in amessage 236A. In some embodiments, theoperating system 210 obtains the notification content (or notification content package), from theapplication server 110 by sendingmessage 234B and receiving the notification content in amessage 236B. The alternative entities delivering the notification content to theuser device 150 are marked with dashed ellipses and the annotation “alternatives” inFIG. 2 . At a time t3,message 180, bearing thenotification content 182, is received by thedevice application 160. The notification content, in some embodiments, is a social media message, a software update, part of correspondence with a web retailer or web-based auction service, for example. Thedevice application 160 then processes the notification content as appropriate. In some embodiments, notification content is cached at the proximate network server of theserver network 140. In some embodiments, the user device 150 (or a delegate user device) retrieves thenotification content 182, in response to thenotification tap 175, via the proximate network server of theserver network 140, either from notifications cached at the proximate network server or dynamically retrieved by the proximate network server from theapplication server 110. -
FIG. 3 illustrates an exemplary stack diagram 300 that shows particular portions of protocol stacks for various entities in a notification tap architecture. Not all layers are shown; some layers are represented as a single layer. A protocol stack of theapplication server 110 includes asource application 309,middle layers 308, a transport control protocol (TCP)layer 306, andlower layers 302. An exemplary protocol stack of 120 and 130 includes aservers TCP layer 314,middle layers 312, and abaseband layer 310. A protocol stack of agateway 320 includesmiddle layers 324 andbaseband layer 322. A protocol stack of abase station 330 includes abaseband layer 332 directed to thegateway 320 and aphysical layer 336 directed touser device 150. The protocol stack of thebase station 330 also includesmiddle layers 334. The user device's 150 protocol stack includes thedevice application 160, middle layers 348,TCP layer 346,other layers 344, andbaseband 342. Thebase station 330 may be a cellular base station or, in some embodiments, a Wi-Fi access point (AP). The terms baseband layer and physical layer are used interchangeably herein. - The device-server communication of
FIG. 3 is illustrated as a peer-protocollevel communication path 358. The TCP connection between theapplication server 110 and the server 120 (shown asserver 120/130 inFIG. 3 ) is shown aspath 305. The TCP connection betweenserver 130 and theuser device 150 is shown aspath 356.Base station 330middle layers 334 communicate with theother layers 344 of theuser device 150 onpath 354. Physical layer paths are shown as 303, 316, 326, and 352. Thegateway 320 and thebase station 330 may be co-located. Other middle-layer protocols are available, for example the fiber-oriented SONET protocols and circuit-like asynchronous transport mode (ATM); TCP is simply representative of a network protocol. -
Path 358 illustrates communication activity of representative embodiments disclosed herein that efficiently support notifications in a scalable manner. The notification architecture allows many TCP connections from many application servers to exist via paths such as 305 and to not burden thebase station 330 or the MNO network in which thebase station 330 is integrated. Theserver 130 can reach thegateway 320 over the Internet. Theapplication server 110 can reach theserver 120 over the Internet. The notification architecture illustrated decouples theapplication server 110 from routing details of the notification such as the participation of thegateway 320 to provide notification to theuser device 150. The cooperation of thegateway 320 and thebase station 330 allows delivery of thenotification tap 175 to theuser device 150 viapath 354 and without the use ofTCP path 356. In terms of protocol layers,other layers 344, in some embodiments, passes the notification tap received overpath 354 using a primitive inter-layer message directed to the layer labeled as SIG. 347 inFIG. 3 (e.g., SIG. 347 is an RRC signaling layer, in some embodiments). SIG. 347 then passes the notification tap up to the middle layers 348 and finally it reaches thedevice application 160 without using theTCP layer 346 of the protocol stack of theuser device 150. -
FIG. 4 illustrates a diagram 400 of exemplary logic performed by theserver network 140 to deliver a notification tap to a user device such as theuser device 150. At 402, theserver network 140 establishes a device registry entry including a global user identifier (GUID) associated with a device. The GUID can be a value leased by a wireless service provider from a original equipment manufacturer (OEM) of theuser device 150. The entry can be indexed (or addressed) by a user account identifier (which can also be referred to as a user account alias). At 404, theserver network 140, for example theserver 120, receives an event notification from an application server, for example, theapplication server 110. Theapplication server 110 reaches theserver 120 based on an association that it recognizes, for example, based on a previously-stored database entry, between the user account alias and theserver network 140. The notification is then forwarded within the server network 140 (not illustrated inFIG. 4 ). At 406, a member of theserver network 140, for example, theserver 130, determines a network address of a gateway based on accessing the device registry using the user account identifier as an address. At 408, theserver network 140, for example, theserver 130, sends a notification tap corresponding to the notification, via the gateway, to the user device associated with the GUID. For example, thegateway 320 can make use of thebase station 330 to delivernotification tap 175 to theuser device 150 viapath 354. -
FIG. 5 illustrates a diagram 500 including additional elements of the notification tap architecture introduced inFIG. 1 . A wireless connection from thebase station 330 to theuser device 150 is shown as a jagged line labeled 506. The connection from theserver 130 to thegateway 320 is shown as 502. 502 may be realized using theInternet 540. Adevice registry 510, a routing table 520, anotification history 530, and theInternet 540 are illustrated. Theapplication server 110, elements of theserver network 140, and thegateway 320, in some embodiments, communicate via theInternet 540. Thedevice registry 510 holds entries such as those shown in Table 1. -
TABLE 1 Device Registry, Example Entries Row Index User Account Alias Device GUID 1 Kris iphone7 2343-dd4f-23r-23 2 Kris watch rty5-45-2- 4456fr 3 Kris iMac 546-rw-32- dvvb 4 Kris Macbook 232-csdf-css-wqw - The
device registry 510 is populated with entries when a user installs a given device application on a device, for example, thedevice application 160 installed on theuser device 150. An application server, for example theapplication server 110, associated with the device application is informed of the user account alias and of an address associated with theserver network 140. After theuser device 150 obtains a GUID from theserver network 140, the GUID is entered into the device registry and associated with the user account alias. A server of theserver network 140 reading a GUID value from the device registry is able to determine a server of theserver network 140 that is nearby to theuser device 150. Such a server is sometimes referred to herein as a proximate server. Theserver 130 is the proximate server with respect to theuser device 150. In some embodiments, theserver 130 communicates to theuser device 150 viagateway 320 which is interconnected tobase station 330 overconnection 504. - The routing table 520 holds entries such as those illustrated in Table 2. “Address_1,” and “Generic_ID_1,” etc., are simply representative of actual numerical or character string values. In some embodiments, a network may use an IMSI as the generic identifier.
-
TABLE 2 Routine Table, Example Entries Row Index GUID GW address Device Identifier 1 2343-dd4f-23r-23 Address_1 Generic_ID_1 2 rty5-45-2- 4456fr Address_1 Generic_ID_2 3 546-rw-32-dvvb Address_1 N/ A 4 232-csdf-css-wqw Address_1 N/A - The
notification history 530 holds database entries such as those illustrated in Table 3. “Time_1,” etc., are simply representative of actual numerical values. -
TABLE 3 Notification History, Example Entries Source (Application Row Index GUID Server) Timestamp 1 2343-dd4f-23r-23 messages.apple.com Time_1 2 2343-dd4f-23r-23 newsfeed.apple.com Time_2 3 2343-dd4f-23r-23 wsj.com Time_3 4 2343-dd4f-23r-23 twitter.com Time_4 -
FIG. 6 illustrates a message flow/activity diagram 600 for a notification tap architecture with messages and activities indicated. InFIG. 6 , connecting pathways between architectural elements are not shown. Ordinal numbers in circles indicate successive messages or activities. The first activity is thus marked with anumeral 1 inside a circle and is annotated “ObtainGUID 604”. That is, at some point in time, theuser device 150 obtains a GUID value from theserver network 140. The illustrative GUID inFIG. 6 is indicated with thereference numeral 604. The encirclednumeral 2 indicates that theuser device 150 obtains the gateway (GW)address 606. The encirclednumeral 3 indicates that theuser device 150 provides a triplet of values (or three-tuple) to theserver 130. The three-tuple includesGUID 604, theGW address 606, and a device identifier 602. For example, the device identifier 602, in some embodiments, is an IMSI value of a subscriber identity module (SIM) or electronic SIM (eSIM) present on theuser device 150. The three-tuple is used to populate a row in the routing table 520, such as illustrated in Table 2. The encircled 1, 2, and 3 refer to activities and messages that establish state values in the architecture. The messages and activities 4-10 illustrate message flow to achieve thenumerals protocol path 358 by which thesource application 309 communicates with thedevice application 160. Theserver network 140 uses thedevice registry 510, the routing table 520 and thegateway 320, in some embodiments, to achieve communication over theprotocol path 358 in a scalable manner. - Encircled numeral 4 refers to
notification 170 being sent by theapplication server 110 to theserver 120.Notification 170 is created by theapplication server 110 after an event, in some embodiments, in thesource application 309. In response to thenotification 170, theserver 120 performsmapping 222 using thedevice registry 510 to associate a user account alias with a GUID, indicated by encirclednumeral 5. Based on themapping 222, theserver 120 knows that the retrieved GUID corresponds to theserver 130. Thus, theserver 120 sends, as indicated by encircled numeral 6, thenotification 170 to the proximate server, in this case, theserver 130.Server 130 then needs to send anotification tap 175 via a gateway and learns the gateway by reference to the routing table 520, indicated inFIG. 6 as “find routing, 224.” In some embodiments, theserver 130 includes the value of the device identifier 602 found in the routing table 520 in a message to thegateway 320. A home location register (HLR) associated with the MNOoperating base station 330 can find a cell tower, based on a registration entry including the device identifier 602 (in some embodiments, an IMSI), from which theuser device 150 can be reached with thesignal 506. - The
server 130 also augments anotification history 228 by performing anupdate 226 to add thenotification 170 along with a current timestamp to the list of recent notifications recorded in thenotification history 228. Encircled numeral 9 refers to delivery of thenotification tap 175 to thedevice application 160. This delivery, in some embodiments, is through thegateway 320 and thebase station 330. The device application, in some embodiments, then requests thenotification content 182 corresponding to the notification tap 175 (e.g., usingrequest message 230 shown inFIG. 2 ). Thenotification content 182, also referred to as one or more notification content packages, is delivered to thedevice application 160 from theapplication server 110 or theserver network 140, in some embodiments (e.g., 236A or 236B ofmessages FIG. 2 ). - In some embodiments, the
user device 150 sends theGUID 604 to theserver 130 with a particular timestamp value in an inquiry message. The inquiry message can be delivered using a wireless LAN, e.g., Wi-Fi, cellular or wired connection, depending on the connectivity of theuser device 150. Theserver 130 then forms an update message including those notification taps in the notification history more recent than the particular timestamp value and sends the update message to theuser device 150. Theuser device 150 then provides the notification taps to one or more respective device applications (all the notification taps need not be for the same device application) in theuser device 150. In some instances a cellular connection is used. After the one or more device applications request notification content packages and those have been delivered to theuser device 150 over the cellular connection, theuser device 150, in some embodiments, disconnects from the cellular connection. -
FIG. 7 illustratesexemplary logic 700 for operation of a server, for example,server 130 in relation to theuser device 150. At 702, the server provides a GUID to a device. For example, theserver 130 provides theGUID 604 to theuser device 150. At 704, the server receives a three-tuple including the GUID, a gateway (GW) address, and a device identifier (in some embodiments, an IMSI value of a SIM or eSIM in the device). At 706, the server creates an entry in a routing table based on the GUID and the GW address. Network state has now been set. In some instances, a notification tap is then received, such as at 708. The server, at 710, then finds a GW address from the routing table by reading the routing table based on the GUID. The server, at 712, updates a notification history to include the notification tap and a current timestamp value. At 714, the server sends the notification tap to the device via a gateway reached using the GW address. - Many services are supported by network access. The term “presence” includes meanings of an ability of a device to be reached via a network. To support presence, including the ability to receive notifications, a user device can make use of peers that have wall-power and possibly wired Internet connectivity. Instead of the user device registering with a gateway to receive notification taps, a user device may delegate this task (which can be referred to as “delegating presence”) to a peer device better able to receive the notification taps. For example, the peer device may be a desktop computer with wall power and a wired Ethernet connection. A user device, that is, a delegating device, may delegate to more than one peer device. The delegate device may provide cache storage of notification taps and of multiple notification content packages. The delegate device acts as an intermediary between the proximate server and the delegating devices. The delegate device is reached by the proximate server via a wired connection and/or via a wireless connection, depending on circumstances. Selection of the delegate device is performed by a multi-device algorithm based on physical proximity, network connectivity and/or power-availability of each device.
-
FIG. 8 illustrates a diagram 800 of a notification tap architecture including a delegation feature. Theuser device 150 delegates reception of notification taps to another device, for example, a user device 810. - User device 810 may be one of several device types. For example, user device 810 in some embodiments is a cellular phone, a tablet, a laptop, a desktop computer, a wireless-enabled wearable device such as a watch, or an internet-connected media server. In some instances, the user device 810 is the destination of the
notification tap 175 and, subsequently, thenotification content 182. User device 810 can be a non-cellular device and can be reached without use of a cellular network, in some embodiments. - The
user device 150 is referred to inFIGS. 8 to 10 as a delegating device, and the user device 810 is referred to inFIGS. 8 to 10 as a delegate device. User device 810, in some instances, has access to wall-power and/or a wired Ethernet connection. One or more delegating devices, in some instances are in communication with the user device 810. Any or all of the delegate device and the delegating device(s) in apresence cloud 820 can be the recipients of thenotification tap 175; one or more may then receive or request thenotification content 182. -
FIG. 8 illustratesuser device 150 as a delegating device in communication with the user device 810 via awireless connection 806. User device 810 anduser device 150 are referred to herein as members of thepresence cloud 820. Theuser device 150, in some embodiments, delegates presence to more than one peer device. Thus, user device 810 and another delegate device may both receive thenotification tap 175 and forward it to theuser device 150.Wireless connection 806 within thepresence cloud 820, in some connections, is a low energy consumption, short-range connection supported by a communication format such as Bluetooth low energy (BLTE). The user device 810, in some embodiments, requests one ormore notification content 182 or notification content packages fromapplication server 110 and/or other application servers associated with other applications. The user device 810 caches these notification content packages until theuser device 150 requests delivery of thenotification content 182 to theuser device 150. - A message flow including delegation of presence is similar to that described in
FIG. 6 for the notification taps, up to the point that the proximate edge server receives the notification (encircled numeral 6 ofFIG. 6 ). The following 6 steps or activities illustrate delivery of a notification tap in an architecture including a delegate device. - 1) The proximate edge server (
FIG. 8 , server 130) receives the notification (also see steps leading up to an including encircled numeral 6 ofFIG. 6 ). - 2) The proximate edge server recognizes the delegate device (
FIG. 8 , user device 810) as the target (next) recipient of the notification. - 3) The proximate edge server sends a notification tap (first instance of
notification tap 175 inFIG. 8 ) to the delegate device (user device 810). - 4) The delegate device may request the notification content from the proximate edge server and cache it for the benefit of one or more delegating devices.
- 5) The delegate device sends the notification tap (second instance of the
notification tap 175 inFIG. 8 ) to the one or more delegating devices (for example,user device 150,FIG. 8 ). - 6) Each notification includes a sequence-number-like identifier so that the recipient delegating device can discard notification taps already received.
- Thus, the delegating devices in the presence cloud (for
example user device 150 inpresence cloud 820 ofFIG. 8 ) can make use of peers in the presence cloud that have wall-power. Because the events associated with the source application in the application server are parsed into notification taps and notification content, a need for intermediate storage is reduced or eliminated. This parsing, in some embodiments, may occur at theapplication server 110 or in theserver network 140. Encryption to protect payload (notification content) can be provided on the notification content after the recipient user device (for example,user device 150 ofFIG. 8 ) has established a persistent data connection. A user of the delegate device and delegating device do not need to be involved in identifying a device to be the delegate device. By using concurrent delegation to multiple peers, the probability is increased of low-latency notification content delivery while simultaneously maintaining only low power requirements at the delegating device. Caching of notification content at the proximate edge server (for example,server 130 ofFIG. 8 ) or at the delegate device (for example, user device 810 ofFIG. 8 ) also reduces latency. Future architectural/network changes to last-hop delivery modes are not propagated to theapplication server 110 because it has constant interfaces of the interface to theInternet 540 and the interface to the collection of edge servers inserver network 140. When a user takes some devices to another geographic location, distinct delegate devices can be identified by instances of the multi-device algorithm running in devices associated with the user account alias at each separate geographic location. User account alias usage is described above with respect to Table 1, for example. -
FIG. 9 illustrates a diagram 900 of messages and activities in a notification tap architecture including a delegate device and a delegating device.Event 220, inFIG. 9 , occurs at thesource application 309 in theapplication server 110. Anotification 170 is sent to theserver network 140 and intra-network forwarding,mapping 222, routing 224, and update tonotification history 228 occur as in encircled 4, 5, 6, 7, and 8 ofnumerals FIG. 6 .Notification tap 175, which will ultimately reach thedevice application 160 in theuser device 150, is sent to user device 810 (which is the delegate device) of thepresence cloud 820. User device 810 forwards, within thepresence cloud 820, thenotification tap 175 to the user device 150 (which is the delegating device).Operating system 210 anddevice application 160 communicate with 230 and 232 as inmessages FIG. 2 . Three alternatives are shown inFIG. 9 for delivery of thenotification content 182 to thedevice application 160. The alternatives of fetching from theserver network 140 with 234A and 236A or of fetching from themessages application server 110 with 234B and 236B were discussed with respect tomessages FIG. 2 . A third alternative of fetching from the delegate device within thepresence cloud 820, user device 810, is shown realized with 234C and 236C. After one or more of these fetch sequences occurs, themessages device application 160 receives thenotification content 182 in amessage 180, similar to the completion of the communication shown inFIG. 2 and also as represented bypath 358 ofFIG. 3 , however now with the participation of the user device 810, at least with respect to delivery of thenotification tap 175. -
FIG. 10 illustrates a diagram 1000 that provides an updated version of the protocol stack diagram ofFIG. 3 with the user device 810 assisting in the last-hop delivery from theserver network 140 possibly without use of thebase station 330. In some embodiments, thebase station 330 is present and provides, including use of thegateway 320, a path to the user device 810.Path 358 from thesource application 309 to thedevice application 160 is achieved with the assistance of the user device 810 acting as a delegate. The protocol stack of the user device 810 includes abaseband layer 1010 in communication with abaseband layer 310 of server network 140 (as represented byserver 120/130 inFIG. 10 ),middle layers 1012, and, in some embodiments, aTCP layer 1014. Aphysical layer 1011 is shown in communication over apath 1016 with abaseband layer 1042 of theuser device 150. Physical and baseband layers refer generally to modulation and electrical waveform transmitters and receivers (wired or wireless), payload and signaling transmission and reception, formatting of packets, and retransmission and channel coding operations. The terms physical layer and baseband layer are used interchangeably herein. Above thebaseband layer 1042 of the delegatinguser device 150,middle layers 1048 communicate with higher layers that can includedevice applications 160 that communicate withapplication servers 110. - A peer-to-peer TCP connection, for example, is shown from the
TCP layer 306 of theapplication server 110 to theTCP layer 314 ofserver 120/130 of the server network 140 (path 305) and toTCP layer 1014 of the user device 810 (path 356). In some embodiments, the user device 810 receives both wall-power and has a high speed Ethernet connection (either wired or wireless). In some embodiments, frequent high-bandwidth transmissions over thepath 356, for example, are not an energy concern for the user device 810. In some instances, theserver network 140 is not involved andapplication server 110 reaches the user device 810 for delivery of notification content (as opposed to notification taps) via theInternet 540. For example, in some embodiments,TCP layer 1014 andbaseband layer 1010 are used to connect to theapplication server 110 over theInternet 540 to recover notification content. Other application servers also connect in to theserver network 140, forming a fan-in of notifications coming into theserver network 140 and efficiently conveyed to hundreds of millions of devices, includinguser device 150. User device 810 communicates with theuser device 150 within thepresence cloud 820 over thepath 1016. In some embodiments, the transmission/reception method used to communicate over thepath 1016 is a low energy protocol such as BTLE. -
FIG. 11 illustrates a diagram 1100 of exemplary logic performed by a delegate device, according to some embodiments. At 1102, a delegate device in a presence cloud receives a notification tap intended for a delegating device that is a member of the presence cloud. At 1104, the delegate device forwards the notification tap to the delegating device. At 1106, the delegate device recovers notification content, referred to here as notification content packages. The notification content, in some embodiments, is fetched from a server network and/or from one or more application servers. At 1108, the delegate device receives a request from the delegating device for one or more notification content packages. At 1110, the delegate device delivers the requested one or more content packages to the delegating device. The delegating device then acts on the notification content, which may be for example, a social media message, a software update, a transactional message with a web retailer, and/or any other notification-type content. - Wireless devices, and mobile devices in particular, can incorporate multiple different radio access technologies (RATs) to provide connections through different wireless networks that offer different services and/or capabilities. A wireless device can include hardware and software to support a wireless personal area network (WPAN) according to a WPAN communication protocol, such as those standardized by the Bluetooth® special interest group (SIG) and/or those developed by Apple referred to as an Apple Wireless Direct Link (AWDL). The wireless device can discover compatible peripheral wireless devices and can establish connections to these peripheral wireless devices located in order to provide specific communication services through a WPAN. In some situations, the wireless device can act as a communications hub that provides access to a wireless local area network (WLAN) and/or to a wireless wide area network (WWAN) to a wide variety of services that can be supported by various applications executing on the wireless device. Thus, communication capability for a secondary wireless device, e.g., without and/or not configured for WWAN communication, can be extended using a local WPAN (or WLAN) connection to a primary wireless device that provides a WWAN connection. Alternatively, the secondary wireless device can also include wireless circuitry for a WLAN connection and can originate and/or terminate connections via a WLAN connection. Whether to use a direct connection or a relayed connection can depend on performance characteristics of one or more links of an active communication session between the secondary wireless device and a remote device. Fewer links (or hops) can provide for lower latency, and thus a direct connection can be preferred; however, unlike a legacy circuit-switched connection that provides a dedicated link, the direct connection via a WLAN can share bandwidth with other wireless devices on the same WLAN and/or with the backhaul connection from the access point that manages the WLAN. When performance on the local WLAN connection link and/or on the backhaul connection degrades, a relayed connection via a primary wireless device can be preferred. By monitoring performance of an active communication session and availability and capabilities of associated wireless devices (such as proximity to a primary wireless device), a secondary wireless device can request transfer of an active communication session between a direction connection and a relayed connection or vice versa.
- In accordance with various embodiments described herein, the terms “wireless communication device,” “wireless device,” “mobile device,” “mobile station,” “wireless station”, “wireless access point”, “station”, “access point”, “user equipment” (UE), “wireless user device”, and “user device” may be used interchangeably herein to describe one or more common consumer electronic devices that may be capable of performing procedures associated with various embodiments of the disclosure. In accordance with various implementations, any one of these consumer electronic devices may relate to: a cellular phone or a smart phone, a tablet computer, a laptop computer, a notebook computer, a personal computer, a netbook computer, a media player device, an electronic book device, a MiFi® device, a wearable computing device, as well as any other type of electronic computing device having wireless communication capability that can include communication via one or more wireless communication protocols such as used for communication on: a wireless wide area network (WWAN), a wireless metro area network (WMAN) a wireless local area network (WLAN), a wireless personal area network (WPAN), a near field communication (NFC), a cellular wireless network, a fourth generation (4G) LTE, LTE Advanced (LTE-A), and/or 5G or other present or future developed advanced cellular wireless networks.
- The wireless device, in some embodiments, can also operate as part of a wireless communication system, which can include a set of client devices, which can also be referred to as stations, client wireless devices, or client wireless devices, interconnected to an access point (AP), e.g., as part of a WLAN, and/or to each other, e.g., as part of a WPAN and/or an “ad hoc” wireless network, such as a Wi-Fi direct connection. In some embodiments, the client device can be any wireless device that is capable of communicating via a WLAN technology, e.g., in accordance with a wireless local area network communication protocol. In some embodiments, the WLAN technology can include a Wi-Fi (or more generically a WLAN) wireless communication subsystem or radio, the Wi-Fi radio can implement an Institute of Electrical and Electronics Engineers (IEEE) 802.11 technology, such as one or more of: IEEE 802.11a; IEEE 802.11b; IEEE 802.11g; IEEE 802.11-2007; IEEE 802.11n; IEEE 802.11-2012; IEEE 802.11ac; or other present or future developed IEEE 802.11 technologies.
- Additionally, it should be understood that wireless devices described herein may be configured as multi-mode wireless communication devices that are also capable of communicating via different third generation (3G) and/or second generation (2G) RATs. In these scenarios, a multi-mode wireless device can be configured to prefer attachment to LTE networks offering faster data rate throughput, as compared to other 3G legacy networks offering lower data rate throughputs. For instance, in some implementations, a multi-mode wireless device may be configured to fall back to a 3G legacy network, e.g., an Evolved High Speed Packet Access (HSPA+) network or a Code Division Multiple Access (CDMA) 2000 Evolution-Data Only (EV-DO) network, when LTE and LTE-A networks are otherwise unavailable.
-
FIG. 12 illustrates in block diagram format anexemplary computing device 1200 that can be used to implement the various components and techniques described herein, according to some embodiments. In particular, the detailed view of theexemplary computing device 1200 illustrates various components that can be included in theuser device 150, the user device 810 theserver 130, theserver 120, thegateway 320, and thebase station 330 illustrated in various figures, includingFIGS. 1, 3, 5, 6, 8, 9, and 10 . As shown inFIG. 12 , thecomputing device 1200 can include aprocessor 1202 that represents a microprocessor or controller for controlling the overall operation ofcomputing device 1200. Thecomputing device 1200 can also include auser input device 1208 that allows a user of thecomputing device 1200 to interact with thecomputing device 1200. For example, theuser input device 1208 can take a variety of forms, such as a button, keypad, dial, touch screen, audio input interface, visual/image capture input interface, input in the form of sensor data, etc. Still further, thecomputing device 1200 can include a display 1210 (screen display) that can be controlled by theprocessor 1202 to display information to the user (for example, visual/silent alert notifications and/or information relating to incoming, outgoing, or active communication sessions). Adata bus 1216 can facilitate data transfer between at least astorage device 1240, theprocessor 1202, and acontroller 1213. Thecontroller 1213 can be used to interface with and control different equipment through anequipment control bus 1214. Thecomputing device 1200 can also include a network/bus interface 1211 that couples to adata link 1212. In the case of a wireless connection, the network/bus interface 1211 can include wireless circuitry, such as a wireless transceiver and/or baseband processor. - The
computing device 1200 also includes astorage device 1240, which can includes a single storage or a plurality of storages (e.g., hard drives), and includes a storage management module that manages one or more partitions within thestorage device 1240. In some embodiments,storage device 1240 can include flash memory, semiconductor (solid state) memory or the like. Thecomputing device 1200 can also include a Random Access Memory (“RAM”) 1220 and a Read-Only Memory (“ROM”) 1222. TheROM 1222 can store programs, utilities or processes to be executed in a non-volatile manner. TheRAM 1220 can provide volatile data storage, and stores instructions related to the operation of thecomputing device 1200. Thecomputing device 1200 can include a secure element (SE) 1250. The SE, in some embodiments is a universal integrated circuit card (UICC) or an embedded UICC (eUICC). The SE, in some embodiments, has present on it one or more SIMs or eSIMs. - In some embodiments, a method for delivering notification to a device includes a network server: (i) receiving, from the device, a message including: a user account identifier, a global user identifier (GUID), and a device identifier; (ii) creating an entry in a device registry, the entry including: the user account identifier, the device identifier, and the GUID; (iii) receiving from an application server a notification including the user account identifier; (iv) determining a network address of a gateway associated with the device based at least in part on the user account identifier and the entry in the device registry; and (v) sending a notification tap corresponding to the notification to the device associated with the GUID via the gateway using the network address of the gateway associated with the device.
- In some embodiments, the GUID includes a value leased by a wireless service provider from an original equipment manufacturer (OEM) of the device. In some embodiments, the device registry includes a second entry associated with the user account identifier, the second entry including a second device identifier associated with a second device, and the device and the second device are distinct devices. In some embodiments, the method further includes the network server determining a second network address of a second gateway associated with the second device based at least in part on the user account identifier and the second entry in the device registry, and sending a second notification tap corresponding to the notification to the second device via the second gateway using the second network address. In some embodiments, the method further includes the network server maintaining a notification history for the device, the notification history including source identifiers for application servers and timestamp values for notifications received from the application servers. In some embodiments, the method further includes the network server receiving an inquiry message from the device, the inquiry message including the GUID and a timestamp value, and sending to the device, via the gateway, one or more notification taps corresponding to one or more notifications having timestamp values more recent than the timestamp value included in the inquiry message. In some embodiments, the method further includes the network server receiving from the device a request for notification content for the notification, and sending to the device the notification content. In some embodiments, the notification tap is sent without encryption, and the notification content is sent with secure end-to-end encryption. In some embodiments, the notification tap is sent to the device via a delegate device determined by the device. In some embodiments, the delegate device caches notification content for the notification and provides the notification content to the device separately from the notification tap. In some embodiments, the notification tap is sent to the device via a paging channel of a wireless network. In some embodiments, the device identifier includes an International Mobile Subscriber Identity (IMSI). In some embodiments, the device identifier includes a temporary identifier generated by a network with which the device is registered for a wireless service.
- In some embodiments, a method for delivering notifications, to a delegating device via a delegate device, includes the delegate device: (i) providing a globally unique identifier (GUID) for the delegate device, a gateway (GW) address for a gateway proximate to the delegate device, and a user account identifier to a network server; (ii) receiving via the gateway a notification tap corresponding to a notification for the delegating device; and (iii) sending the notification tap to the delegating device, where the delegate device and the delegating device are both associated with the user account identifier.
- In some embodiments, the method further includes the delegate device receiving, via the gateway, notification content associated with the notification for the delegating device; caching the notification content for subsequent delivery to the delegating device; and providing the notification content to the delegating device separately from the notification tap. In some embodiments, the method further includes the delegate device receiving from the delegating device a request for notification content associated with the notification after sending the notification tap to the delegating device, where the notification content is provided to the delegate device in response to receipt of the request for notification content. In some embodiments, the method further includes the delegate device obtaining the GUID from the network server, where the GUID includes a value leased by a wireless service provider from an original equipment manufacturer (OEM) of the delegate device. In some embodiments, the notification for the delegating device originates from an application server that stores a user account alias associated with the delegating device, and the user account alias is provided to the application server upon installation of an application on the delegating device.
- In some embodiments, a method includes a network server: (i) providing a globally unique identifier (GUID) to a device; (ii) receiving the GUID, a gateway (GW) address associated with a gateway, and a device identifier from the device; (iii) creating an entry in a routing table based on the GUID, the GW address, and/or the device identifier; (iv) receiving a notification tap addressed to the device associated with the GUID; (v) accessing, based on the GUID, the GW address in the routing table; (vi) updating a notification history to include the notification tap; and (vii) sending the notification tap to the device via the gateway. In some embodiments, the notification tap is provided to the device via a paging channel.
- The various aspects, embodiments, implementations or features of the described embodiments can be used separately or in any combination. Various aspects of the described embodiments can be implemented by software, hardware or a combination of hardware and software. The described embodiments can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, hard storage drives, solid state drives, and optical data storage devices. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
- The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the described embodiments. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the described embodiments. Thus, the foregoing descriptions of specific embodiments are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the described embodiments to the precise forms disclosed. It will be apparent to one of ordinary skill in the art that many modifications and variations are possible in view of the above teachings.
Claims (20)
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/627,852 US11095738B2 (en) | 2016-11-03 | 2017-06-20 | Push notifications for multiple user devices |
| US17/305,719 US11968275B2 (en) | 2016-11-03 | 2021-07-13 | Push notifications for multiple user devices |
| US18/605,770 US20240223673A1 (en) | 2016-11-03 | 2024-03-14 | Push notifications for multiple user devices |
| US18/616,022 US12328373B2 (en) | 2016-11-03 | 2024-03-25 | Push notifications for multiple user devices |
| US19/232,651 US20250310416A1 (en) | 2016-11-03 | 2025-06-09 | Push notifications for multiple user devices |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201662417213P | 2016-11-03 | 2016-11-03 | |
| US15/627,852 US11095738B2 (en) | 2016-11-03 | 2017-06-20 | Push notifications for multiple user devices |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/305,719 Division US11968275B2 (en) | 2016-11-03 | 2021-07-13 | Push notifications for multiple user devices |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20180124195A1 true US20180124195A1 (en) | 2018-05-03 |
| US11095738B2 US11095738B2 (en) | 2021-08-17 |
Family
ID=62022065
Family Applications (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/627,852 Active 2039-07-16 US11095738B2 (en) | 2016-11-03 | 2017-06-20 | Push notifications for multiple user devices |
| US17/305,719 Active US11968275B2 (en) | 2016-11-03 | 2021-07-13 | Push notifications for multiple user devices |
| US18/605,770 Pending US20240223673A1 (en) | 2016-11-03 | 2024-03-14 | Push notifications for multiple user devices |
| US18/616,022 Active US12328373B2 (en) | 2016-11-03 | 2024-03-25 | Push notifications for multiple user devices |
| US19/232,651 Pending US20250310416A1 (en) | 2016-11-03 | 2025-06-09 | Push notifications for multiple user devices |
Family Applications After (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/305,719 Active US11968275B2 (en) | 2016-11-03 | 2021-07-13 | Push notifications for multiple user devices |
| US18/605,770 Pending US20240223673A1 (en) | 2016-11-03 | 2024-03-14 | Push notifications for multiple user devices |
| US18/616,022 Active US12328373B2 (en) | 2016-11-03 | 2024-03-25 | Push notifications for multiple user devices |
| US19/232,651 Pending US20250310416A1 (en) | 2016-11-03 | 2025-06-09 | Push notifications for multiple user devices |
Country Status (1)
| Country | Link |
|---|---|
| US (5) | US11095738B2 (en) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200112606A1 (en) * | 2018-10-03 | 2020-04-09 | International Business Machines Corporation | Synchronizing a device using push notifications |
| US10834219B1 (en) | 2020-01-10 | 2020-11-10 | International Business Machines Corporation | Intelligent distribution of push notifications |
| US11032384B2 (en) * | 2017-08-30 | 2021-06-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | System and method for providing usage of and/or access to secured data via using push notification infrastructure |
| US20230370497A1 (en) * | 2022-05-11 | 2023-11-16 | Capital One Services, Llc | Cloud control management system including a distributed system for tracking development workflow |
| US11968275B2 (en) | 2016-11-03 | 2024-04-23 | Apple Inc. | Push notifications for multiple user devices |
| US12167168B2 (en) * | 2022-08-31 | 2024-12-10 | Snap Inc. | Presenting time-limited video feed within virtual working environment |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12468645B2 (en) * | 2023-06-30 | 2025-11-11 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for exposing features of an internet of things (IoT) device |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030097410A1 (en) * | 2001-10-04 | 2003-05-22 | Atkins R. Travis | Methodology for enabling multi-party collaboration across a data network |
| US20040185777A1 (en) * | 2003-02-28 | 2004-09-23 | Lucent Technologies Inc. | Portable wireless gateway |
| US20040203702A1 (en) * | 2002-03-01 | 2004-10-14 | Burgess John K. | Multi-carrier method for providing access to a wireless communication system |
| US20070249352A1 (en) * | 2006-03-31 | 2007-10-25 | Samsung Electronics Co., Ltd. | System and method for optimizing authentication procedure during inter access system handovers |
| US7890427B1 (en) * | 2003-01-09 | 2011-02-15 | Hewlett-Packard Development Company, L.P. | Authentication of notifications received in an electronic device in a mobile services network |
| US20110059748A1 (en) * | 2009-09-10 | 2011-03-10 | Taylor Kirk S | Systems and methods for localized wireless notification |
| US20110145152A1 (en) * | 2009-12-15 | 2011-06-16 | Mccown Steven Harvey | Systems, apparatus, and methods for identity verification and funds transfer via a payment proxy system |
| US20120195294A1 (en) * | 2010-04-29 | 2012-08-02 | Mehul Jayant Shah | Managing access gateways |
| US20130174060A1 (en) * | 2002-11-18 | 2013-07-04 | Facebook, Inc. | Enhanced buddy list using mobile device identifiers |
| US20140321417A1 (en) * | 2011-12-09 | 2014-10-30 | Zte Corporation | Method and system for implementing multimedia call |
| US20150281009A1 (en) * | 2014-03-25 | 2015-10-01 | Ebay Inc | Data mesh-based wearable device ancillary activity |
| US20170019777A1 (en) * | 2015-07-18 | 2017-01-19 | Digital Management, Inc. | Secure emergency response technology |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8402499B2 (en) * | 2006-08-31 | 2013-03-19 | Accenture Global Services Gmbh | Voicemail interface system and method |
| US8707288B2 (en) * | 2009-02-13 | 2014-04-22 | Mobitv, Inc. | System for automatic management of applications on remote devices |
| US8405502B2 (en) * | 2009-06-10 | 2013-03-26 | Qualcomm Incorporated | Identification and connectivity gateway wristband for hospital and medical applications |
| US9723459B2 (en) * | 2011-05-18 | 2017-08-01 | Microsoft Technology Licensing, Llc | Delayed and time-space bound notifications |
| US9432190B2 (en) * | 2011-09-07 | 2016-08-30 | Elwha Llc | Computational systems and methods for double-encrypting data for subsequent anonymous storage |
| US9348802B2 (en) * | 2012-03-19 | 2016-05-24 | Litéra Corporation | System and method for synchronizing bi-directional document management |
| WO2013157015A2 (en) * | 2012-04-16 | 2013-10-24 | Chunilal Rathod Yogesh | A method and system for display dynamic & accessible actions with unique identifiers and activities. |
| US8856907B1 (en) * | 2012-05-25 | 2014-10-07 | hopTo Inc. | System for and methods of providing single sign-on (SSO) capability in an application publishing and/or document sharing environment |
| US9870661B2 (en) * | 2014-04-26 | 2018-01-16 | At&T Intellectual Property I, L.P. | Access control system |
| US20150341900A1 (en) * | 2014-05-23 | 2015-11-26 | Samsung Electronics Co., Ltd. | Wearable device and method of setting reception of notification message therein |
| US10701067B1 (en) * | 2015-04-24 | 2020-06-30 | Microstrategy Incorporated | Credential management using wearable devices |
| US11095738B2 (en) | 2016-11-03 | 2021-08-17 | Apple Inc. | Push notifications for multiple user devices |
-
2017
- 2017-06-20 US US15/627,852 patent/US11095738B2/en active Active
-
2021
- 2021-07-13 US US17/305,719 patent/US11968275B2/en active Active
-
2024
- 2024-03-14 US US18/605,770 patent/US20240223673A1/en active Pending
- 2024-03-25 US US18/616,022 patent/US12328373B2/en active Active
-
2025
- 2025-06-09 US US19/232,651 patent/US20250310416A1/en active Pending
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030097410A1 (en) * | 2001-10-04 | 2003-05-22 | Atkins R. Travis | Methodology for enabling multi-party collaboration across a data network |
| US20040203702A1 (en) * | 2002-03-01 | 2004-10-14 | Burgess John K. | Multi-carrier method for providing access to a wireless communication system |
| US20130174060A1 (en) * | 2002-11-18 | 2013-07-04 | Facebook, Inc. | Enhanced buddy list using mobile device identifiers |
| US7890427B1 (en) * | 2003-01-09 | 2011-02-15 | Hewlett-Packard Development Company, L.P. | Authentication of notifications received in an electronic device in a mobile services network |
| US20040185777A1 (en) * | 2003-02-28 | 2004-09-23 | Lucent Technologies Inc. | Portable wireless gateway |
| US20070249352A1 (en) * | 2006-03-31 | 2007-10-25 | Samsung Electronics Co., Ltd. | System and method for optimizing authentication procedure during inter access system handovers |
| US20110059748A1 (en) * | 2009-09-10 | 2011-03-10 | Taylor Kirk S | Systems and methods for localized wireless notification |
| US20110145152A1 (en) * | 2009-12-15 | 2011-06-16 | Mccown Steven Harvey | Systems, apparatus, and methods for identity verification and funds transfer via a payment proxy system |
| US20120195294A1 (en) * | 2010-04-29 | 2012-08-02 | Mehul Jayant Shah | Managing access gateways |
| US20140321417A1 (en) * | 2011-12-09 | 2014-10-30 | Zte Corporation | Method and system for implementing multimedia call |
| US20150281009A1 (en) * | 2014-03-25 | 2015-10-01 | Ebay Inc | Data mesh-based wearable device ancillary activity |
| US20170019777A1 (en) * | 2015-07-18 | 2017-01-19 | Digital Management, Inc. | Secure emergency response technology |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11968275B2 (en) | 2016-11-03 | 2024-04-23 | Apple Inc. | Push notifications for multiple user devices |
| US12328373B2 (en) | 2016-11-03 | 2025-06-10 | Apple Inc. | Push notifications for multiple user devices |
| US11032384B2 (en) * | 2017-08-30 | 2021-06-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | System and method for providing usage of and/or access to secured data via using push notification infrastructure |
| US20200112606A1 (en) * | 2018-10-03 | 2020-04-09 | International Business Machines Corporation | Synchronizing a device using push notifications |
| US10897500B2 (en) * | 2018-10-03 | 2021-01-19 | International Business Machines Corporation | Synchronizing a device using push notifications |
| US10834219B1 (en) | 2020-01-10 | 2020-11-10 | International Business Machines Corporation | Intelligent distribution of push notifications |
| US20230370497A1 (en) * | 2022-05-11 | 2023-11-16 | Capital One Services, Llc | Cloud control management system including a distributed system for tracking development workflow |
| US12212605B2 (en) * | 2022-05-11 | 2025-01-28 | Capital One Services, Llc | Cloud control management system including a distributed system for tracking development workflow |
| US12167168B2 (en) * | 2022-08-31 | 2024-12-10 | Snap Inc. | Presenting time-limited video feed within virtual working environment |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250310416A1 (en) | 2025-10-02 |
| US11968275B2 (en) | 2024-04-23 |
| US20240223673A1 (en) | 2024-07-04 |
| US20210344767A1 (en) | 2021-11-04 |
| US20240244118A1 (en) | 2024-07-18 |
| US12328373B2 (en) | 2025-06-10 |
| US11095738B2 (en) | 2021-08-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12328373B2 (en) | Push notifications for multiple user devices | |
| US12003592B2 (en) | Method and apparatus for service discovery | |
| KR101602613B1 (en) | Exchanging a contact profile between client devices during a communication session | |
| EP2314124B1 (en) | Obtaining local connectivity settings for a device-to-device connection | |
| US8724620B2 (en) | Method and apparatus for managing calls | |
| US10805357B2 (en) | Method and apparatus for managing calls | |
| US20250039820A1 (en) | Method for user equipment (ue), ue, method for access and mobility management function (amf) and amf | |
| US10462294B2 (en) | Method and apparatus for processing a communication request from a roaming voice over IP terminal | |
| WO2007146647A1 (en) | Method and apparatus for processing session initiation protocol messages associated with a voice over ip terminal | |
| CN113228719B (en) | Method and system for managing communications in a user equipment having a plurality of subscriber identity modules | |
| EP3479604B1 (en) | Ip-based ussd communications | |
| US20240236910A1 (en) | Method of first access and mobility management function (amf) apparatus, method of user equipment (ue), first access and mobility management function (amf) apparatus, and user equipment (ue) | |
| US10097593B2 (en) | Method and system for universal chat gateways | |
| US20140025738A1 (en) | System and method for communicating data to multiple communication devices | |
| KR20110079725A (en) | Communication devices and servers, and methods and computer programs for communication devices and servers | |
| US20250344142A1 (en) | Method of first communication apparatus, method of user equipment, first communication apparatus and user equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: APPLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BELL, CHRISTOPHER M.;PAASCH, CHRISTOPH;REEL/FRAME:042761/0113 Effective date: 20170619 |
|
| 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: 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: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
| 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: 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 |
|
| 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 |