System and method for mobile device push communications
First Claim
1. A method comprising:
- receiving, by a push service aggregator, a push request including both a message to be pushed to a mobile device and a delivery profile;
selecting by the push service aggregator from a plurality of available push services, at least one push service to push the message to the mobile device, the selecting being based on the delivery profile and on information about the mobile device to which the message is to be pushed; and
delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device, wherein the delivery profile includes at least one of an attribute specifying a maximum cost for pushing the message to the mobile device, an attribute specifying a priority level of the message, or an attribute specifying a lowest cost push service for use.
7 Assignments
0 Petitions
Accused Products
Abstract
Pushing data to mobile devices can be problematic because mobile platforms may support a number push services, each of which have different cost and reliability characteristics. The problem of being able to push data to multiple different types of mobile devices from a single server is solved by a push service aggregator supporting multiple push services. Upon receiving a push request, one or more push services are selected for pushing data to a client. The selection may be based on a delivery profile included with the push request, information about the client, past performance of the push services, current status of the push services, or combinations of these. The status of the push may be tracked and monitored so as to retry in the case of non-delivery.
319 Citations
50 Claims
-
1. A method comprising:
-
receiving, by a push service aggregator, a push request including both a message to be pushed to a mobile device and a delivery profile; selecting by the push service aggregator from a plurality of available push services, at least one push service to push the message to the mobile device, the selecting being based on the delivery profile and on information about the mobile device to which the message is to be pushed; and delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device, wherein the delivery profile includes at least one of an attribute specifying a maximum cost for pushing the message to the mobile device, an attribute specifying a priority level of the message, or an attribute specifying a lowest cost push service for use. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
receiving, by a push service aggregator, a push request including both a message to be pushed to a mobile device and a delivery profile; selecting by the push service aggregator from a plurality of available push services, at least one push service to push the message to the mobile device, the selecting being based on the delivery profile and on information about the mobile device to which the message is to be pushed; delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device; at the push service aggregator, receiving from the selected at least one push service an indication that the message delivered to the selected at least one push service is pending for an attempted push of the message; at the push service aggregator, determining that the selected at least one push service is unable to push the message delivered to the selected at least one push service to the mobile device within a specified time period; at the push service aggregator, selecting from among the plurality of available push services, a second push service, different from the selected at least one push service, to push the message to the mobile device; and delivering the message to the second push service for an attempted push of the message to the mobile device, wherein the step of determining that the at least one push service is unable to push the message to the mobile device within the specified time period comprises; during the specified time period, failing to receive from the at least one push service an indication that the push attempt of the delivered message failed.
-
-
12. A method comprising:
-
receiving, by a push service aggregator, a push request including both a message to be pushed to a mobile device and a delivery profile; selecting by the push service aggregator from a plurality of available push services, at least one push service to push the message to the mobile device, the selecting being based on the delivery profile and on information about the mobile device to which the message is to be pushed; and delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device, wherein the step of selecting by the push service aggregator further comprises; selecting the at least one push service also based on past performance of the at least one push service.
-
-
13. A method comprising:
-
receiving, by a push service aggregator, a push request including both a message to be pushed to a mobile device and a delivery profile; selecting by the push service aggregator from a plurality of available push services, at least one push service to push the message to the mobile device, the selecting being based on the delivery profile and on information about the mobile device to which the message is to be pushed; delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device; at the push service aggregator, receiving from the selected at least one push service an indication that the message delivered to the selected at least one push service is pending for an attempted push of the message; at the push service aggregator, determining that the selected at least one push service is unable to push the message delivered to the selected at least one push service to the mobile device within a specified time period; at the push service aggregator, selecting from among the plurality of available push services, a second push service, different from the selected at least one push service, to push the message to the mobile device; and delivering the message to the second push service for an attempted push of the message to the mobile device, wherein the step of determining that the selected at least one push service is unable to push the message delivered to the selected at least one push service to the mobile device comprises; failing to receive a successful push notification from the at least one selected push service during a time period.
-
-
14. A method comprising:
-
receiving, by a push service aggregator, a push request including a message to be pushed to a mobile device; analyzing by the push service aggregator past performance data for a plurality of available push services; selecting by the push service aggregator from among the plurality of available push services, at least one push service to push the message to the mobile device based on the past performance data analysis and on information about the mobile device; and delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method comprising:
-
receiving, by a push service aggregator, a push request including a message to be pushed to a mobile device; selecting by the push service aggregator from among a plurality of available push services, at least one push service to push the message to the mobile device based on information about the mobile device; and delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device, wherein, during the selecting step, the at least one push service is selected by the push service aggregator based on additional information obtained by the push service aggregator concerning an analysis of past performance data of the selected at least one push service. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A method comprising:
-
receiving, by a push service aggregator, a push request including a message to be pushed to a mobile device; selecting by the push service aggregator from among a plurality of available push services, at least one push service to push the message to the mobile device based on information about the mobile device; delivering by the push service aggregator the message to the selected at least one push service for an attempt at pushing the message to the mobile device; and determining that the selected at least one push service is unable to push the message delivered to the selected at least one push service to the mobile device by failing to receive a successful push notification from the at least one selected push service during a time period.
-
-
29. A method comprising:
-
receiving by a push service a push request from a server, the push request including a message, prioritization criteria and information about a mobile device to receive the message; in response to the server push request, the push service responding to the server with a unique push identifier for the received push request; choosing by the push service an initial mechanism for delivery of the message to the mobile device, the push service using the prioritization criteria and information about the mobile device to choose the initial mechanism; delivering the message to the initial mechanism for an attempt by the initial mechanism at pushing the message to the mobile device; receiving by the push service a current status indication for the pushing of the delivered message to the mobile device by the initial mechanism; in response to the receipt by the push service of the current status indication from the initial mechanism, scheduling a job to be performed by the push service at some time in the future to determine the initial mechanism delivery status for the message to be pushed to the mobile device; if before or during execution of the job by the push service, the push service determines that the initial mechanism has not pushed the message to the mobile device, then choosing by the push service a second mechanism for delivery of the message to the mobile device, the push service using the prioritization criteria and information about the mobile device to choose the second mechanism; delivering the message to the second mechanism for an attempt by the second mechanism at pushing the message to the mobile device; and
,in response to the message delivering, receiving by the push service a current status indication for the pushing of the delivered message to the mobile device by the second mechanism. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
-
37. A method comprising:
-
receiving by a push service a push request from a server, the push request including a message, prioritization criteria and information about a mobile device to receive the message;
in response to the server push request, the push service responding to the server with a unique push identifier for the received push request;choosing by the push service a plurality of delivery mechanisms for delivery of the message to the mobile device, the push service using the prioritization criteria and information about the mobile device to choose the plurality of delivery mechanisms; delivering the message to the chosen plurality of delivery mechanisms for attempts by the chosen plurality of delivery mechanisms at pushing the message to the mobile device; in response to the message delivering, receiving by the push service a current status indication for the pushing of the delivered message to the mobile device by the chosen plurality of delivery mechanisms; in response to the receipt by the push service of the current status indication from the chosen plurality of delivery mechanisms, scheduling a job to be performed by the push service at some time in the future to determine the chosen plurality of delivery mechanisms delivery status for the message to be pushed to the mobile device; and
,if before or during execution of the job by the push service, the push service determines that at least one of the chosen plurality of delivery mechanisms has pushed the message to the mobile device, then aborting by the push service of any pushing of the message by the remaining chosen delivery mechanisms. - View Dependent Claims (38, 39, 40, 41, 42, 43)
-
-
44. A method comprising:
-
receiving, by a push service aggregator, a new push request including both a message to be pushed to a mobile device and prioritization criteria; determining by the push service aggregator whether the new received push request matches any pending push requests having the same requester, the same mobile device and whether the prioritization criteria of the new received push request is met by the prioritization criteria of the pending push request; selecting by the push service aggregator to combine the new received push request with the matching pending push request; and delivering by the push service aggregator the message from the new received push request to be combined with the message from the matching pending push request to a delivery mechanism for an attempt at pushing the messages to the mobile device.
-
-
45. A method comprising:
-
receiving from a server by a push service a message send request asking for the message to be delivered to a mobile device; in response to the received message send request, sending by the push service to the server a response indicating an identifier for the push request; at the push service, transmitting the message to a delivery mechanism for pushing to the mobile device; if the delivery mechanism returns status to push service with a failure notification, updating by the push service a message state to failed and at the push service performing an callback to inform the server of the failed message state; and
,if the delivery mechanism does not respond to the push service with status, then by the push service, polling the delivery mechanism for status, and if there is an update in the message state, the push service performing a callback to inform the server of the updated message state. - View Dependent Claims (46)
-
-
47. A method comprising:
-
receiving from a server by a push service a message send request specifying a reliable least-cost delivery profile asking for the message to be delivered to a mobile device that supports a plurality of delivery mechanisms; in response to the received message send request, sending by the push service to the server a response indicating an identifier for the push request; at the push service, choosing a first delivery mechanism based upon the message send request reliable least-cost profile for pushing the message to a mobile device; at the push service, transmitting the message to the chosen first delivery mechanism for pushing the message to the mobile device; if the chosen first delivery mechanism responds to the push service that the requested message delivery has failed, then at the push service, choosing a second delivery mechanism based upon the message send request reliable least cost delivery profile for delivering the message to the mobile device; and at the push service, transmitting the message to the chosen second delivery mechanism for pushing the message to the mobile device. - View Dependent Claims (48, 49, 50)
-
Specification