US20100138501A1 - End-to-end validation in a push environment - Google Patents
End-to-end validation in a push environment Download PDFInfo
- Publication number
- US20100138501A1 US20100138501A1 US12/327,484 US32748408A US2010138501A1 US 20100138501 A1 US20100138501 A1 US 20100138501A1 US 32748408 A US32748408 A US 32748408A US 2010138501 A1 US2010138501 A1 US 2010138501A1
- Authority
- US
- United States
- Prior art keywords
- application
- gateway
- endpoint
- service
- inactivity
- 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.)
- Abandoned
Links
- 238000010200 validation analysis Methods 0.000 title claims description 4
- 230000006854 communication Effects 0.000 claims abstract description 30
- 238000004891 communication Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 238000001514 detection method Methods 0.000 description 12
- 230000003068 static effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
Definitions
- Mobile devices receive data asynchronously from a variety of sources.
- the data is pushed to the mobile devices and includes updates to online user profiles (e.g., at social networking web sites), weather and traffic conditions, and notifications such as package delivery notifications.
- Online user profiles e.g., at social networking web sites
- weather and traffic conditions e.g., weather and traffic conditions
- notifications such as package delivery notifications.
- Existing systems include a plurality of services sending the data through a plurality of gateways to the mobile devices.
- existing systems fail to provide a mechanism in the push environment for detecting failures along the communication path to the mobile devices.
- Embodiments of the invention provide end-to-end validation along a communication path involving a service, a gateway, and a computing device.
- a component executing on the computing device receives a request from an application to register an application endpoint.
- the component registers the application endpoint with the gateway responsive to the received request.
- the application subscribes to the service.
- the gateway defines an inactivity timeout value for the application endpoint, and monitors the communication path.
- the component receives a notification from the gateway of expiration of the inactivity timeout value, the component notifies the application to re-register with the gateway and to re-subscribe with the service.
- FIG. 1 is an exemplary block diagram illustrating a push environment having a communication path from a service to a gateway to a computing device.
- FIG. 2 is an exemplary sequence diagram illustrating application endpoint registration and subscription.
- FIG. 3 is an exemplary flow chart illustrating operation of failure detection and resolution.
- FIG. 4 is an exemplary sequence diagram illustrating detection of a gateway failure.
- FIG. 5 is an exemplary sequence diagram illustrating detection of a loss of connectivity between the application and the gateway.
- FIG. 7 is an exemplary sequence diagram illustrating detection of a failure of the service.
- FIG. 8 is an exemplary block diagram illustrating a computing device storing computer-executable components for implementing failure detection in a push environment.
- embodiments of the disclosure enable end-to-end validation in a push environment.
- one or more services 102 push messages to at least one gateway 106 .
- the gateway 106 delivers the messages to a computing device 104 .
- the message flow is unidirectional in that the messages are sent by the services 102 to an application 108 via the gateway 106 .
- detecting a failure along the communication path is difficult.
- Embodiments of the invention provide an inactivity timeout value and a registration timeout value. These timeout values are used to determine when a failure has occurred along the communication path.
- the computing device 104 may then re-establish the connection.
- the service 102 is any type of service that pushes content to the computing device 104 .
- the service 102 may include an email server, a sales server, a web server, a database server, a file server, a print server, or any other kind of server.
- the messages include any kind of information or data such as text messages, electronic mail messages, voice messages, images, and video.
- the computing device 104 can be a mobile telephone, a portable media player, a smartphone, a personal digital assistant, an information appliance, a personal communicator, a handheld game console, an ultra-mobile personal computer, a handheld television, or any other type of electronic device that is able to communicate with another system through a network.
- the computing device 104 has at least one application 108 executing thereon.
- the application 108 has one or more application endpoints 110 for receipt of the messages.
- the application endpoints 110 are associated with, for example, a mail application program, an instant messaging application program, or a web browser.
- the computing device 104 has at least one push component or pipe component for interfacing between the gateway 106 and the application 108 .
- the gateway 106 has access to a message buffer 114 .
- the message buffer 114 stores messages received from the services 102 .
- the gateway 106 may queue messages until the messages may be delivered to the computing device 104 . In this manner, the messages are persisted during computing device 104 offline periods.
- the computing device 104 may move between gateways 106 without losing queued messages.
- the message buffer 114 is shared by multiple instances of the gateway 106 .
- an exemplary sequence diagram illustrates application endpoint 110 registration and subscription.
- Registration includes establishing a bi-directional communication link between the computing device 104 and the gateway 106 such that the gateway 106 forwards messages from the services 102 to the computing device 104 .
- the application 108 creates an endpoint with the push client 112 .
- the push client 112 registers the created endpoint with the gateway 106 .
- the push client 112 registers the application endpoint 110 with the gateway 106 , and provides the object to the application 108 .
- the application 108 uses the object to subscribe with the service 102 .
- the application 108 or the push client 112 defines a registration timeout value.
- the registration timeout value includes, for example, a maximum time in seconds for a message to be received by the application 108 after requesting registration from the push client 112 .
- the push client 112 , or the application 108 calculates an elapsed time since, for example, the registration request was submitted to the push client 112 .
- the application 108 If the elapsed time exceeds or violates the registration timeout value before a first message is received by the application 108 , the application 108 is notified of a registration failure or timeout condition. Responsive to the notification, the application 108 de-registers and unsubscribes, then subsequently re-registers and subscribes. For example, the application 108 may re-register with another gateway 106 .
- the application 108 Responsive to the registration, the application 108 receives the object such as a uniform resource locator (URL) or other address space from the gateway 106 .
- the object identifies the gateway 106 and the computing device 104 .
- the computing device 104 subscribes to receive messages from the service 102 . This subscription occurs separate from, or independent, exclusive, or outside of the gateway 106 . In other words, the subscription occurs directly between the application 108 and the service 102 without involvement of the gateway 106 .
- the application 108 communicates the object to the service 102 and requests that the messages be sent to the application 108 via the object.
- the object may be any type of identifier that can identify the gateway 106 .
- the URL has the following exemplary format: ⁇ Gateway Domain Name Server Name ⁇ / ⁇ Computing Device Name ⁇ / ⁇ Application Name ⁇ / ⁇ Extension ⁇ .
- the first portion is the domain name of the gateway 106 in the Domain Name System (DNS).
- DNS Domain Name System
- the first portion tells the service 102 where to send the message (e.g. to the gateway 106 ).
- the second portion “Client Name” tells the gateway 106 which computing device 104 to receive the message.
- the third portion “Application Name” tells the computing device 104 which application 108 executing on the computing device 104 to receive it.
- the fourth portion “Extension” is an extension of the application 108 .
- the “Extension” is optional.
- One particular example of the object includes PushGW.xyz.com/Client 123/App456/doc.
- the application 108 or gateway 106 defines an inactivity timeout value for the application endpoint 110 .
- the inactivity timeout value represents a maximum time in seconds between receipt of messages from the service 102 .
- the application 108 provides the inactivity timeout value to the gateway 106 .
- the gateway 106 monitors the communication path. If there is no activity by the gateway 106 for that application endpoint 110 after the inactivity timeout value expires, the gateway 106 notifies the push client 112 or the application 108 of the timeout condition.
- the service 102 sends periodic “heartbeat” messages to the gateway 106 .
- Such messages are not delivered to the application endpoint 110 (e.g., to save device resources) and serve to confirm liveliness of the application endpoint 110 .
- the service 102 knows the inactivity timeout value so that the service 102 can time the heartbeat messages to be more frequent than the timeout.
- the service 102 may learn the inactivity timeout value as part of subscription.
- an exemplary flow chart illustrates operation of failure detection and resolution by the application 108 in concert with the push client 112 .
- the application 108 receives messages when the messages become available at the push client 112 , so long as the endpoint is working.
- a non-working endpoint is detected using the timeouts (e.g., registration and inactivity) as described herein.
- timeouts e.g., registration and inactivity
- an exemplary sequence diagram illustrates detection of a gateway 106 failure.
- one of the gateways 106 has failed or crashed.
- the gateway 106 recovers, or another gateway 106 takes over, the inactivity timeout value has expired because the gateway 106 missed messages from the service 102 when the gateway 106 was offline after the crash.
- the gateway 106 notifies the push client 112 , which prompts the application 108 to unsubscribe from the service 102 , de-register the application endpoint 110 , re-register the application endpoint 110 , and re-subscribe to the service 102 .
- an exemplary sequence diagram illustrates detection of a loss of connectivity between the application 108 and the gateway 106 .
- a connectivity problem lasting more than a channel timeout value may result in a state of the application endpoint 110 being removed from the gateway 106 and the object being invalidated.
- the push client 112 queries the status of the registered application endpoint 110 . Because the state of the application endpoint 110 has been removed, the gateway 106 informs the push client 112 that the endpoint is invalid. Subsequently, the application 108 re-registers the application endpoint 110 and notifies the service 102 about the re-registered application endpoint 110 .
- the channel timeout value detects whether the device 104 is interested in the registered application endpoint 110 . If the device 104 gets disconnected (e.g., due to a general packet radio service disruption), the channel/endpoint is still maintained on the gateway 106 , provided the push client 112 re-establishes the connection within the channel timeout interval. However, if the push client 112 unregisters the application endpoint 110 and the request is not delivered or processed by the gateway 106 , this mechanism allows the gateway 106 to clean up the state (e.g., remove the channel and associated queue) after the channel timeout value interval and conserve memory.
- the push client 112 provides a guarantee to the application 108 that if any communication failure (e.g., be it on the channel between the device 104 and the gateway 106 or between the gateway 106 and the service 102 ) lasts more than the channel timeout value, the application 108 is notified and can initiate a recover sequence.
- any communication failure e.g., be it on the channel between the device 104 and the gateway 106 or between the gateway 106 and the service 102
- an exemplary sequence diagram illustrates detection of a computing device failure.
- the push client 112 does not receive messages from the gateway 106 .
- the application endpoint 110 and state are deleted.
- an exemplary block diagram illustrates the computing device 104 storing computer-executable components for implementing failure detection in a push environment.
- the computing device 104 includes a processor 802 and a memory area 804 .
- the memory area 804 stores data 806 defining one or more communication paths between the computing device 104 and the service 102 .
- the memory area 804 further stores a communication component 808 , a registration component 810 , a timeout component 812 , and an inactivity component 814 .
- the communication component 808 interfaces, or facilitates data exchange, between the computing device 104 and the gateway 106 .
- the registration component 810 registers the application endpoint 110 with the gateway 106 .
- aspects of the invention transform a general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.
- Computer readable media comprise computer storage media and communication media.
- Computer storage media store information such as computer readable instructions, data structures, program modules or other data.
- Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Combinations of any of the above are also included within the scope of computer readable media.
- embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations.
- Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- inventions illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for identifying a communication failure based on the inactivity timeout value, and exemplary means for re-establishing the communication path responsive to expiration of the inactivity timeout value.
- API application programming interfaces
- Option type Description Parameters SUPRESS_MESSAGE This option allows applications to unsigned Bitmap-32 bit bitmap suppress messages based on specifying which classes of messages to message class. Suppressed be rejected by the gateway. Note that messages are dropped by the class 0 used for idle messages from gateway.
- the setting can be Application Server to gateway and is changed at any time and takes suppressed. effect immediately of the endpoint Default is 0 (all messages are accepted). is active.
- FRIENDLY_NAME This option can be used by the string Name-human readable name of gateway for logging, reports, the endpoint troubleshooting, etc. Default is generated by Push Client (e.g., The setting takes effect when the it may be derived from the friendly name endpoint is registered.
- LIFETIME Specifies how long the gateway unsigned Lifetime-time in seconds keeps the endpoint when the Default is selected by the channel. device is unreachable. This is a hint from application and channel/gateway may override it. The setting takes effect when the endpoint is registered.
- DELIVERY_PARAMS Allows applications to fine tune MessageClass-specifies message class delivery parameters for different for which the parameters are set. message classes. Most unsigned Delay-maximum batching applications will not change these delay, in second, for messages in settings. The settings are treated specified class. as hints and can be ignored by the unsigned Burst-maximum burst for channel/gateway or overridden by messages in specified class.
- the URL is generated by the channel/gateway.
- Registered endpoint does not guarantee end-to-end from service to device. If service is not able to reach the device using the endpoint, application may unregister and register the endpoint. The Push Client will first try to use a different gateway and then different channel if the previous one was unreachable.
- the API is asynchronous and the call returns immediately as pending.
- the Push Client performs registration in the background and notifies application when the process completes.
- the application can then obtain the endpoint URL.
- Application may cancel pending registrations at any time by calling UnregisterEndpoint or CloseEndpoint.
- the call fails with ALREADY_REGISTERED error if the endpoint is already registered or RegisterEndpoint or RegisterStaticEndpoint call is pending.
- strApplicationServer name of Application Server that is authorized to send messages to the endpoint.
- Application Server will need to authenticate using SSL mutual authentication in order to send a message to the endpoint.
- endpoint will not require Application Server to authenticate. If endpoints w/o authentication are not supported, the registration will fail
- nEndToEnd Verification Timeout maximum time in seconds for the first message to arrive to the endpoint. If initial message does not arrive within specified time the endpoint is considered invalid and application is notified. 0 means no timeout. If not specified, default is 120 seconds.
- nInactivity Timeout maximum time in seconds between massages. If endpoint is inactive for longer than the specified time the endpoint is considered invalid and application is notified. 0 means no timeout. If not specified, default is 0.
- strEndpointURL URL representing registered endpoints. If strApplicationServer was not specified then the endpoint does not require authentication and the URL itself includes the authorization ticket and MUST NOT be transmitted in the clear.
- Static endpoints do not support initialization and inactivity timeouts. Lifetime of static endpoint is fully controlled by the channel/gateway. Application will be notified when endpoint is deleted by the gateway.
- the API is asynchronous and the call returns immediately as pending.
- the Push Client performs registration in the background and notifies application when the process completes. Application may cancel pending registrations at any time by calling UnregisterEndpoint or CloseEndpoint.
- the call fails with ALREADY_REGISTERED error if the endpoint is already registered or RegisterEndpoint or RegisterStaticEndpoint call is pending.
- strChannel identifies channel used to register the static endpoint. Static endpoints can be only registered on a specific channel and are discoverable through the gateway on which they are registered.
- strApplication unique identifier of application. If a static endpoint with this identifier is already registered on the device, the call will fail.
- the API is synchronous and call completes immediately although the actual deregistration with the gateway will be completed asynchronously (e.g. in particular when device does not have connectivity with the gateway, deregistration will be pending until connection is reestablished).
- Application is not notified about completion of deregistration.
- Pending deregistration is not associated with the local endpoint object (hEndpoint) and the endpoint can be reregistered immediately after the API returns.
- the Push Client service must be able to handle several pending deregistration requests however it may drop deregistration requests that cannot be completed after some time since the gateway will independently cleanup endpoint state for an unreachable device anyways.
- MESSAGE push message(s) are queued and available for retrieval using GetEndpointMessage.
- the API is asynchronous. The call returns immediately as pending and application is notified of completion when a notification is available. After processing the notification application calls GetEndpointNotification again. Only one outstanding call to GetEndpointNotification is allowed; the API will fail if there is already a pending call.
- dwNotificationsRequested bitmap indicating which notification types (MESSAGE and/or STATUS) the application is interested in.
Abstract
In a push environment having a communication path along which a service provides messages to a computing device via a gateway, an inactivity timeout value and a registration timeout value enable the computing device to detect failures in the communication path. An application executing on the computing device registers an application endpoint with the gateway. The application separately subscribes to the service to receive the messages. If there is inactivity in accordance with the inactivity timeout value, the application de-registers and re-registers with the gateway, and unsubscribes and re-subscribes with the service.
Description
- Mobile devices receive data asynchronously from a variety of sources. The data is pushed to the mobile devices and includes updates to online user profiles (e.g., at social networking web sites), weather and traffic conditions, and notifications such as package delivery notifications. Existing systems include a plurality of services sending the data through a plurality of gateways to the mobile devices. However, existing systems fail to provide a mechanism in the push environment for detecting failures along the communication path to the mobile devices.
- Embodiments of the invention provide end-to-end validation along a communication path involving a service, a gateway, and a computing device. A component executing on the computing device receives a request from an application to register an application endpoint. The component registers the application endpoint with the gateway responsive to the received request. The application subscribes to the service. The gateway defines an inactivity timeout value for the application endpoint, and monitors the communication path. When the component receives a notification from the gateway of expiration of the inactivity timeout value, the component notifies the application to re-register with the gateway and to re-subscribe with the service.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
-
FIG. 1 is an exemplary block diagram illustrating a push environment having a communication path from a service to a gateway to a computing device. -
FIG. 2 is an exemplary sequence diagram illustrating application endpoint registration and subscription. -
FIG. 3 is an exemplary flow chart illustrating operation of failure detection and resolution. -
FIG. 4 is an exemplary sequence diagram illustrating detection of a gateway failure. -
FIG. 5 is an exemplary sequence diagram illustrating detection of a loss of connectivity between the application and the gateway. -
FIG. 6 is an exemplary sequence diagram illustrating detection of a computing device failure. -
FIG. 7 is an exemplary sequence diagram illustrating detection of a failure of the service. -
FIG. 8 is an exemplary block diagram illustrating a computing device storing computer-executable components for implementing failure detection in a push environment. - Corresponding reference characters indicate corresponding parts throughout the drawings.
- Referring to the figures, embodiments of the disclosure enable end-to-end validation in a push environment. In an exemplary push environment such as illustrated in
FIG. 1 , one ormore services 102 push messages to at least onegateway 106. Thegateway 106 delivers the messages to acomputing device 104. The message flow is unidirectional in that the messages are sent by theservices 102 to anapplication 108 via thegateway 106. In the push environment, detecting a failure along the communication path is difficult. Embodiments of the invention provide an inactivity timeout value and a registration timeout value. These timeout values are used to determine when a failure has occurred along the communication path. Thecomputing device 104 may then re-establish the connection. - The
service 102 is any type of service that pushes content to thecomputing device 104. For example, theservice 102 may include an email server, a sales server, a web server, a database server, a file server, a print server, or any other kind of server. - The messages include any kind of information or data such as text messages, electronic mail messages, voice messages, images, and video. The
computing device 104 can be a mobile telephone, a portable media player, a smartphone, a personal digital assistant, an information appliance, a personal communicator, a handheld game console, an ultra-mobile personal computer, a handheld television, or any other type of electronic device that is able to communicate with another system through a network. - In some embodiment, there are a plurality of
services 102, a plurality ofgateways 106, and a plurality ofcomputing devices 104. Thecomputing device 104 has at least oneapplication 108 executing thereon. Theapplication 108 has one ormore application endpoints 110 for receipt of the messages. Theapplication endpoints 110 are associated with, for example, a mail application program, an instant messaging application program, or a web browser. Thecomputing device 104 has at least one push component or pipe component for interfacing between thegateway 106 and theapplication 108. In some embodiments, there is onepush client 112 for eachapplication 108. In other embodiments, there is onepush client 112 for all theapplications 108 executing on thecomputing device 104. - In the example of
FIG. 1 , thegateway 106 has access to amessage buffer 114. Themessage buffer 114 stores messages received from theservices 102. For example, thegateway 106 may queue messages until the messages may be delivered to thecomputing device 104. In this manner, the messages are persisted duringcomputing device 104 offline periods. In addition, thecomputing device 104 may move betweengateways 106 without losing queued messages. In some embodiments, themessage buffer 114 is shared by multiple instances of thegateway 106. - Referring next to
FIG. 2 , an exemplary sequence diagram illustratesapplication endpoint 110 registration and subscription. Registration includes establishing a bi-directional communication link between thecomputing device 104 and thegateway 106 such that thegateway 106 forwards messages from theservices 102 to thecomputing device 104. In the example ofFIG. 2 , theapplication 108 creates an endpoint with thepush client 112. Thepush client 112 registers the created endpoint with thegateway 106. - In some embodiments, registration includes receiving, by the
push client 112, a request from theapplication 108 to register the application endpoint 110 (e.g., RegisterEndpoint). Thepush client 112 identifies one or more channels available for communication and selects one of the identified channels. Thepush client 112 works with thegateway 106 to define an object, address space, or other globally unique identifier such as an endpoint uniform resource identifier (URI) for the selected channel, and provides the defined object to theapplication 108. In some examples, the channel is selected based on one or more policy settings for theapplication 108. Alternatively, thegateway 106 provides the object to thepush client 112 to give to theapplication 108. - The
push client 112 registers theapplication endpoint 110 with thegateway 106, and provides the object to theapplication 108. Theapplication 108 uses the object to subscribe with theservice 102. Additionally, theapplication 108 or thepush client 112 defines a registration timeout value. The registration timeout value includes, for example, a maximum time in seconds for a message to be received by theapplication 108 after requesting registration from thepush client 112. Thepush client 112, or theapplication 108, calculates an elapsed time since, for example, the registration request was submitted to thepush client 112. If the elapsed time exceeds or violates the registration timeout value before a first message is received by theapplication 108, theapplication 108 is notified of a registration failure or timeout condition. Responsive to the notification, theapplication 108 de-registers and unsubscribes, then subsequently re-registers and subscribes. For example, theapplication 108 may re-register with anothergateway 106. - Responsive to the registration, the
application 108 receives the object such as a uniform resource locator (URL) or other address space from thegateway 106. The object identifies thegateway 106 and thecomputing device 104. Thecomputing device 104 subscribes to receive messages from theservice 102. This subscription occurs separate from, or independent, exclusive, or outside of thegateway 106. In other words, the subscription occurs directly between theapplication 108 and theservice 102 without involvement of thegateway 106. During subscription, theapplication 108 communicates the object to theservice 102 and requests that the messages be sent to theapplication 108 via the object. - The object may be any type of identifier that can identify the
gateway 106. In one example, the URL has the following exemplary format: {Gateway Domain Name Server Name}/{Computing Device Name}/{Application Name}/{Extension}. The first portion “Gateway Domain Name Server Name” is the domain name of thegateway 106 in the Domain Name System (DNS). The first portion tells theservice 102 where to send the message (e.g. to the gateway 106). The second portion “Client Name” tells thegateway 106 whichcomputing device 104 to receive the message. The third portion “Application Name” tells thecomputing device 104 whichapplication 108 executing on thecomputing device 104 to receive it. The fourth portion “Extension” is an extension of theapplication 108. The “Extension” is optional. One particular example of the object includes PushGW.xyz.com/Client 123/App456/doc. - After or during registration, the
application 108 orgateway 106 defines an inactivity timeout value for theapplication endpoint 110. The inactivity timeout value represents a maximum time in seconds between receipt of messages from theservice 102. In an example, theapplication 108 provides the inactivity timeout value to thegateway 106. Thegateway 106 monitors the communication path. If there is no activity by thegateway 106 for thatapplication endpoint 110 after the inactivity timeout value expires, thegateway 106 notifies thepush client 112 or theapplication 108 of the timeout condition. In some embodiments, to avoid the timeout expiring absent of communication failure, theservice 102 sends periodic “heartbeat” messages to thegateway 106. Such messages are not delivered to the application endpoint 110 (e.g., to save device resources) and serve to confirm liveliness of theapplication endpoint 110. In such embodiments, theservice 102 knows the inactivity timeout value so that theservice 102 can time the heartbeat messages to be more frequent than the timeout. Theservice 102 may learn the inactivity timeout value as part of subscription. - Exemplary application programming interfaces for implementing registration and other functions are described in Appendix A.
- Referring next to
FIG. 3 , an exemplary flow chart illustrates operation of failure detection and resolution by theapplication 108 in concert with thepush client 112. Theapplication 108 receives messages when the messages become available at thepush client 112, so long as the endpoint is working. A non-working endpoint is detected using the timeouts (e.g., registration and inactivity) as described herein. In a non-working push system, there is not any channel to any known gateway working. If the endpoint is not working and the push system is not working, theapplication 108 displays an error to the user or attempts to connect directly to theservice 102. If the endpoint is not working yet the push system is working, theapplication 108 unsubscribes from theservice 102, de-registers theapplication endpoint 110, re-registers anew application endpoint 110, and re-subscribes to theservice 102. - Referring next to
FIG. 4 , an exemplary sequence diagram illustrates detection of agateway 106 failure. In the example ofFIG. 4 , one of thegateways 106 has failed or crashed. When thegateway 106 recovers, or anothergateway 106 takes over, the inactivity timeout value has expired because thegateway 106 missed messages from theservice 102 when thegateway 106 was offline after the crash. Thegateway 106 notifies thepush client 112, which prompts theapplication 108 to unsubscribe from theservice 102, de-register theapplication endpoint 110, re-register theapplication endpoint 110, and re-subscribe to theservice 102. - Referring next to
FIG. 5 , an exemplary sequence diagram illustrates detection of a loss of connectivity between theapplication 108 and thegateway 106. A connectivity problem lasting more than a channel timeout value may result in a state of theapplication endpoint 110 being removed from thegateway 106 and the object being invalidated. In this example, thepush client 112 queries the status of the registeredapplication endpoint 110. Because the state of theapplication endpoint 110 has been removed, thegateway 106 informs thepush client 112 that the endpoint is invalid. Subsequently, theapplication 108 re-registers theapplication endpoint 110 and notifies theservice 102 about there-registered application endpoint 110. - In some embodiments, the channel timeout value detects whether the
device 104 is interested in the registeredapplication endpoint 110. If thedevice 104 gets disconnected (e.g., due to a general packet radio service disruption), the channel/endpoint is still maintained on thegateway 106, provided thepush client 112 re-establishes the connection within the channel timeout interval. However, if thepush client 112 unregisters theapplication endpoint 110 and the request is not delivered or processed by thegateway 106, this mechanism allows thegateway 106 to clean up the state (e.g., remove the channel and associated queue) after the channel timeout value interval and conserve memory. - If the channel timeout value is longer than the inactivity timeout value, the
device 104 may be offline for a longer period of time (e.g., up to the channel timeout value) and thegateway 106 queues messages to thedevice 104 in the buffer. However, theapplication 108 does not learn about the potential failure of communication for a longer period of time. - If the channel timeout value is set to the same value as the inactivity timeout value, the
push client 112 provides a guarantee to theapplication 108 that if any communication failure (e.g., be it on the channel between thedevice 104 and thegateway 106 or between thegateway 106 and the service 102) lasts more than the channel timeout value, theapplication 108 is notified and can initiate a recover sequence. - Referring next to
FIG. 6 , an exemplary sequence diagram illustrates detection of a computing device failure. In the example ofFIG. 6 , thepush client 112 does not receive messages from thegateway 106. After the expiration of the channel timeout value, theapplication endpoint 110 and state are deleted. - Referring next to
FIG. 7 , an exemplary sequence diagram illustrates detection of a failure of theservice 102. After the expiration of the inactivity timeout value, thegateway 106 notifies thepush client 112 of theservice 102 failure. Subsequently, theapplication 108 unsubscribes from theservice 102, de-registers with thegateway 106, re-registers theapplication endpoint 110, and re-subscribes to theservice 102. - Referring next to
FIG. 8 , an exemplary block diagram illustrates thecomputing device 104 storing computer-executable components for implementing failure detection in a push environment. In the example ofFIG. 8 , thecomputing device 104 includes aprocessor 802 and amemory area 804. Thememory area 804stores data 806 defining one or more communication paths between thecomputing device 104 and theservice 102. Thememory area 804 further stores acommunication component 808, aregistration component 810, atimeout component 812, and aninactivity component 814. Thecommunication component 808 interfaces, or facilitates data exchange, between thecomputing device 104 and thegateway 106. Theregistration component 810 registers theapplication endpoint 110 with thegateway 106. Thetimeout component 812 monitors the registration by theregistration component 810. Thetimeout component 812 notifies theapplication 108 of a timeout condition after a predefined period of inactivity (e.g., based on the registration timeout value). After a successful registration, theinactivity component 814 receives a notice of inactivity from thegateway 106 if the inactivity timeout value maintained by thegateway 106 expires (e.g., if theservice 102 crashed). Theinactivity component 814 notifies theapplication 108 of the inactivity responsive to the received notice of inactivity. Responsive to the notification from theinactivity component 814, theapplication 108 re-registers theapplication endpoint 110 and re-subscribes with theservice 102. - Aspects of the invention transform a general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.
- While aspects of the invention are described with reference to the
computing device 104 being a mobile computing device such as a mobile telephone, embodiments of the invention are operable with any computing device. For example, aspects of the invention are operable with devices such as laptop computers, gaming consoles, hand-held or vehicle-mounted navigation devices, portable music players, and other devices. - By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media store information such as computer readable instructions, data structures, program modules or other data. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Combinations of any of the above are also included within the scope of computer readable media.
- Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
- The embodiments illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for identifying a communication failure based on the inactivity timeout value, and exemplary means for re-establishing the communication path responsive to expiration of the inactivity timeout value.
- The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
- When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
- Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
- Exemplary application programming interfaces (API) are described below.
- Creates object representing endpoint. Until the endpoint is registered, no communication with gateway is established and no state on the gateway is created.
- [out] hEndpoint
- Sets endpoint settings. The API may be called at any endpoint state, however since most options apply only to active endpoints, setting may not take effect until endpoint is registered. All options have reasonable defaults that may differ for different channels/gateways.
- [in] hEndpoint
[in] Option Type
[in] blobOption—a structure containing option parameters as specified in the table below. -
TABLE A1 Option Parameters. Option type Description Parameters SUPRESS_MESSAGE This option allows applications to unsigned Bitmap-32 bit bitmap suppress messages based on specifying which classes of messages to message class. Suppressed be rejected by the gateway. Note that messages are dropped by the class 0 used for idle messages from gateway. The setting can be Application Server to gateway and is changed at any time and takes suppressed. effect immediately of the endpoint Default is 0 (all messages are accepted). is active. FRIENDLY_NAME This option can be used by the string Name-human readable name of gateway for logging, reports, the endpoint troubleshooting, etc. Default is generated by Push Client (e.g., The setting takes effect when the it may be derived from the friendly name endpoint is registered. of the application account, on other OS versions it can be name of the executable). LIFETIME Specifies how long the gateway unsigned Lifetime-time in seconds keeps the endpoint when the Default is selected by the channel. device is unreachable. This is a hint from application and channel/gateway may override it. The setting takes effect when the endpoint is registered. DELIVERY_PARAMS Allows applications to fine tune MessageClass-specifies message class delivery parameters for different for which the parameters are set. message classes. Most unsigned Delay-maximum batching applications will not change these delay, in second, for messages in settings. The settings are treated specified class. as hints and can be ignored by the unsigned Burst-maximum burst for channel/gateway or overridden by messages in specified class. device policy. Defaults are set by the channel such that Device policy may limit valid classes 1-9 will provide real time ranges for each parameter delivery, 10-21 will be delayed by separately for each message class. several minutes and 22-31 may be delayed by up to an hour.
RegisterEndpoint [async] - Establishes communication channel between the device and the gateway, allocates endpoint state on the gateway and returns endpoint URL to the appliation. The URL is generated by the channel/gateway.
- Registered endpoint does not guarantee end-to-end from service to device. If service is not able to reach the device using the endpoint, application may unregister and register the endpoint. The Push Client will first try to use a different gateway and then different channel if the previous one was unreachable.
- The API is asynchronous and the call returns immediately as pending. The Push Client performs registration in the background and notifies application when the process completes. The application can then obtain the endpoint URL. Application may cancel pending registrations at any time by calling UnregisterEndpoint or CloseEndpoint.
- The call fails with ALREADY_REGISTERED error if the endpoint is already registered or RegisterEndpoint or RegisterStaticEndpoint call is pending.
- [in] hEndpoint
- [in, optional] strApplicationServer—name of Application Server that is authorized to send messages to the endpoint. Application Server will need to authenticate using SSL mutual authentication in order to send a message to the endpoint.
- If not specified, endpoint will not require Application Server to authenticate. If endpoints w/o authentication are not supported, the registration will fail
- [in, optional] nEndToEnd Verification Timeout—maximum time in seconds for the first message to arrive to the endpoint. If initial message does not arrive within specified time the endpoint is considered invalid and application is notified. 0 means no timeout. If not specified, default is 120 seconds.
- [in] nInactivity Timeout—maximum time in seconds between massages. If endpoint is inactive for longer than the specified time the endpoint is considered invalid and application is notified. 0 means no timeout. If not specified, default is 0.
- [out] strEndpointURL—URL representing registered endpoints. If strApplicationServer was not specified then the endpoint does not require authentication and the URL itself includes the authorization ticket and MUST NOT be transmitted in the clear.
- RegisterStaticEndpoint [async]
- Establishes communication channel between the device and the gateway and registers device with a static endpoint. Unlike RegisterEndpoint, this API does not return endpoint URL. Static endpoints URLs are predictable (or discoverable through the gateway) and thus do not need to be communicated by the application to the Application Server.
- Static endpoints do not support initialization and inactivity timeouts. Lifetime of static endpoint is fully controlled by the channel/gateway. Application will be notified when endpoint is deleted by the gateway.
- The API is asynchronous and the call returns immediately as pending. The Push Client performs registration in the background and notifies application when the process completes. Application may cancel pending registrations at any time by calling UnregisterEndpoint or CloseEndpoint.
- The call fails with ALREADY_REGISTERED error if the endpoint is already registered or RegisterEndpoint or RegisterStaticEndpoint call is pending.
- [in] hEndpoint
- [in] strChannel—identifies channel used to register the static endpoint. Static endpoints can be only registered on a specific channel and are discoverable through the gateway on which they are registered.
- [in] strApplication—unique identifier of application. If a static endpoint with this identifier is already registered on the device, the call will fail.
- Deregisters the endpoint on the gateway and dereferences the channel connection. The API is synchronous and call completes immediately although the actual deregistration with the gateway will be completed asynchronously (e.g. in particular when device does not have connectivity with the gateway, deregistration will be pending until connection is reestablished). Application is not notified about completion of deregistration. Pending deregistration is not associated with the local endpoint object (hEndpoint) and the endpoint can be reregistered immediately after the API returns. The Push Client service must be able to handle several pending deregistration requests however it may drop deregistration requests that cannot be completed after some time since the gateway will independently cleanup endpoint state for an unreachable device anyways.
- [in] hEndpoint
- Performs DeregisterEndpoint, if necessary, and destroys the local endpoint object.
- [in] hEndpoint
GetEndpointNotification [async] - Returns notification associated with the endpoint when available. There are two types of notifications:
- 1. MESSAGE—push message(s) are queued and available for retrieval using GetEndpointMessage.
- 2. STATUS—endpoint status has changed since the last time application checked it using GetEndpointStatus.
- The API is asynchronous. The call returns immediately as pending and application is notified of completion when a notification is available. After processing the notification application calls GetEndpointNotification again. Only one outstanding call to GetEndpointNotification is allowed; the API will fail if there is already a pending call.
- [in] hEndpoint
- [in] dwNotificationsRequested—bitmap indicating which notification types (MESSAGE and/or STATUS) the application is interested in.
- [out] dwNotificationsAvailable—bitmap indicating which notifications are available.
- Retrieves message from local endpoint queue. If there are no messages in the queue, the API returns appropriate error code.
- [in] hEndpoint
[out] blobMessage - Returns status of the endpoint. Status changes are not queued and only current status is returned.
- [in] hEndpoint
- [out] Status—structure describing endpoint status:
-
struct EnpointStatus { bool bEndpointWorking; // true if endpoint is working bool bPushSystemWorking; // true if any of the channels are working FailureReason Reason; // set when bEndpointWorking is false time LastMessageTimestamp; }; enum FailureReason { Invalid, // endpoint hasn't received initial message w/o specified timeframe Inactive, // endpoint was inactive for longer than specified timeframe Disconnected,// device lost channel connectivity and thus can't reach gateway Deleted // gateway doesn't recognize the endpoint };
Claims (20)
1. A system for end-to-end validation in a push environment including a service sending messages to a gateway for delivery to a mobile computing device, said system comprising:
a memory area for storing data defining a communication path between the mobile computing device and the service, said mobile computing device configured to receive messages from the service via the gateway; and
a processor programmed to:
receive a request from an application to register an application endpoint, said application executing on the mobile computing device;
register the application endpoint with the gateway responsive to the received request, wherein the gateway defines an inactivity timeout value for the application endpoint, wherein the gateway monitors the communication path, and wherein the application subscribes the application endpoint to receive the messages from the service;
subsequently receive a notification from the gateway when the inactivity timeout value expires based on the monitored communication path; and
notify the application of the received notification, wherein the application re-registers the application endpoint with the gateway and re-subscribes with the service to receive the messages.
2. The system of claim 1 , wherein the processor is further configured to:
receive the inactivity timeout value from the application for the application endpoint; and
provide the received inactivity timeout value to the gateway.
3. The system of claim 1 , wherein the processor is configured to register the application endpoint by:
identifying one or more channels available for communication;
selecting one of the identified channels;
defining an object for the selected channel; and
providing the defined object to the application;
4. The system of claim 3 , wherein the processor is configured to select said one of the identified channels based on one or more policy settings for the application.
5. The system of claim 1 , wherein the processor is further configured to receive a uniform resource locator from the gateway for the application endpoint.
6. The system of claim 1 , wherein the inactivity timeout value represents a maximum time in seconds between receipt of messages from the service.
7. The system of claim 1 , wherein the processor is further configured to de-register the application endpoint responsive to the received notification from the gateway.
8. The system of claim 1 , further comprising means for identifying a communication failure based on the inactivity timeout value.
9. The system of claim 1 , further comprising means for re-establishing the communication path responsive to expiration of the inactivity timeout value.
10. A method comprising:
receiving a request from an application to register an application endpoint, said application executing on a computing device, said computing device configured to receive messages from a service via a gateway;
registering the application endpoint with the gateway responsive to the received request, wherein the gateway defines a registration timeout value, and wherein the application subscribes the application endpoint to receive the messages from the service;
calculating, relative to a current time, an elapsed time since said receiving; and
notifying the application of a timeout condition when the calculated elapsed time exceeds the registration timeout value without one of the messages being received from the service, wherein the application re-registers the application endpoint and re-subscribes with the service responsive to said notifying to receive the messages.
11. The method of claim 10 , wherein the gateway defines the registration timeout value as a maximum time in seconds for a message to arrive at the application endpoint after said receiving.
12. The method of claim 10 , further comprising receiving a request from the application to register the application endpoint with another gateway responsive to the notification of a timeout condition.
13. The method of claim 10 , wherein a unidirectional message flow exists from the service to the gateway to the computing device.
14. The method of claim 10 , further comprising de-registering the application endpoint with the gateway responsive to said notifying.
15. The method of claim 10 , wherein the application unsubscribes from the service responsive to said notifying.
16. One or more computer-readable media having computer-executable components, said components comprising:
a communication component for interfacing between a computing device and a gateway, said computing device configured to receive messages from a service via the gateway;
a registration component for registering an application endpoint with the gateway, said application endpoint being associated with an application executing on the computing device, wherein the application subscribes with the service to receive the messages;
a timeout component for monitoring the registration by the registration component, wherein the timeout component notifies the application of a timeout condition after a predefined period of inactivity responsive to the registering by the registration component; and
an inactivity component for receiving notice of inactivity from the gateway after expiration of an inactivity timeout value maintained by the gateway, wherein the inactivity component notifies the application of the inactivity responsive to the received notice of inactivity.
17. The computer-readable media of claim 16 , wherein the application re-registers the application endpoint and re-subscribes with the service responsive to the notification from the inactivity component.
18. The computer-readable media of claim 16 , wherein a unidirectional message flow exists from the service to the gateway to the computing device.
19. The computer-readable media of claim 16 , wherein the application endpoint comprises a uniform resource locator referencing the application.
20. The computer-readable media of claim 16 , wherein the application communicates with the service outside of the gateway to subscribe to the messages.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/327,484 US20100138501A1 (en) | 2008-12-03 | 2008-12-03 | End-to-end validation in a push environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/327,484 US20100138501A1 (en) | 2008-12-03 | 2008-12-03 | End-to-end validation in a push environment |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100138501A1 true US20100138501A1 (en) | 2010-06-03 |
Family
ID=42223776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/327,484 Abandoned US20100138501A1 (en) | 2008-12-03 | 2008-12-03 | End-to-end validation in a push environment |
Country Status (1)
Country | Link |
---|---|
US (1) | US20100138501A1 (en) |
Cited By (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110289172A1 (en) * | 2009-02-25 | 2011-11-24 | Apple Inc. | Managing notification messages |
US20120278475A1 (en) * | 2011-04-28 | 2012-11-01 | Matthew Nicholas Papakipos | Managing Notifications Pushed to User Devices |
US20120324022A1 (en) * | 2011-06-14 | 2012-12-20 | Lowry Adam C | Push gateway systems and methods |
US20130047034A1 (en) * | 2011-08-17 | 2013-02-21 | Lookout, Inc., A California Corporation | System and method for mobile device push communications |
US8407776B2 (en) | 2011-02-11 | 2013-03-26 | Good Technology Corporation | Method, apparatus and system for provisioning a push notification session |
US20130144954A1 (en) * | 2010-07-30 | 2013-06-06 | Huawei Technologies Co., Ltd. | Method and Apparatus for Cooperation Between Push Devices |
US20130198381A1 (en) * | 2012-01-30 | 2013-08-01 | International Business Machines Corporation | Optimizing Data Extraction from Distributed Systems into a Unified Event Aggregator Using Time-Outs |
US8554855B1 (en) | 2011-06-14 | 2013-10-08 | Urban Airship, Inc. | Push notification delivery system |
US8649768B1 (en) * | 2011-08-24 | 2014-02-11 | Cellco Partnership | Method of device authentication and application registration in a push communication framework |
US8676238B2 (en) | 2008-06-02 | 2014-03-18 | Apple Inc. | Managing notification messages |
WO2014068182A1 (en) * | 2012-10-31 | 2014-05-08 | Nokia Corporation | Method and apparatus for providing application notifications |
US8731523B1 (en) * | 2011-06-14 | 2014-05-20 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
US20140148205A1 (en) * | 2012-11-27 | 2014-05-29 | Alcatel-Lucent Canada Inc. | Push service without persistent tcp connection in a mobile network |
US20140324972A1 (en) * | 2013-04-28 | 2014-10-30 | Tencent Technology (Shenzhen) Company Limited | Method, Server, User Terminal, and System For Pushing Notification Message |
US20140325506A1 (en) * | 2013-04-24 | 2014-10-30 | QRC, Inc. dba QRC Technologies, Inc. | System and Method for RF Digitization and Collection |
US8881292B2 (en) | 2008-10-21 | 2014-11-04 | Lookout, Inc. | Evaluating whether data is safe or malicious |
US8997181B2 (en) | 2008-10-21 | 2015-03-31 | Lookout, Inc. | Assessing the security state of a mobile communications device |
US20150120805A1 (en) * | 2013-10-24 | 2015-04-30 | Sap Ag | Bi-directional Channel-based Progress Indicator |
US20150131651A1 (en) * | 2013-11-12 | 2015-05-14 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US9130935B2 (en) | 2011-05-05 | 2015-09-08 | Good Technology Corporation | System and method for providing access credentials |
US9208215B2 (en) | 2012-12-27 | 2015-12-08 | Lookout, Inc. | User classification based on data gathered from a computing device |
US9215074B2 (en) | 2012-06-05 | 2015-12-15 | Lookout, Inc. | Expressing intent to control behavior of application components |
US9294500B2 (en) | 2008-10-21 | 2016-03-22 | Lookout, Inc. | System and method for creating and applying categorization-based policy to secure a mobile communications device from access to certain data objects |
US9374369B2 (en) | 2012-12-28 | 2016-06-21 | Lookout, Inc. | Multi-factor authentication and comprehensive login system for client-server networks |
US9408143B2 (en) | 2012-10-26 | 2016-08-02 | Lookout, Inc. | System and method for using context models to control operation of a mobile communications device |
US9424409B2 (en) | 2013-01-10 | 2016-08-23 | Lookout, Inc. | Method and system for protecting privacy and enhancing security on an electronic device |
US9456008B2 (en) | 2008-04-02 | 2016-09-27 | Twilio, Inc. | System and method for processing telephony sessions |
US9455949B2 (en) | 2011-02-04 | 2016-09-27 | Twilio, Inc. | Method for processing telephony sessions of a network |
US9459926B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US9459925B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US9477975B2 (en) | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
US9483328B2 (en) | 2013-07-19 | 2016-11-01 | Twilio, Inc. | System and method for delivering application content |
US9491309B2 (en) | 2009-10-07 | 2016-11-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US9495227B2 (en) | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
US9509782B2 (en) | 2014-10-21 | 2016-11-29 | Twilio, Inc. | System and method for providing a micro-services communication platform |
US9529417B2 (en) | 2011-04-28 | 2016-12-27 | Facebook, Inc. | Performing selected operations using low power-consuming processors on user devices |
US9531827B1 (en) | 2011-06-14 | 2016-12-27 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
US20170006125A1 (en) * | 2015-07-02 | 2017-01-05 | Canon Kabushiki Kaisha | Communication apparatus, control method thereof, and storage medium |
US9553900B2 (en) | 2014-07-07 | 2017-01-24 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
US9590849B2 (en) | 2010-06-23 | 2017-03-07 | Twilio, Inc. | System and method for managing a computing cluster |
US9589129B2 (en) | 2012-06-05 | 2017-03-07 | Lookout, Inc. | Determining source of side-loaded software |
US9591033B2 (en) | 2008-04-02 | 2017-03-07 | Twilio, Inc. | System and method for processing media requests during telephony sessions |
US9588974B2 (en) | 2014-07-07 | 2017-03-07 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US9614972B2 (en) | 2012-07-24 | 2017-04-04 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US9621733B2 (en) | 2009-03-02 | 2017-04-11 | Twilio, Inc. | Method and system for a multitenancy telephone network |
US9628624B2 (en) | 2014-03-14 | 2017-04-18 | Twilio, Inc. | System and method for a work distribution service |
US9641677B2 (en) | 2011-09-21 | 2017-05-02 | Twilio, Inc. | System and method for determining and communicating presence information |
US9642008B2 (en) | 2013-10-25 | 2017-05-02 | Lookout, Inc. | System and method for creating and assigning a policy for a mobile communications device based on personal data |
US9648006B2 (en) | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
US9654647B2 (en) | 2012-10-15 | 2017-05-16 | Twilio, Inc. | System and method for routing communications |
US9753796B2 (en) | 2013-12-06 | 2017-09-05 | Lookout, Inc. | Distributed monitoring, evaluation, and response for multiple devices |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US9807244B2 (en) | 2008-10-01 | 2017-10-31 | Twilio, Inc. | Telephony web event system and method |
US9811398B2 (en) | 2013-09-17 | 2017-11-07 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US9853872B2 (en) | 2013-09-17 | 2017-12-26 | Twilio, Inc. | System and method for providing communication platform metadata |
US9860263B2 (en) | 2008-10-21 | 2018-01-02 | Lookout, Inc. | System and method for assessing data objects on mobile communications devices |
US9907010B2 (en) | 2014-04-17 | 2018-02-27 | Twilio, Inc. | System and method for enabling multi-modal communication |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US9955352B2 (en) | 2009-02-17 | 2018-04-24 | Lookout, Inc. | Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such |
US9967224B2 (en) | 2010-06-25 | 2018-05-08 | Twilio, Inc. | System and method for enabling real-time eventing |
US9992608B2 (en) | 2013-06-19 | 2018-06-05 | Twilio, Inc. | System and method for providing a communication endpoint information service |
US10033617B2 (en) | 2012-10-15 | 2018-07-24 | Twilio, Inc. | System and method for triggering on platform usage |
US10051011B2 (en) | 2013-03-14 | 2018-08-14 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US10057734B2 (en) | 2013-06-19 | 2018-08-21 | Twilio Inc. | System and method for transmitting and receiving media messages |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
US10069773B2 (en) | 2013-11-12 | 2018-09-04 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
US10116733B2 (en) | 2014-07-07 | 2018-10-30 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US10122747B2 (en) | 2013-12-06 | 2018-11-06 | Lookout, Inc. | Response generation after distributed monitoring and evaluation of multiple devices |
US10122763B2 (en) | 2011-05-23 | 2018-11-06 | Twilio, Inc. | System and method for connecting a communication to a client |
US10165015B2 (en) | 2011-05-23 | 2018-12-25 | Twilio Inc. | System and method for real-time communication by using a client application communication protocol |
US10218697B2 (en) | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
US10320983B2 (en) | 2012-06-19 | 2019-06-11 | Twilio Inc. | System and method for queuing a communication session |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US10540494B2 (en) | 2015-05-01 | 2020-01-21 | Lookout, Inc. | Determining source of side-loaded software using an administrator server |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
US11089123B2 (en) * | 2018-05-15 | 2021-08-10 | Microsoft Technology Licensing, Llc | Service worker push violation enforcement |
US11297114B2 (en) * | 2017-07-26 | 2022-04-05 | T-Mobile Usa, Inc. | Server-managed notifications for maintaining registered state |
US11303306B2 (en) | 2020-01-20 | 2022-04-12 | Parsons Corporation | Narrowband IQ extraction and storage |
US11569848B2 (en) | 2020-04-17 | 2023-01-31 | Parsons Corporation | Software-defined radio linking systems |
US11575407B2 (en) | 2020-04-27 | 2023-02-07 | Parsons Corporation | Narrowband IQ signal obfuscation |
US11605166B2 (en) | 2019-10-16 | 2023-03-14 | Parsons Corporation | GPU accelerated image segmentation |
US11619700B2 (en) | 2020-04-07 | 2023-04-04 | Parsons Corporation | Retrospective interferometry direction finding |
US11637934B2 (en) | 2010-06-23 | 2023-04-25 | Twilio Inc. | System and method for monitoring account usage on a platform |
US11849347B2 (en) | 2021-01-05 | 2023-12-19 | Parsons Corporation | Time axis correlation of pulsed electromagnetic transmissions |
US11973835B2 (en) | 2019-01-28 | 2024-04-30 | Twilio Inc. | System and method for managing media and signaling in a communication platform |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226762B1 (en) * | 1998-04-20 | 2001-05-01 | National Instruments Corporation | System and method for providing delayed start-up of an activity monitor in a distributed I/O system |
US20030076808A1 (en) * | 1998-09-17 | 2003-04-24 | Mcniff Peter Gerald | System and method for mobile computing device registration with a service node |
US20040012769A1 (en) * | 2001-05-15 | 2004-01-22 | Shinichiro Murakami | Use charge calculation system, method, program, and computer-readable recording medium |
US20040117339A1 (en) * | 2002-12-13 | 2004-06-17 | Pascal Thubert | Arrangement in a router of a mobile network for optimizing use of messages carrying reverse routing headers |
US20050111441A1 (en) * | 2001-08-24 | 2005-05-26 | Petri Koskelainen | Service mobility and recovery in communication networks |
US6917612B2 (en) * | 2000-09-01 | 2005-07-12 | Telefonaktiebolaged L M Ericsson | System and method for address resolution in internet protocol (IP)-based networks |
US7020717B1 (en) * | 1999-09-29 | 2006-03-28 | Harris-Exigent, Inc. | System and method for resynchronizing interprocess communications connection between consumer and publisher applications by using a shared state memory among message topic server and message routers |
US20060187916A1 (en) * | 2005-02-23 | 2006-08-24 | Jean-Philippe Vasseur | Methods and apparatus based on message transmission times |
US20070064886A1 (en) * | 2005-08-26 | 2007-03-22 | Tekelec | Methods, systems, and computer program products for dynamically controlling a PSTN network element from an IP network element using signaling |
US20070254677A1 (en) * | 2006-05-01 | 2007-11-01 | Motorola, Inc. | Method and system to enable paging for mobile ip nodes |
US20080096597A1 (en) * | 2004-04-21 | 2008-04-24 | Brahmananda Vempati | Providing Push-to-Talk Communications in a Telecommunications Network |
US20080109529A1 (en) * | 2006-11-06 | 2008-05-08 | Audible | Method and apparatus for targeted content delivery |
US20080250484A1 (en) * | 2001-12-28 | 2008-10-09 | Chong Lester J | System and method for content filtering |
US20080313331A1 (en) * | 2007-06-12 | 2008-12-18 | Boykin James R | Managing Computer Resources In A Distributed Computing System |
US20100042674A1 (en) * | 2008-08-15 | 2010-02-18 | Sony Ericsson Mobile Communications Ab | Method and system for discovery of dynamic ip addresses |
US7751807B2 (en) * | 2007-02-12 | 2010-07-06 | Oomble, Inc. | Method and system for a hosted mobile management service architecture |
US7860981B1 (en) * | 2006-09-29 | 2010-12-28 | Juniper Networks, Inc. | Systems and methods for IP session keepalive using BFD protocols |
US7961703B2 (en) * | 2006-11-30 | 2011-06-14 | Research In Motion Limited | System and method for maintaining packet protocol context |
-
2008
- 2008-12-03 US US12/327,484 patent/US20100138501A1/en not_active Abandoned
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226762B1 (en) * | 1998-04-20 | 2001-05-01 | National Instruments Corporation | System and method for providing delayed start-up of an activity monitor in a distributed I/O system |
US20030076808A1 (en) * | 1998-09-17 | 2003-04-24 | Mcniff Peter Gerald | System and method for mobile computing device registration with a service node |
US7130296B2 (en) * | 1998-09-17 | 2006-10-31 | Openwave Systems Inc. | System and method for mobile computing device registration with a service node |
US7020717B1 (en) * | 1999-09-29 | 2006-03-28 | Harris-Exigent, Inc. | System and method for resynchronizing interprocess communications connection between consumer and publisher applications by using a shared state memory among message topic server and message routers |
US6917612B2 (en) * | 2000-09-01 | 2005-07-12 | Telefonaktiebolaged L M Ericsson | System and method for address resolution in internet protocol (IP)-based networks |
US20040012769A1 (en) * | 2001-05-15 | 2004-01-22 | Shinichiro Murakami | Use charge calculation system, method, program, and computer-readable recording medium |
US20050111441A1 (en) * | 2001-08-24 | 2005-05-26 | Petri Koskelainen | Service mobility and recovery in communication networks |
US20080250484A1 (en) * | 2001-12-28 | 2008-10-09 | Chong Lester J | System and method for content filtering |
US20040117339A1 (en) * | 2002-12-13 | 2004-06-17 | Pascal Thubert | Arrangement in a router of a mobile network for optimizing use of messages carrying reverse routing headers |
US20080096597A1 (en) * | 2004-04-21 | 2008-04-24 | Brahmananda Vempati | Providing Push-to-Talk Communications in a Telecommunications Network |
US20060187916A1 (en) * | 2005-02-23 | 2006-08-24 | Jean-Philippe Vasseur | Methods and apparatus based on message transmission times |
US20070064886A1 (en) * | 2005-08-26 | 2007-03-22 | Tekelec | Methods, systems, and computer program products for dynamically controlling a PSTN network element from an IP network element using signaling |
US20070254677A1 (en) * | 2006-05-01 | 2007-11-01 | Motorola, Inc. | Method and system to enable paging for mobile ip nodes |
US7860981B1 (en) * | 2006-09-29 | 2010-12-28 | Juniper Networks, Inc. | Systems and methods for IP session keepalive using BFD protocols |
US20080109529A1 (en) * | 2006-11-06 | 2008-05-08 | Audible | Method and apparatus for targeted content delivery |
US7961703B2 (en) * | 2006-11-30 | 2011-06-14 | Research In Motion Limited | System and method for maintaining packet protocol context |
US7751807B2 (en) * | 2007-02-12 | 2010-07-06 | Oomble, Inc. | Method and system for a hosted mobile management service architecture |
US20080313331A1 (en) * | 2007-06-12 | 2008-12-18 | Boykin James R | Managing Computer Resources In A Distributed Computing System |
US20100042674A1 (en) * | 2008-08-15 | 2010-02-18 | Sony Ericsson Mobile Communications Ab | Method and system for discovery of dynamic ip addresses |
Cited By (253)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10560495B2 (en) | 2008-04-02 | 2020-02-11 | Twilio Inc. | System and method for processing telephony sessions |
US10986142B2 (en) | 2008-04-02 | 2021-04-20 | Twilio Inc. | System and method for processing telephony sessions |
US11283843B2 (en) | 2008-04-02 | 2022-03-22 | Twilio Inc. | System and method for processing telephony sessions |
US9596274B2 (en) | 2008-04-02 | 2017-03-14 | Twilio, Inc. | System and method for processing telephony sessions |
US11765275B2 (en) | 2008-04-02 | 2023-09-19 | Twilio Inc. | System and method for processing telephony sessions |
US11444985B2 (en) | 2008-04-02 | 2022-09-13 | Twilio Inc. | System and method for processing telephony sessions |
US11722602B2 (en) | 2008-04-02 | 2023-08-08 | Twilio Inc. | System and method for processing media requests during telephony sessions |
US11831810B2 (en) | 2008-04-02 | 2023-11-28 | Twilio Inc. | System and method for processing telephony sessions |
US11575795B2 (en) | 2008-04-02 | 2023-02-07 | Twilio Inc. | System and method for processing telephony sessions |
US11706349B2 (en) | 2008-04-02 | 2023-07-18 | Twilio Inc. | System and method for processing telephony sessions |
US11611663B2 (en) | 2008-04-02 | 2023-03-21 | Twilio Inc. | System and method for processing telephony sessions |
US11843722B2 (en) | 2008-04-02 | 2023-12-12 | Twilio Inc. | System and method for processing telephony sessions |
US9456008B2 (en) | 2008-04-02 | 2016-09-27 | Twilio, Inc. | System and method for processing telephony sessions |
US10893078B2 (en) | 2008-04-02 | 2021-01-12 | Twilio Inc. | System and method for processing telephony sessions |
US11856150B2 (en) | 2008-04-02 | 2023-12-26 | Twilio Inc. | System and method for processing telephony sessions |
US10694042B2 (en) | 2008-04-02 | 2020-06-23 | Twilio Inc. | System and method for processing media requests during telephony sessions |
US9591033B2 (en) | 2008-04-02 | 2017-03-07 | Twilio, Inc. | System and method for processing media requests during telephony sessions |
US9906651B2 (en) | 2008-04-02 | 2018-02-27 | Twilio, Inc. | System and method for processing media requests during telephony sessions |
US9906571B2 (en) | 2008-04-02 | 2018-02-27 | Twilio, Inc. | System and method for processing telephony sessions |
US10893079B2 (en) | 2008-04-02 | 2021-01-12 | Twilio Inc. | System and method for processing telephony sessions |
US8676238B2 (en) | 2008-06-02 | 2014-03-18 | Apple Inc. | Managing notification messages |
US11632471B2 (en) | 2008-10-01 | 2023-04-18 | Twilio Inc. | Telephony web event system and method |
US11641427B2 (en) | 2008-10-01 | 2023-05-02 | Twilio Inc. | Telephony web event system and method |
US10455094B2 (en) | 2008-10-01 | 2019-10-22 | Twilio Inc. | Telephony web event system and method |
US9807244B2 (en) | 2008-10-01 | 2017-10-31 | Twilio, Inc. | Telephony web event system and method |
US10187530B2 (en) | 2008-10-01 | 2019-01-22 | Twilio, Inc. | Telephony web event system and method |
US11665285B2 (en) | 2008-10-01 | 2023-05-30 | Twilio Inc. | Telephony web event system and method |
US11005998B2 (en) | 2008-10-01 | 2021-05-11 | Twilio Inc. | Telephony web event system and method |
US9407640B2 (en) | 2008-10-21 | 2016-08-02 | Lookout, Inc. | Assessing a security state of a mobile communications device to determine access to specific tasks |
US9294500B2 (en) | 2008-10-21 | 2016-03-22 | Lookout, Inc. | System and method for creating and applying categorization-based policy to secure a mobile communications device from access to certain data objects |
US8881292B2 (en) | 2008-10-21 | 2014-11-04 | Lookout, Inc. | Evaluating whether data is safe or malicious |
US8997181B2 (en) | 2008-10-21 | 2015-03-31 | Lookout, Inc. | Assessing the security state of a mobile communications device |
US9860263B2 (en) | 2008-10-21 | 2018-01-02 | Lookout, Inc. | System and method for assessing data objects on mobile communications devices |
US9223973B2 (en) | 2008-10-21 | 2015-12-29 | Lookout, Inc. | System and method for attack and malware prevention |
US9955352B2 (en) | 2009-02-17 | 2018-04-24 | Lookout, Inc. | Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such |
US10623960B2 (en) | 2009-02-17 | 2020-04-14 | Lookout, Inc. | Methods and systems for enhancing electronic device security by causing the device to go into a mode for lost or stolen devices |
US10419936B2 (en) | 2009-02-17 | 2019-09-17 | Lookout, Inc. | Methods and systems for causing mobile communications devices to emit sounds with encoded information |
US20140164541A1 (en) * | 2009-02-25 | 2014-06-12 | Apple Inc. | Managing notification messages |
US8630624B2 (en) * | 2009-02-25 | 2014-01-14 | Apple Inc. | Managing notification messages |
US20110289172A1 (en) * | 2009-02-25 | 2011-11-24 | Apple Inc. | Managing notification messages |
US9485208B2 (en) * | 2009-02-25 | 2016-11-01 | Apple Inc. | Managing notification messages |
US20170041273A1 (en) * | 2009-02-25 | 2017-02-09 | Apple Inc. | Managing Notification Messages |
US9985917B2 (en) * | 2009-02-25 | 2018-05-29 | Apple Inc. | Managing notification messages |
US11240381B2 (en) | 2009-03-02 | 2022-02-01 | Twilio Inc. | Method and system for a multitenancy telephone network |
US9621733B2 (en) | 2009-03-02 | 2017-04-11 | Twilio, Inc. | Method and system for a multitenancy telephone network |
US10708437B2 (en) | 2009-03-02 | 2020-07-07 | Twilio Inc. | Method and system for a multitenancy telephone network |
US10348908B2 (en) | 2009-03-02 | 2019-07-09 | Twilio, Inc. | Method and system for a multitenancy telephone network |
US9894212B2 (en) | 2009-03-02 | 2018-02-13 | Twilio, Inc. | Method and system for a multitenancy telephone network |
US11785145B2 (en) | 2009-03-02 | 2023-10-10 | Twilio Inc. | Method and system for a multitenancy telephone network |
US10554825B2 (en) | 2009-10-07 | 2020-02-04 | Twilio Inc. | System and method for running a multi-module telephony application |
US11637933B2 (en) | 2009-10-07 | 2023-04-25 | Twilio Inc. | System and method for running a multi-module telephony application |
US9491309B2 (en) | 2009-10-07 | 2016-11-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US9459925B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US11637934B2 (en) | 2010-06-23 | 2023-04-25 | Twilio Inc. | System and method for monitoring account usage on a platform |
US9459926B2 (en) | 2010-06-23 | 2016-10-04 | Twilio, Inc. | System and method for managing a computing cluster |
US9590849B2 (en) | 2010-06-23 | 2017-03-07 | Twilio, Inc. | System and method for managing a computing cluster |
US11088984B2 (en) | 2010-06-25 | 2021-08-10 | Twilio Ine. | System and method for enabling real-time eventing |
US9967224B2 (en) | 2010-06-25 | 2018-05-08 | Twilio, Inc. | System and method for enabling real-time eventing |
US11936609B2 (en) | 2010-06-25 | 2024-03-19 | Twilio Inc. | System and method for enabling real-time eventing |
US20130144954A1 (en) * | 2010-07-30 | 2013-06-06 | Huawei Technologies Co., Ltd. | Method and Apparatus for Cooperation Between Push Devices |
US9247018B2 (en) * | 2010-07-30 | 2016-01-26 | Huawei Technologies Co., Ltd. | Method and apparatus for cooperation between push devices |
US11848967B2 (en) | 2011-02-04 | 2023-12-19 | Twilio Inc. | Method for processing telephony sessions of a network |
US11032330B2 (en) | 2011-02-04 | 2021-06-08 | Twilio Inc. | Method for processing telephony sessions of a network |
US9455949B2 (en) | 2011-02-04 | 2016-09-27 | Twilio, Inc. | Method for processing telephony sessions of a network |
US9882942B2 (en) | 2011-02-04 | 2018-01-30 | Twilio, Inc. | Method for processing telephony sessions of a network |
US10708317B2 (en) | 2011-02-04 | 2020-07-07 | Twilio Inc. | Method for processing telephony sessions of a network |
US10230772B2 (en) | 2011-02-04 | 2019-03-12 | Twilio, Inc. | Method for processing telephony sessions of a network |
US10038755B2 (en) | 2011-02-11 | 2018-07-31 | Blackberry Limited | Method, apparatus and system for provisioning a push notification session |
US8407776B2 (en) | 2011-02-11 | 2013-03-26 | Good Technology Corporation | Method, apparatus and system for provisioning a push notification session |
US10389831B2 (en) | 2011-02-11 | 2019-08-20 | Blackberry Limited | Method, apparatus and system for provisioning a push notification session |
US9529417B2 (en) | 2011-04-28 | 2016-12-27 | Facebook, Inc. | Performing selected operations using low power-consuming processors on user devices |
US20140330933A1 (en) * | 2011-04-28 | 2014-11-06 | Facebook, Inc. | Managing Notifications Pushed to User Devices |
US9628577B2 (en) * | 2011-04-28 | 2017-04-18 | Facebook, Inc. | Managing notifications pushed to user devices |
US20160072907A1 (en) * | 2011-04-28 | 2016-03-10 | Facebook, Inc. | Managing Notifications Pushed to User Devices |
US9237201B2 (en) * | 2011-04-28 | 2016-01-12 | Facebook, Inc. | Managing notifications pushed to user devices |
US8825842B2 (en) * | 2011-04-28 | 2014-09-02 | Facebook, Inc. | Managing notifications pushed to user devices |
US20120278475A1 (en) * | 2011-04-28 | 2012-11-01 | Matthew Nicholas Papakipos | Managing Notifications Pushed to User Devices |
US9130935B2 (en) | 2011-05-05 | 2015-09-08 | Good Technology Corporation | System and method for providing access credentials |
US9648006B2 (en) | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
US10122763B2 (en) | 2011-05-23 | 2018-11-06 | Twilio, Inc. | System and method for connecting a communication to a client |
US10165015B2 (en) | 2011-05-23 | 2018-12-25 | Twilio Inc. | System and method for real-time communication by using a client application communication protocol |
US10819757B2 (en) | 2011-05-23 | 2020-10-27 | Twilio Inc. | System and method for real-time communication by using a client application communication protocol |
US10560485B2 (en) | 2011-05-23 | 2020-02-11 | Twilio Inc. | System and method for connecting a communication to a client |
US11399044B2 (en) | 2011-05-23 | 2022-07-26 | Twilio Inc. | System and method for connecting a communication to a client |
US11863644B2 (en) | 2011-06-14 | 2024-01-02 | Airship Group, Inc. | Push notification delivery system with feedback analysis |
US8554855B1 (en) | 2011-06-14 | 2013-10-08 | Urban Airship, Inc. | Push notification delivery system |
US8423656B2 (en) * | 2011-06-14 | 2013-04-16 | Urban Airship, Inc. | Push gateway systems and methods |
US9277023B1 (en) | 2011-06-14 | 2016-03-01 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
US11711442B2 (en) | 2011-06-14 | 2023-07-25 | Airship Group, Inc. | Push notification delivery system |
US10972565B2 (en) | 2011-06-14 | 2021-04-06 | Airship Group, Inc. | Push notification delivery system with feedback analysis |
US20120324022A1 (en) * | 2011-06-14 | 2012-12-20 | Lowry Adam C | Push gateway systems and methods |
US10862989B2 (en) | 2011-06-14 | 2020-12-08 | Urban Airship, Inc. | Push notification delivery system |
US9762690B2 (en) | 2011-06-14 | 2017-09-12 | Urban Airship, Inc. | Push notification delivery system |
US10244066B2 (en) | 2011-06-14 | 2019-03-26 | Urban Airship, Inc. | Push notification delivery system |
US9531827B1 (en) | 2011-06-14 | 2016-12-27 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
US11290555B2 (en) | 2011-06-14 | 2022-03-29 | Airship Group, Inc. | Push notification delivery system |
US8572263B1 (en) | 2011-06-14 | 2013-10-29 | Urban Airship, Inc. | Push gateway systems and methods |
US11539809B2 (en) | 2011-06-14 | 2022-12-27 | Airship Group, Inc. | Push notification delivery system with feedback analysis |
US8731523B1 (en) * | 2011-06-14 | 2014-05-20 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
US10601940B2 (en) | 2011-06-14 | 2020-03-24 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
US10142430B1 (en) | 2011-06-14 | 2018-11-27 | Urban Airship, Inc. | Push notification delivery system with feedback analysis |
TWI465135B (en) * | 2011-08-01 | 2014-12-11 | Apple Inc | Managing notification messages |
KR101417722B1 (en) | 2011-08-01 | 2014-07-08 | 애플 인크. | Managing notification messages |
CN103718578A (en) * | 2011-08-01 | 2014-04-09 | 苹果公司 | Managing notification messages |
JP2014527665A (en) * | 2011-08-01 | 2014-10-16 | アップル インコーポレイテッド | Managing notification messages |
WO2013019708A3 (en) * | 2011-08-01 | 2013-05-16 | Apple Inc. | Managing notification messages |
US8788881B2 (en) * | 2011-08-17 | 2014-07-22 | Lookout, Inc. | System and method for mobile device push communications |
US10181118B2 (en) | 2011-08-17 | 2019-01-15 | Lookout, Inc. | Mobile communications device payment method utilizing location information |
US20130047034A1 (en) * | 2011-08-17 | 2013-02-21 | Lookout, Inc., A California Corporation | System and method for mobile device push communications |
US8649768B1 (en) * | 2011-08-24 | 2014-02-11 | Cellco Partnership | Method of device authentication and application registration in a push communication framework |
US9037118B2 (en) | 2011-08-24 | 2015-05-19 | Cellco Partnership | Method of device authentication and application registration in a push communication framework |
US10686936B2 (en) | 2011-09-21 | 2020-06-16 | Twilio Inc. | System and method for determining and communicating presence information |
US10212275B2 (en) | 2011-09-21 | 2019-02-19 | Twilio, Inc. | System and method for determining and communicating presence information |
US9942394B2 (en) | 2011-09-21 | 2018-04-10 | Twilio, Inc. | System and method for determining and communicating presence information |
US10841421B2 (en) | 2011-09-21 | 2020-11-17 | Twilio Inc. | System and method for determining and communicating presence information |
US10182147B2 (en) | 2011-09-21 | 2019-01-15 | Twilio Inc. | System and method for determining and communicating presence information |
US11489961B2 (en) | 2011-09-21 | 2022-11-01 | Twilio Inc. | System and method for determining and communicating presence information |
US9641677B2 (en) | 2011-09-21 | 2017-05-02 | Twilio, Inc. | System and method for determining and communicating presence information |
US20130198381A1 (en) * | 2012-01-30 | 2013-08-01 | International Business Machines Corporation | Optimizing Data Extraction from Distributed Systems into a Unified Event Aggregator Using Time-Outs |
US11093305B2 (en) | 2012-02-10 | 2021-08-17 | Twilio Inc. | System and method for managing concurrent events |
US9495227B2 (en) | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
US10467064B2 (en) | 2012-02-10 | 2019-11-05 | Twilio Inc. | System and method for managing concurrent events |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US10200458B2 (en) | 2012-05-09 | 2019-02-05 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US10637912B2 (en) | 2012-05-09 | 2020-04-28 | Twilio Inc. | System and method for managing media in a distributed communication network |
US11165853B2 (en) | 2012-05-09 | 2021-11-02 | Twilio Inc. | System and method for managing media in a distributed communication network |
US9940454B2 (en) | 2012-06-05 | 2018-04-10 | Lookout, Inc. | Determining source of side-loaded software using signature of authorship |
US11336458B2 (en) | 2012-06-05 | 2022-05-17 | Lookout, Inc. | Evaluating authenticity of applications based on assessing user device context for increased security |
US9215074B2 (en) | 2012-06-05 | 2015-12-15 | Lookout, Inc. | Expressing intent to control behavior of application components |
US9589129B2 (en) | 2012-06-05 | 2017-03-07 | Lookout, Inc. | Determining source of side-loaded software |
US10256979B2 (en) | 2012-06-05 | 2019-04-09 | Lookout, Inc. | Assessing application authenticity and performing an action in response to an evaluation result |
US10419222B2 (en) | 2012-06-05 | 2019-09-17 | Lookout, Inc. | Monitoring for fraudulent or harmful behavior in applications being installed on user devices |
US9407443B2 (en) | 2012-06-05 | 2016-08-02 | Lookout, Inc. | Component analysis of software applications on computing devices |
US9992025B2 (en) | 2012-06-05 | 2018-06-05 | Lookout, Inc. | Monitoring installed applications on user devices |
US11546471B2 (en) | 2012-06-19 | 2023-01-03 | Twilio Inc. | System and method for queuing a communication session |
US10320983B2 (en) | 2012-06-19 | 2019-06-11 | Twilio Inc. | System and method for queuing a communication session |
US10469670B2 (en) | 2012-07-24 | 2019-11-05 | Twilio Inc. | Method and system for preventing illicit use of a telephony platform |
US9948788B2 (en) | 2012-07-24 | 2018-04-17 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US11063972B2 (en) | 2012-07-24 | 2021-07-13 | Twilio Inc. | Method and system for preventing illicit use of a telephony platform |
US9614972B2 (en) | 2012-07-24 | 2017-04-04 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US11882139B2 (en) | 2012-07-24 | 2024-01-23 | Twilio Inc. | Method and system for preventing illicit use of a telephony platform |
US9654647B2 (en) | 2012-10-15 | 2017-05-16 | Twilio, Inc. | System and method for routing communications |
US10757546B2 (en) | 2012-10-15 | 2020-08-25 | Twilio Inc. | System and method for triggering on platform usage |
US11595792B2 (en) | 2012-10-15 | 2023-02-28 | Twilio Inc. | System and method for triggering on platform usage |
US10033617B2 (en) | 2012-10-15 | 2018-07-24 | Twilio, Inc. | System and method for triggering on platform usage |
US11246013B2 (en) | 2012-10-15 | 2022-02-08 | Twilio Inc. | System and method for triggering on platform usage |
US11689899B2 (en) | 2012-10-15 | 2023-06-27 | Twilio Inc. | System and method for triggering on platform usage |
US10257674B2 (en) | 2012-10-15 | 2019-04-09 | Twilio, Inc. | System and method for triggering on platform usage |
US9408143B2 (en) | 2012-10-26 | 2016-08-02 | Lookout, Inc. | System and method for using context models to control operation of a mobile communications device |
US9769749B2 (en) | 2012-10-26 | 2017-09-19 | Lookout, Inc. | Modifying mobile device settings for resource conservation |
WO2014068182A1 (en) * | 2012-10-31 | 2014-05-08 | Nokia Corporation | Method and apparatus for providing application notifications |
US20140148205A1 (en) * | 2012-11-27 | 2014-05-29 | Alcatel-Lucent Canada Inc. | Push service without persistent tcp connection in a mobile network |
US9148765B2 (en) * | 2012-11-27 | 2015-09-29 | Alcatel Lucent | Push service without persistent TCP connection in a mobile network |
US9208215B2 (en) | 2012-12-27 | 2015-12-08 | Lookout, Inc. | User classification based on data gathered from a computing device |
US9374369B2 (en) | 2012-12-28 | 2016-06-21 | Lookout, Inc. | Multi-factor authentication and comprehensive login system for client-server networks |
US9424409B2 (en) | 2013-01-10 | 2016-08-23 | Lookout, Inc. | Method and system for protecting privacy and enhancing security on an electronic device |
US10051011B2 (en) | 2013-03-14 | 2018-08-14 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US11637876B2 (en) | 2013-03-14 | 2023-04-25 | Twilio Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US11032325B2 (en) | 2013-03-14 | 2021-06-08 | Twilio Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US10560490B2 (en) | 2013-03-14 | 2020-02-11 | Twilio Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US9348608B2 (en) * | 2013-04-24 | 2016-05-24 | QRC, Inc. | System and method for registering application and application transforms on a radiofrequency digitization and collection device |
US20140325506A1 (en) * | 2013-04-24 | 2014-10-30 | QRC, Inc. dba QRC Technologies, Inc. | System and Method for RF Digitization and Collection |
US20140324972A1 (en) * | 2013-04-28 | 2014-10-30 | Tencent Technology (Shenzhen) Company Limited | Method, Server, User Terminal, and System For Pushing Notification Message |
US9826055B2 (en) * | 2013-04-28 | 2017-11-21 | Tencent Technology (Shenzhen) Company Limited | Method, server, user terminal, and system for pushing notification message |
US10057734B2 (en) | 2013-06-19 | 2018-08-21 | Twilio Inc. | System and method for transmitting and receiving media messages |
US9992608B2 (en) | 2013-06-19 | 2018-06-05 | Twilio, Inc. | System and method for providing a communication endpoint information service |
US9483328B2 (en) | 2013-07-19 | 2016-11-01 | Twilio, Inc. | System and method for delivering application content |
US9853872B2 (en) | 2013-09-17 | 2017-12-26 | Twilio, Inc. | System and method for providing communication platform metadata |
US11539601B2 (en) | 2013-09-17 | 2022-12-27 | Twilio Inc. | System and method for providing communication platform metadata |
US9959151B2 (en) | 2013-09-17 | 2018-05-01 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US10671452B2 (en) | 2013-09-17 | 2020-06-02 | Twilio Inc. | System and method for tagging and tracking events of an application |
US10439907B2 (en) | 2013-09-17 | 2019-10-08 | Twilio Inc. | System and method for providing communication platform metadata |
US9811398B2 (en) | 2013-09-17 | 2017-11-07 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US11379275B2 (en) | 2013-09-17 | 2022-07-05 | Twilio Inc. | System and method for tagging and tracking events of an application |
US20150120805A1 (en) * | 2013-10-24 | 2015-04-30 | Sap Ag | Bi-directional Channel-based Progress Indicator |
US9774659B2 (en) * | 2013-10-24 | 2017-09-26 | Sap Se | Bi-directional channel-based progress indicator |
US10990696B2 (en) | 2013-10-25 | 2021-04-27 | Lookout, Inc. | Methods and systems for detecting attempts to access personal information on mobile communications devices |
US9642008B2 (en) | 2013-10-25 | 2017-05-02 | Lookout, Inc. | System and method for creating and assigning a policy for a mobile communications device based on personal data |
US10452862B2 (en) | 2013-10-25 | 2019-10-22 | Lookout, Inc. | System and method for creating a policy for managing personal data on a mobile communications device |
US9553799B2 (en) * | 2013-11-12 | 2017-01-24 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US11394673B2 (en) | 2013-11-12 | 2022-07-19 | Twilio Inc. | System and method for enabling dynamic multi-modal communication |
US20150131651A1 (en) * | 2013-11-12 | 2015-05-14 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US10686694B2 (en) | 2013-11-12 | 2020-06-16 | Twilio Inc. | System and method for client communication in a distributed telephony network |
US10063461B2 (en) | 2013-11-12 | 2018-08-28 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US11621911B2 (en) | 2013-11-12 | 2023-04-04 | Twillo Inc. | System and method for client communication in a distributed telephony network |
US11831415B2 (en) | 2013-11-12 | 2023-11-28 | Twilio Inc. | System and method for enabling dynamic multi-modal communication |
US10069773B2 (en) | 2013-11-12 | 2018-09-04 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
US10742676B2 (en) | 2013-12-06 | 2020-08-11 | Lookout, Inc. | Distributed monitoring and evaluation of multiple devices |
US9753796B2 (en) | 2013-12-06 | 2017-09-05 | Lookout, Inc. | Distributed monitoring, evaluation, and response for multiple devices |
US10122747B2 (en) | 2013-12-06 | 2018-11-06 | Lookout, Inc. | Response generation after distributed monitoring and evaluation of multiple devices |
US10904389B2 (en) | 2014-03-14 | 2021-01-26 | Twilio Inc. | System and method for a work distribution service |
US10003693B2 (en) | 2014-03-14 | 2018-06-19 | Twilio, Inc. | System and method for a work distribution service |
US9628624B2 (en) | 2014-03-14 | 2017-04-18 | Twilio, Inc. | System and method for a work distribution service |
US10291782B2 (en) | 2014-03-14 | 2019-05-14 | Twilio, Inc. | System and method for a work distribution service |
US11330108B2 (en) | 2014-03-14 | 2022-05-10 | Twilio Inc. | System and method for a work distribution service |
US11882242B2 (en) | 2014-03-14 | 2024-01-23 | Twilio Inc. | System and method for a work distribution service |
US10440627B2 (en) | 2014-04-17 | 2019-10-08 | Twilio Inc. | System and method for enabling multi-modal communication |
US9907010B2 (en) | 2014-04-17 | 2018-02-27 | Twilio, Inc. | System and method for enabling multi-modal communication |
US10873892B2 (en) | 2014-04-17 | 2020-12-22 | Twilio Inc. | System and method for enabling multi-modal communication |
US11653282B2 (en) | 2014-04-17 | 2023-05-16 | Twilio Inc. | System and method for enabling multi-modal communication |
US10747717B2 (en) | 2014-07-07 | 2020-08-18 | Twilio Inc. | Method and system for applying data retention policies in a computing platform |
US9553900B2 (en) | 2014-07-07 | 2017-01-24 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
US10116733B2 (en) | 2014-07-07 | 2018-10-30 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US11755530B2 (en) | 2014-07-07 | 2023-09-12 | Twilio Inc. | Method and system for applying data retention policies in a computing platform |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US11341092B2 (en) | 2014-07-07 | 2022-05-24 | Twilio Inc. | Method and system for applying data retention policies in a computing platform |
US9588974B2 (en) | 2014-07-07 | 2017-03-07 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US10229126B2 (en) | 2014-07-07 | 2019-03-12 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US10212237B2 (en) | 2014-07-07 | 2019-02-19 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US10757200B2 (en) | 2014-07-07 | 2020-08-25 | Twilio Inc. | System and method for managing conferencing in a distributed communication network |
US9858279B2 (en) | 2014-07-07 | 2018-01-02 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US11768802B2 (en) | 2014-07-07 | 2023-09-26 | Twilio Inc. | Method and system for applying data retention policies in a computing platform |
US11019159B2 (en) | 2014-10-21 | 2021-05-25 | Twilio Inc. | System and method for providing a micro-services communication platform |
US9509782B2 (en) | 2014-10-21 | 2016-11-29 | Twilio, Inc. | System and method for providing a micro-services communication platform |
US10637938B2 (en) | 2014-10-21 | 2020-04-28 | Twilio Inc. | System and method for providing a micro-services communication platform |
US9906607B2 (en) | 2014-10-21 | 2018-02-27 | Twilio, Inc. | System and method for providing a micro-services communication platform |
US9749428B2 (en) | 2014-10-21 | 2017-08-29 | Twilio, Inc. | System and method for providing a network discovery service platform |
US11544752B2 (en) | 2015-02-03 | 2023-01-03 | Twilio Inc. | System and method for a media intelligence platform |
US10853854B2 (en) | 2015-02-03 | 2020-12-01 | Twilio Inc. | System and method for a media intelligence platform |
US10467665B2 (en) | 2015-02-03 | 2019-11-05 | Twilio Inc. | System and method for a media intelligence platform |
US9805399B2 (en) | 2015-02-03 | 2017-10-31 | Twilio, Inc. | System and method for a media intelligence platform |
US9477975B2 (en) | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
US10540494B2 (en) | 2015-05-01 | 2020-01-21 | Lookout, Inc. | Determining source of side-loaded software using an administrator server |
US11259183B2 (en) | 2015-05-01 | 2022-02-22 | Lookout, Inc. | Determining a security state designation for a computing device based on a source of software |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US10560516B2 (en) | 2015-05-14 | 2020-02-11 | Twilio Inc. | System and method for signaling through data storage |
US11265367B2 (en) | 2015-05-14 | 2022-03-01 | Twilio Inc. | System and method for signaling through data storage |
US11272325B2 (en) | 2015-05-14 | 2022-03-08 | Twilio Inc. | System and method for communicating through multiple endpoints |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US10587712B2 (en) * | 2015-07-02 | 2020-03-10 | Canon Kabushiki Kaisha | Push message communication apparatus |
US20170006125A1 (en) * | 2015-07-02 | 2017-01-05 | Canon Kabushiki Kaisha | Communication apparatus, control method thereof, and storage medium |
US11729289B2 (en) * | 2015-07-02 | 2023-08-15 | Canon Kabushiki Kaisha | Push message communication apparatus |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US11171865B2 (en) | 2016-02-04 | 2021-11-09 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US11622022B2 (en) | 2016-05-23 | 2023-04-04 | Twilio Inc. | System and method for a multi-channel notification service |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
US11265392B2 (en) | 2016-05-23 | 2022-03-01 | Twilio Inc. | System and method for a multi-channel notification service |
US11627225B2 (en) | 2016-05-23 | 2023-04-11 | Twilio Inc. | System and method for programmatic device connectivity |
US10440192B2 (en) | 2016-05-23 | 2019-10-08 | Twilio Inc. | System and method for programmatic device connectivity |
US11076054B2 (en) | 2016-05-23 | 2021-07-27 | Twilio Inc. | System and method for programmatic device connectivity |
US10218697B2 (en) | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
US11038876B2 (en) | 2017-06-09 | 2021-06-15 | Lookout, Inc. | Managing access to services based on fingerprint matching |
US20220201048A1 (en) * | 2017-07-26 | 2022-06-23 | T-Mobile Usa, Inc. | Server-managed notifications for maintaining registered state |
US11297114B2 (en) * | 2017-07-26 | 2022-04-05 | T-Mobile Usa, Inc. | Server-managed notifications for maintaining registered state |
US11089123B2 (en) * | 2018-05-15 | 2021-08-10 | Microsoft Technology Licensing, Llc | Service worker push violation enforcement |
US11973835B2 (en) | 2019-01-28 | 2024-04-30 | Twilio Inc. | System and method for managing media and signaling in a communication platform |
US11605166B2 (en) | 2019-10-16 | 2023-03-14 | Parsons Corporation | GPU accelerated image segmentation |
US11303306B2 (en) | 2020-01-20 | 2022-04-12 | Parsons Corporation | Narrowband IQ extraction and storage |
US11619700B2 (en) | 2020-04-07 | 2023-04-04 | Parsons Corporation | Retrospective interferometry direction finding |
US11569848B2 (en) | 2020-04-17 | 2023-01-31 | Parsons Corporation | Software-defined radio linking systems |
US11575407B2 (en) | 2020-04-27 | 2023-02-07 | Parsons Corporation | Narrowband IQ signal obfuscation |
US11849347B2 (en) | 2021-01-05 | 2023-12-19 | Parsons Corporation | Time axis correlation of pulsed electromagnetic transmissions |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100138501A1 (en) | End-to-end validation in a push environment | |
KR101662352B1 (en) | System and method for managing multiple queues of non-persistent messages in a networked environment | |
US9578081B2 (en) | System and method for providing an actively invalidated client-side network resource cache | |
US9444931B2 (en) | Method, device, and system for connecting to a communication device | |
US8713365B2 (en) | Re-establishing push notification channels via user identifiers | |
US7890101B2 (en) | Call controlling apparatus, call controlling method, and computer program | |
US7689713B2 (en) | System operator independent server alerted synchronization system and methods | |
US20020114323A1 (en) | Method and apparatus for dynamically assigning a home agent | |
US20090300158A1 (en) | Method and system for supporting the communication of presence information among computing devices of a network | |
US20040015569A1 (en) | System and method for providing partial presence notifications | |
US20070202884A1 (en) | System, apparatus and method for transmitting event information from a remote terminal to subscribers over a network | |
CN103166921B (en) | A kind of method to Terminal for service, network side apparatus and terminal | |
US20110264777A1 (en) | Communications device and method | |
CN109510878B (en) | Long connection session keeping method and device | |
US20030220990A1 (en) | Reliable server pool | |
WO2004031972A1 (en) | Method and apparatus for maintaining sip contact addresses using event subscription | |
KR101264805B1 (en) | Method and System for providing presence service | |
EP1713218A1 (en) | Communications system and method | |
US9413670B2 (en) | SIP load balancing | |
CN108093395A (en) | The method, apparatus and system that a kind of registration of terminal is subscribed to | |
US8630236B2 (en) | System for registration of communication devices | |
US8892746B2 (en) | Asynchronous invocation mechanism in session initiation protocol (SIP) server clusters | |
US11197260B2 (en) | Method and devices of notifying a first user equipment, UE, of a subscriber in a telecommunication network on a dialog status of a second UE of said same subscriber | |
CN105376727A (en) | Data card processing method and device | |
US10104131B2 (en) | Managing session initiation protocol subscription dialog state loss |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION,WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CLINTON, NATHANIEL T.;SAPEK, ADAM;KLEIN, JOHANNES;AND OTHERS;SIGNING DATES FROM 20090203 TO 20090205;REEL/FRAME:022388/0258 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0509 Effective date: 20141014 |