[go: up one dir, main page]

US20120113854A1 - Adaptive Data Delivery - Google Patents

Adaptive Data Delivery Download PDF

Info

Publication number
US20120113854A1
US20120113854A1 US13/350,292 US201213350292A US2012113854A1 US 20120113854 A1 US20120113854 A1 US 20120113854A1 US 201213350292 A US201213350292 A US 201213350292A US 2012113854 A1 US2012113854 A1 US 2012113854A1
Authority
US
United States
Prior art keywords
mobile device
wireless mobile
router system
host service
wireless
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
Application number
US13/350,292
Inventor
Allan David Lewis
Gary Phillip Mousseau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Malikie Innovations Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Priority to US13/350,292 priority Critical patent/US20120113854A1/en
Publication of US20120113854A1 publication Critical patent/US20120113854A1/en
Assigned to RESEARCH IN MOTION LIMITED reassignment RESEARCH IN MOTION LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MOUSSEAU, GARY P., LEWIS, ALLAN DAVID
Assigned to MALIKIE INNOVATIONS LIMITED reassignment MALIKIE INNOVATIONS LIMITED ASSIGNMENT OF ASSIGNOR'S INTEREST Assignors: BLACKBERRY LIMITED
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Definitions

  • the present invention generally relates to a wireless communication system, and more specifically to a system and a method for adaptively delivering data to a wireless mobile device based upon the availability of the wireless mobile communication device in the wireless communication system.
  • a host service which provides services such as e-mail, calendar, and Internet web browsing, holds the data to be delivered to the mobile device.
  • the host service is coupled to a router, which couples the host service and a wireless network that is designed to communicate with the mobile device. To make a timely delivery of the data, the host service forwards the data for the mobile device to the router when the data becomes available. The router then forwards the data to the wireless network, which transmits the data to the mobile device.
  • the router queues the data and re-forwards the data to the wireless network, which re-transmits the data to the mobile device. This process continues until the. mobile device receives the data and acknowledges the reception or the process times out after a predetermined time period. While the data is being transmitted and queued, another data may become available for the mobile device in the host service, and may be forwarded to the router. The other data is then forwarded to the wireless network and is transmitted to the mobile device, but fails to be received by the mobile device.
  • the host service continues to transmit more data, as they become available, to the router without the knowledge of the mobile device thereby wasting the host service resources, undeliverable data continues to accumulate in the router wasting the router resources, and the capacity in the wireless network is wasted by repeatedly transmitting the data without having any indication that the delivery of the data will be successful.
  • FIG. 1 is an exemplary environment in which a wireless communication system in accordance with at least one of the preferred embodiments may be practiced;
  • FIG. 2 is an exemplary state diagram of a host service in accordance with at least one of the preferred embodiments
  • FIG. 3 is an exemplary sequence diagram illustrating a sequence of adaptive delivery of data from a host service to a wireless mobile communication device in a wireless communication system in accordance with at least one of the preferred embodiments;
  • FIG. 4 is an exemplary flowchart illustrating a process of adaptive delivery of data to a wireless mobile communication device in a wireless communication system in accordance with at least one of the preferred embodiments;
  • FIG. 5 is an exemplary flowchart further illustrating the process for setting the availability status at the host service based upon the cached availability status at the wireless router system in accordance with at least one of the preferred embodiments;
  • FIG. 6 is an exemplary flowchart further illustrating the process for determining whether to re-transmit the data from the wireless router system to the mobile device in accordance with at least one of the preferred embodiments.
  • FIG. 7 is an exemplary block diagram of a wireless communication system configured to adaptively deliver data to a wireless mobile communication device in the wireless communication system in accordance with at least one of the preferred embodiments.
  • a wireless communication system comprising a host service, a wireless router system coupled to the host service, a wireless network coupling the wireless router system and a wireless mobile communication device (“mobile device”), adaptively delivers data to the mobile device in the wireless communication system.
  • the host service When the host service has data to be delivered to the mobile device, it first determines the availability status of the mobile device at the host service. The availability status may be based upon its previous data delivery to the mobile device, a cached availability status at the wireless router system, which may check whether the mobile device is registered in the wireless network.
  • the wireless network may be, but not limited to, a cellular telephone network, a two-way paging network, a short range wireless network such as BluetoothTM and IEEE 802.11 compliant network, and others alike, through which the mobile device is accessible by the wireless router system. If the mobile device is determined to be available, then the host service transmits the data to the wireless router system, which delivers the data through the wireless network to the mobile device. However, if the mobile device is determined to be unavailable, then the host service queues the data but does not send the data until the mobile device is re-determined to be available, thereby avoiding unnecessary transmission of the data directed to the mobile device.
  • a short range wireless network such as BluetoothTM and IEEE 802.11 compliant network
  • FIG. 1 is an exemplary wireless communication system 100 in which a wireless communication system in accordance with at least one of the preferred embodiments may be practiced.
  • the exemplary wireless communication system 100 includes a plurality of host services (three shown, 102 , 104 , and 106 ), each of which may have a plurality of services such as, but not limited to, e-mail, calendar, Internet web browser, and other applications, available to their subscribers.
  • the host services 102 , 104 , and 106 are connected to a communication network 108 such as Internet, which connects to a wireless router system 110 allowing communication between the host services 102 , 104 , and 106 and the wireless router 110 .
  • the wireless router system 110 may also be connected to a host service, such as a local service 112 , without the communication network 108 .
  • the wireless router system 110 is connected to a plurality of wireless networks (three shown, 114 , 116 , and 118 ), each of which may support a plurality of mobile devices (one in each wireless network is shown, 120 , 122 , and 124 ).
  • the wireless networks 114 , 116 , and 118 may be a cellular telephone network, a two-way paging network, a short range wireless network such as BluetoothTM and IEEE 802.11 compliant network, and others alike, and the mobile devices 120 , 122 , and 124 are device compatible with the corresponding wireless network.
  • FIG. 2 is an exemplary state diagram 200 of a host service in accordance with at least one of the preferred embodiments.
  • the states of the host service 102 attempting to deliver data to the mobile device 120 are illustrated.
  • the host service 102 checks whether the state of the availability status of the mobile device 120 is known upon generating the data to be delivered to the mobile device 120 .
  • the data may be generated internally by the host service 102 or may be generated in response to the host service 102 receiving corresponding data from another source.
  • the data may be a message from the host service 102 regarding a service that the host service provides to the mobile device 120 such as Internet web browsing, music downloads, news service, or any other host service specific services originating from the host service 102 , or the data may be an e-mail message, sent from an external source and received by the host service 102 , to be delivered to the mobile device 120 .
  • the availability status of the mobile device 120 may be, or become, unknown, for example, when the host service 120 initially generates the data having no prior knowledge of the availability of the mobile device 120 , a previously stored availability status becomes stale or too old, or the host service encounters a reset condition such as losing connection to the wireless router system 110 .
  • the host service 102 requests, and receives from, the wireless router system 110 the current status of the mobile device 120 in the wireless router system 110 in state 204 , and the availability status of in the mobile device 120 becomes known in state 206 .
  • the host service 102 may also receive an updated availability status whenever the availability status at the wireless router system 110 changes. If the host service 102 has data for the mobile device 120 and the availability status of in the mobile device 120 is known, in state 206 , the host service 102 determines whether mobile device 120 is available based upon the known availability status. In state 208 where the known availability status of the mobile device 120 equals available, the host service forwards the data to the wireless router system 110 . If the known availability status of the mobile device 120 equals unavailable available in state 210 , the host service 102 queues the data and returns to state 202 .
  • FIG. 3 is an exemplary sequence diagram 300 illustrating a sequence of adaptive delivery of data from the host service 102 to the mobile device 120 in the wireless communication system 100 in accordance with at least one of the preferred embodiments.
  • the host service 102 When the host service 102 generates data for the mobile device 120 having no known state of the availability status of the mobile device 120 , the host service 102 requests the availability status of the mobile device 120 at the wireless router system 110 from the wireless router system 110 . In this example, the wireless router system returns the ‘unavailable’ status to the host service 102 , and the data is queued in the host service 102 .
  • the host service 102 now has a known availability status of the mobile device 120 , which is ‘unavailable.’
  • the wireless router system 110 receives a ‘keep-alive’ signal from the mobile device 120 , indicating that the mobile device 120 is now available to receive data in the wireless communication system 100 through the wireless network 114 , and has an effect of the mobile device 120 establishing a virtual connection with the wireless router system 110 .
  • the wireless router system now sends the ‘available’ status to the host service 102 , and the host service 102 forwards the data to the wireless router system 110 .
  • the host service 102 now has a known availability status of the mobile device 120 , which is ‘available.”
  • the wireless router system now transmits the data to the mobile device 120 through the wireless network 114 .
  • the availability status of the mobile device 120 is already know as ‘available’ and the host service 102 forwards the subsequent set of data to the wireless router system 114 .
  • the mobile device 120 is designed to transmit the ‘keep-alive’ signal at a predetermined time period such as every 15 minutes as shown in FIG. 3 , and the wireless router system 110 keeps the current availability status of ‘available’ as long as the wireless router system 110 receives the keep-alive signal at the predetermined time period interval.
  • FIG. 3 shows the wireless router system 110 receiving two consecutive keep-alive signals at the predetermined time period interval after transmitting the subsequent set of data.
  • the wireless router system 110 Because the wireless router system 110 has received the keep-alive signals at the predetermined time period interval, the availability status of the mobile device 120 is unchanged as available, and the wireless router system does not transmit an updated availability status to the host service 102 . However, as shown in FIG. 3 , the wireless router system 110 fails to receive the keep-alive signal from the mobile device 120 during the third expected interval. The availability status of the mobile device 120 is now changed to ‘unavailable’ and the wireless router system 110 transmits the updated availability status of ‘unavailable’ to the host service 102 . The host service 102 then updates the availability status to ‘unavailable’ such that if any subsequent data for the mobile device 120 is generated while the availability status is ‘unavailable,’ the host service 102 queues such data.
  • the wireless router system 110 again receives the keep-alive signal from the mobile device 120 , and updates the availability status to ‘available.’ Because there has been a change in the availability status, the wireless router system transmits the updated availability status of ‘available’ the host service 102 .
  • FIG. 4 is an exemplary flowchart 400 illustrating a process of adaptive delivery of data to a mobile device in the wireless communication system 100 in accordance with at least one of the preferred embodiments.
  • the data to be delivered resides in the host service 102 , and the data is to be delivered to the mobile device 120 .
  • a host service may be connected to the wireless router system 110 with or without the communication network 108 such as Internet.
  • the process begins in block 402 and data to be delivered to the mobile device 120 is generated in the host service 102 in block 404 .
  • the data may be generated internally by the host service 102 or may be generated in response to the host service receiving corresponding data from another source.
  • the data may be a message from the host service 102 regarding a service that the host service 102 provides to the mobile device 120 such as Internet web browsing, music downloads, news service, or any other host service specific services originating from the host service 102 , or the data may be an e-mail message, which is sent from an external source and received by the host service 102 , to be delivered to the mobile device 120 .
  • the host service 102 has no knowledge of the availability of the mobile device 120 in the wireless communication system 100 .
  • whether the availability status of the mobile device 120 is known at the host service 102 is determined in block 406 .
  • Whether the availability status of the mobile device 120 is known at the host service 120 in block 406 may be based upon a stored availability status at the host service 102 .
  • the availability status of the mobile device 120 may be deemed to be unknown if there is no stored availability status of the mobile device 120 such as when the process is first initiated and there is no prior stored availability status of the mobile device 120 at the host service 102 . Even if the stored availability status of the mobile device 120 is known, it may be deemed to be unknown if the stored availability status becomes stale or too old.
  • the stored availability status may also become unknown if a connection between the host service 102 and the wireless router system 110 is lost.
  • the process advances to block 408 .
  • the availability status of the mobile device 120 is determined to be unknown in block 406 .
  • the availability status of the mobile device 120 at the host service 102 is set equal to a cashed availability status of the mobile device 120 at the wireless router system 110 in block 410 .
  • the availability status of the mobile device 120 at the host service 102 now becomes known, and the process advances to block 408 .
  • the value of the known availability status of the mobile device 120 i.e., available or unavailable, at the host service 102 is determined.
  • the mobile device 120 may be determined to be unavailable because the mobile device 120 is outside of a coverage area provided by the wireless network 114 or is turned off, or the wireless network 114 is unavailable or unable to transmit the message to the mobile device 120 .
  • the data becomes pending and is queued in the host service 102 in block 412 , and the process loops back to block 406 .
  • the pending data is only queued in the host service 102 only if the pending data to be queued is new, and is not re-queued if the pending data has been already queued in a previous iteration. Queuing of the pending data at the host service 102 is helpful in preserving resources in the case of recovery from a system related failure such as a lost connection to the wireless router 110 .
  • the known availability status is determined to equal available in block 408 , then the data is transmitted from the host service 102 to the wireless router system 110 in block 414 .
  • the data is then transmitted from the wireless router system 110 to the mobile device 120 through the wireless network 114 in block 416 .
  • whether the data transmission to the mobile device 120 has been successful is determined.
  • the successful data transmission from the wireless router system 110 to the mobile device 120 may be determined based upon a confirmation signal transmitted from the mobile device 120 in response to successfully receiving the data. For example, there may be a predetermined time period within which the confirmation signal from the mobile device 120 is expected after the data is transmitted from the wireless router system 110 .
  • the availability status of the mobile device 120 at the wireless router system 110 may be re-determining upon the confirmation signal, and the cached availability status at the wireless router system 110 may then be updated with the re-determined availability status.
  • the process loops back to block 404 , and waits for next data. However, if the data transmission is determined to be unsuccessful in block 418 , then whether the data should be re-transmitted to the mobile device 120 is determined in block 420 . If the data is determined to be re-transmitted, then the process loops back to block 416 where the data is re-transmitted to the mobile device 120 . If the data is determined not to be re-transmitted in block 420 , then the process advances to block 412 where the data is queued at the host service 102 , and the process from block 406 is repeated.
  • the cached availability status of the mobile device 120 at the wireless router system 110 is updated to “available”.
  • the updated cached availability status of “available” is transmitted to the host service 102 from the wireless router system 110 , making the available status at the host service 102 in block 408 equal to available.
  • the pending data which was previously queued, becomes ready to be delivered to the mobile device 120 , and is un-queued. Then the process for determining successful transmission of data to the mobile device 120 from the host service 102 , previously described in blocks 414 , 416 , 418 and 420 , is followed.
  • FIG. 5 is an exemplary flowchart further illustrating the process of block 410 for setting the availability status at the host service 102 based upon the cached availability status at the wireless router system 110 in accordance with at least one of the preferred embodiments.
  • the cached availability status of the mobile device 120 at the wireless router system 110 may be based upon an indication signal transmitted from the mobile device 120 .
  • the indication signal sometimes referred as a “heart beat” or a “keep-alive” signal, may be periodically transmitted by the mobile device 120 , and if it is received by the wireless router system 110 , it generally indicates that the mobile device 120 is available, or in a coverage area of the wireless network 114 , and has an effect of the mobile device 120 establishing a virtual connection with the wireless router system 110 .
  • the indication signal may also indicate unavailability of the mobile device 120 in the wireless communication system 100 .
  • the mobile device 120 may have a very limited memory space left and is unable to receive further data, or due to its low battery status, its wireless communication ability may begin to shut down to conserve the battery power.
  • the indication signal may include a plurality of functionality states of the wireless device 120 such as, but not limited to, the available memory space, battery status, and received signal strength indicator (“RSSI”).
  • RSSI received signal strength indicator
  • the indication signal from the mobile device 120 is used to illustrate that the mobile device 120 is available in the wireless communication system 100 .
  • block 502 whether the indication signal from the mobile device 120 is received at the wireless router system 110 is determined. If it is determined that the indication signal has been received, then the cached availability status of the mobile device 120 at the wireless router system 110 is set to be “available” in block 504 . If the cached availability status had previously been set to “unavailable” then it is re-set to be “available” in block 504 . The process then advances to block 506 . If the indication signal is determined not to have been received, then whether the indication signal periodic interval has elapsed is determined in block 508 . If the indication signal periodic interval is determined not to have elapsed, then the process loops back to block 502 .
  • the cached availability status of the mobile device 120 is kept equal to available. However, if the indication signal periodic interval is determined to have elapsed in block 508 , then the cached availability status of the mobile device 120 at the wireless router system 120 is set to be “unavailable” in block 510 . If the cached availability status had previously been set to “available” then it is re-set to be “unavailable” in block 510 . The process then advances to block 506 . In block 506 , the cached availability status of the mobile device 120 , either available or unavailable, at the wireless router system 110 is provided to the host service 102 , setting the availability status to be known at the host service 102 .
  • FIG. 6 is an exemplary flowchart further illustrating the process of block 420 for determining whether to re-transmit the data from the wireless router system 110 to the mobile device 120 as a result of the data transmission being determined to be unsuccessful in block 418 in accordance with at least one of the preferred embodiments.
  • whether predetermined re-try logic has been exhausted is determined.
  • the predetermined re-try logic may include, and may be any combination of, a maximum number of re-transmissions, a maximum overall time of re-transmissions, and a maximum back-off time.
  • the process loops back to block 416 where the data is re-transmitted from the wireless router system 110 to the mobile device 120 .
  • the mobile device 120 is deemed to be unavailable and the cached availability status at the wireless router system 110 is updated to “unavailable” in block 604 .
  • the updated cached availability status is communicated from the wireless router system 110 to the host service 102 in block 606 , and the availability status of the mobile device 120 at the host service 102 is updated to “unavailable.”
  • the process then advances to block 412 where the data is queued in the host service 102 .
  • the availability status of the mobile device 120 may be evaluated at the wireless router system 110 when the data is transmitted from the host service 102 to the wireless router service 110 based upon the current cached availability status at the wireless router system 110 .
  • the decision whether to further transmit the data from the wireless router system 110 to the mobile device 120 then may be made based upon the evaluated cached availability status of the mobile device 120 . If the evaluated cached availability status is “available”, then the data is transmitted from the wireless router system 110 to the mobile device 120 in block 416 , and the process previously described is followed. However, if the evaluated cached availability status is “unavailable”, then the availability status of the mobile device 120 at the host service 102 is updated to “unavailable”, and the data is queued at the host service 102 in block 412 .
  • FIG. 7 is an exemplary block diagram of a wireless communication system 700 configured to adaptively deliver data to a wireless mobile communication device (“mobile device”) in the wireless communication system 700 in accordance with at least one of the preferred embodiments.
  • the wireless communication system 700 may include a plurality of host services, wireless networks, and wireless devices as previously shown in FIG. 1 , the wireless communication system 700 in FIG. 7 is shown with a reduced number of elements for simplicity.
  • the wireless communication system 700 includes a mobile device 702 , and a host service 704 , which includes a data generator 706 configured to generate data to be delivered to the mobile device 702 .
  • the data generator 706 may generate the data to be delivered to the mobile device 702 in response to receiving corresponding data.
  • the host service 704 also includes a status evaluator 708 configured to determine whether an availability status of the wireless device 702 in the wireless communication system 700 is known.
  • the host service 704 is coupled to a wireless router system 710 , and has a host transmitter 712 that transmits the data to the wireless router system 710 if the known availability status of the mobile device 702 equals available.
  • the host service 704 also has a host memory 714 , and queues the data in the host memory 714 if the known availability status equals unavailable.
  • the host service 704 only queues the data in the host memory 714 only if the data to be queued is new and does not re-queue the data that has already been queued in a previous iteration.
  • the host service 704 may be coupled to the wireless router system 710 through a communication network 716 , which may be a wide area network such as Internet, and is configured to allow communication between the host service 704 and the wireless router system 710 .
  • the wireless router system 710 includes a cache memory 718 configured to cache the availability status of the mobile device 702 in the wireless communication system 700 .
  • the wireless router system 710 also includes a router receiver 720 configured to receive the data from the host service 704 , and a router transmitter 722 configured to transmit the data to a wireless communication network 724 .
  • the wireless communication network 724 is coupled to both the wireless router system 710 and the mobile device 702 , and is configured to receive the data from the wireless router system 710 and to transmit the data to the mobile device 702 .
  • the wireless communication network 724 may be a cellular telephone network, a two-way paging network, a short range wireless network such as BluetoothTM and IEEE 802.11 compliant network, and others alike, which is compatible with the mobile device 702 .
  • the status evaluator 708 determines that the availability status of the mobile device 702 in the wireless communication system 700 is not known, then the status evaluator 708 sets the cached availability status stored in the cache memory 718 as the known availability status. If the known availability status equals available, the host transmitter 712 transmits the data to the wireless router system 710 . If the known availability status equals unavailable, the host service 704 queues the data in the host memory 714 . The data generator 706 may treat the queued data in the host memory 714 as generated data.
  • the status evaluator 708 may also determine the availability status of the mobile device 702 based upon a stored availability status at the host service 704 , for example in the host memory 714 .
  • the status evaluator 708 may determine that the availability status at the host service 704 is unknown if there is no stored availability status, or if a predetermined time period has passed since the availability status has been stored, meaning the stored availability status is too old.
  • the status evaluator 708 may also determine that the availability status at the host service 704 is unknown if a connection between the host service 704 and the wireless router system 710 is lost.
  • the cached availability status of the wireless device 702 may be based upon an indication signal from the wireless device 702 .
  • the indication signal may sometimes be referred as a “heart beat” or a “keep-alive” signal. If the wireless router system 710 receives the indication signal, for example by the router receiver 720 , it indicates that the wireless device 702 is available, or in a coverage area of the wireless network 724 .
  • the indication signal may include various states of the wireless device 702 in addition to an indication being available to receive the data from the host service 704 such as, but not limited to, current location based on a Global Positioning System (“GPS”) data, battery status, memory status, transmit power level, receive signal strength indicator (“RSSI”) value, and other parameters.
  • GPS Global Positioning System
  • RSSI receive signal strength indicator
  • the wireless router system 710 If the wireless router system 710 receives the indication signal from the mobile device 702 , the wireless router system 710 makes the cached availability status of the wireless device 702 equal to available in the cache memory 718 . If the wireless router system 701 fails to receive the indication signal from the wireless device 702 , the wireless router system 710 makes the cached availability status of the wireless device 702 equal to unavailable in the cache memory 718 .
  • the wireless device 702 may transmit the indication signal periodically, and the wireless router system 710 may keep the cached availability status in the cache memory 718 equal to available if the wireless router system 710 receives the indication signal from the mobile device 702 periodically at a predetermined interval. Conversely, if the wireless router system 710 fails to receive the indication signal from the mobile device 702 periodically at a predetermined interval, the wireless router system may change the cached availability status to unavailable, and transmit the changed cached availability status to the host service 704 , for example, by the router transmitter 722 , causing the status evaluator 708 to update the known availability status to unavailable.
  • the cached availability status may be changed back to available when wireless router system 710 once again receives the indication signal from the mobile device 702 , and may transmit the changed cached availability status, now back to available, to the host service 704 . If there is queued data at the host service 704 at this time, then the host transmitter 712 transmits the queued data to the wireless router system 710 .
  • the wireless router system 710 may determine whether the data transmission to the wireless device 702 has been successful based upon a confirmation signal transmitted from the wireless device 702 in response to successfully receiving the data. The wireless router system 710 may then re-determine the availability status of the wireless device 702 based upon the confirmation signal, and update the cached availability status in the cache memory 718 with the re-determined availability status. The wireless router system 710 may be configured to receive the confirmation signal within a predetermined time period after transmission of the data to the mobile device 702 , and to re-transmit the data to the mobile device 702 until predetermined re-try logic is exhausted if the wireless router system 710 fails to receive the confirmation signal within the predetermined time period.
  • the predetermined re-try logic may one or any combination of a maximum number of re-transmissions, a maximum overall time of re-transmissions, and a maximum back-off time.
  • a progressive back-off method for re-transmitting data to a destination device. If the wireless router system 710 fails to receive the confirmation signal after the predetermined re-try logic is exhausted, then the wireless router system 710 updates the cached availability status in the cache memory 718 of the mobile device 702 to unavailable. The wireless router system 710 then transmits the updated cached availability status to the host service 704 , which updates the availability status of the mobile device 702 to unavailable and to queue the data in the host memory 714 .
  • the cached availability status of the mobile device 702 at the wireless router system 710 is updated to “available”.
  • the updated cached availability status of “available” is transmitted to the host service 704 from the wireless router system 710 , making the status evaluator 708 to set the availability status at the host service 702 to equal available.
  • the wireless router system 710 determines whether the transmission of queued data to the mobile device 702 has been successful as previously described. If the wireless router system 710 determines that the transmission of the queued data to the mobile device 702 has been successful, then the host service 704 purges the previously queued data, which has now been successfully delivered to the mobile device 702 , from the host memory 714 .
  • the wireless router system 710 determines that the mobile device 702 is available and when the router receiver 720 receives the data from the host service 704 , it is possible for the mobile device 702 to have changed the availability status during that time.
  • the wireless router system 710 be configured to evaluate the cached availability status of the mobile device 702 after receiving the data from the host service 704 but before transmitting the data to the mobile network 724 . If the evaluated cached availability status is equal to available, then the router transmitter transmits the data to the mobile device 702 through the wireless communication network 724 .
  • the determination of a successful reception of the data by the mobile device 702 , re-transmission of the data, updating of the cached availability status and availability status at the host service 704 , and queuing of the data may be performed as previously described.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Techniques for use in delivering data from a host service to a mobile device operative in a wireless network are disclosed. The host service is configured to maintain in a host memory an availability status indicative of the availability of the mobile device in the wireless network. A router receives an indication signal from the mobile device within a predetermined interval. The indication signal indicates one or more functional states or parameter levels of the mobile device. When the one or more functional states or parameter levels of the indication signal are indicative of availability, and a cached availability status in cache memory of the router equals to unavailable, the router changes the cached availability status from unavailable to available and transmits the changed availability status from the router to the host service for setting the availability status at the host service.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • The present application is a continuation of and claims priority to U.S. non-provisional patent application having application Ser. No. 11/236,363 and filing date of 27 Sep. 2005, now U.S. Pat. No. ______, which is hereby incorporated by reference herein.
  • FIELD OF THE INVENTION
  • The present invention generally relates to a wireless communication system, and more specifically to a system and a method for adaptively delivering data to a wireless mobile device based upon the availability of the wireless mobile communication device in the wireless communication system.
  • BACKGROUND OF THE INVENTION
  • In a wireless communication system designed to deliver data to a wireless mobile communication device (“mobile device”) such as a cellular telephone, a two-way pager, a wireless communication capable personal digital assistant (“PDA”), and other similar device, there are several main components in the wireless communication system. A host service, which provides services such as e-mail, calendar, and Internet web browsing, holds the data to be delivered to the mobile device. The host service is coupled to a router, which couples the host service and a wireless network that is designed to communicate with the mobile device. To make a timely delivery of the data, the host service forwards the data for the mobile device to the router when the data becomes available. The router then forwards the data to the wireless network, which transmits the data to the mobile device. If the mobile device fails to receive the data, the router queues the data and re-forwards the data to the wireless network, which re-transmits the data to the mobile device. This process continues until the. mobile device receives the data and acknowledges the reception or the process times out after a predetermined time period. While the data is being transmitted and queued, another data may become available for the mobile device in the host service, and may be forwarded to the router. The other data is then forwarded to the wireless network and is transmitted to the mobile device, but fails to be received by the mobile device. The host service continues to transmit more data, as they become available, to the router without the knowledge of the mobile device thereby wasting the host service resources, undeliverable data continues to accumulate in the router wasting the router resources, and the capacity in the wireless network is wasted by repeatedly transmitting the data without having any indication that the delivery of the data will be successful.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is an exemplary environment in which a wireless communication system in accordance with at least one of the preferred embodiments may be practiced;
  • FIG. 2 is an exemplary state diagram of a host service in accordance with at least one of the preferred embodiments;
  • FIG. 3 is an exemplary sequence diagram illustrating a sequence of adaptive delivery of data from a host service to a wireless mobile communication device in a wireless communication system in accordance with at least one of the preferred embodiments;
  • FIG. 4 is an exemplary flowchart illustrating a process of adaptive delivery of data to a wireless mobile communication device in a wireless communication system in accordance with at least one of the preferred embodiments;
  • FIG. 5 is an exemplary flowchart further illustrating the process for setting the availability status at the host service based upon the cached availability status at the wireless router system in accordance with at least one of the preferred embodiments;
  • FIG. 6 is an exemplary flowchart further illustrating the process for determining whether to re-transmit the data from the wireless router system to the mobile device in accordance with at least one of the preferred embodiments; and
  • FIG. 7 is an exemplary block diagram of a wireless communication system configured to adaptively deliver data to a wireless mobile communication device in the wireless communication system in accordance with at least one of the preferred embodiments.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • A wireless communication system, comprising a host service, a wireless router system coupled to the host service, a wireless network coupling the wireless router system and a wireless mobile communication device (“mobile device”), adaptively delivers data to the mobile device in the wireless communication system. When the host service has data to be delivered to the mobile device, it first determines the availability status of the mobile device at the host service. The availability status may be based upon its previous data delivery to the mobile device, a cached availability status at the wireless router system, which may check whether the mobile device is registered in the wireless network. The wireless network may be, but not limited to, a cellular telephone network, a two-way paging network, a short range wireless network such as Bluetooth™ and IEEE 802.11 compliant network, and others alike, through which the mobile device is accessible by the wireless router system. If the mobile device is determined to be available, then the host service transmits the data to the wireless router system, which delivers the data through the wireless network to the mobile device. However, if the mobile device is determined to be unavailable, then the host service queues the data but does not send the data until the mobile device is re-determined to be available, thereby avoiding unnecessary transmission of the data directed to the mobile device.
  • FIG. 1 is an exemplary wireless communication system 100 in which a wireless communication system in accordance with at least one of the preferred embodiments may be practiced. The exemplary wireless communication system 100 includes a plurality of host services (three shown, 102, 104, and 106), each of which may have a plurality of services such as, but not limited to, e-mail, calendar, Internet web browser, and other applications, available to their subscribers. The host services 102, 104, and 106 are connected to a communication network 108 such as Internet, which connects to a wireless router system 110 allowing communication between the host services 102, 104, and 106 and the wireless router 110. The wireless router system 110 may also be connected to a host service, such as a local service 112, without the communication network 108. The wireless router system 110 is connected to a plurality of wireless networks (three shown, 114, 116, and 118), each of which may support a plurality of mobile devices (one in each wireless network is shown, 120, 122, and 124). The wireless networks 114, 116, and 118 may be a cellular telephone network, a two-way paging network, a short range wireless network such as Bluetooth™ and IEEE 802.11 compliant network, and others alike, and the mobile devices 120, 122, and 124 are device compatible with the corresponding wireless network.
  • FIG. 2 is an exemplary state diagram 200 of a host service in accordance with at least one of the preferred embodiments. In this example, the states of the host service 102 attempting to deliver data to the mobile device 120 are illustrated. In state 202, the host service 102 checks whether the state of the availability status of the mobile device 120 is known upon generating the data to be delivered to the mobile device 120. The data may be generated internally by the host service 102 or may be generated in response to the host service 102 receiving corresponding data from another source. For example, the data may be a message from the host service 102 regarding a service that the host service provides to the mobile device 120 such as Internet web browsing, music downloads, news service, or any other host service specific services originating from the host service 102, or the data may be an e-mail message, sent from an external source and received by the host service 102, to be delivered to the mobile device 120. The availability status of the mobile device 120 may be, or become, unknown, for example, when the host service 120 initially generates the data having no prior knowledge of the availability of the mobile device 120, a previously stored availability status becomes stale or too old, or the host service encounters a reset condition such as losing connection to the wireless router system 110. If the host service 102 has data for the mobile device 120 and the availability status of in the mobile device 120 is unknown, the host service 102 requests, and receives from, the wireless router system 110 the current status of the mobile device 120 in the wireless router system 110 in state 204, and the availability status of in the mobile device 120 becomes known in state 206. The host service 102 may also receive an updated availability status whenever the availability status at the wireless router system 110 changes. If the host service 102 has data for the mobile device 120 and the availability status of in the mobile device 120 is known, in state 206, the host service 102 determines whether mobile device 120 is available based upon the known availability status. In state 208 where the known availability status of the mobile device 120 equals available, the host service forwards the data to the wireless router system 110. If the known availability status of the mobile device 120 equals unavailable available in state 210, the host service 102 queues the data and returns to state 202.
  • FIG. 3 is an exemplary sequence diagram 300 illustrating a sequence of adaptive delivery of data from the host service 102 to the mobile device 120 in the wireless communication system 100 in accordance with at least one of the preferred embodiments. When the host service 102 generates data for the mobile device 120 having no known state of the availability status of the mobile device 120, the host service 102 requests the availability status of the mobile device 120 at the wireless router system 110 from the wireless router system 110. In this example, the wireless router system returns the ‘unavailable’ status to the host service 102, and the data is queued in the host service 102. The host service 102 now has a known availability status of the mobile device 120, which is ‘unavailable.’ A while later, the wireless router system 110 receives a ‘keep-alive’ signal from the mobile device 120, indicating that the mobile device 120 is now available to receive data in the wireless communication system 100 through the wireless network 114, and has an effect of the mobile device 120 establishing a virtual connection with the wireless router system 110. The wireless router system now sends the ‘available’ status to the host service 102, and the host service 102 forwards the data to the wireless router system 110. The host service 102 now has a known availability status of the mobile device 120, which is ‘available.” The wireless router system now transmits the data to the mobile device 120 through the wireless network 114. When the host service 102 generates subsequent set of data for the mobile device 120, the availability status of the mobile device 120 is already know as ‘available’ and the host service 102 forwards the subsequent set of data to the wireless router system 114. The mobile device 120 is designed to transmit the ‘keep-alive’ signal at a predetermined time period such as every 15 minutes as shown in FIG. 3, and the wireless router system 110 keeps the current availability status of ‘available’ as long as the wireless router system 110 receives the keep-alive signal at the predetermined time period interval. FIG. 3 shows the wireless router system 110 receiving two consecutive keep-alive signals at the predetermined time period interval after transmitting the subsequent set of data. Because the wireless router system 110 has received the keep-alive signals at the predetermined time period interval, the availability status of the mobile device 120 is unchanged as available, and the wireless router system does not transmit an updated availability status to the host service 102. However, as shown in FIG. 3, the wireless router system 110 fails to receive the keep-alive signal from the mobile device 120 during the third expected interval. The availability status of the mobile device 120 is now changed to ‘unavailable’ and the wireless router system 110 transmits the updated availability status of ‘unavailable’ to the host service 102. The host service 102 then updates the availability status to ‘unavailable’ such that if any subsequent data for the mobile device 120 is generated while the availability status is ‘unavailable,’ the host service 102 queues such data. A while later, the wireless router system 110 again receives the keep-alive signal from the mobile device 120, and updates the availability status to ‘available.’ Because there has been a change in the availability status, the wireless router system transmits the updated availability status of ‘available’ the host service 102.
  • FIG. 4 is an exemplary flowchart 400 illustrating a process of adaptive delivery of data to a mobile device in the wireless communication system 100 in accordance with at least one of the preferred embodiments. For the purpose of the illustration, the data to be delivered resides in the host service 102, and the data is to be delivered to the mobile device 120. As previously explained, a host service may be connected to the wireless router system 110 with or without the communication network 108 such as Internet. The process begins in block 402 and data to be delivered to the mobile device 120 is generated in the host service 102 in block 404. The data may be generated internally by the host service 102 or may be generated in response to the host service receiving corresponding data from another source. For example, the data may be a message from the host service 102 regarding a service that the host service 102 provides to the mobile device 120 such as Internet web browsing, music downloads, news service, or any other host service specific services originating from the host service 102, or the data may be an e-mail message, which is sent from an external source and received by the host service 102, to be delivered to the mobile device 120. Initially, such as the very first time the host service 102 is to deliver the data to the mobile device 120, the host service 102 has no knowledge of the availability of the mobile device 120 in the wireless communication system 100. Instead of assuming that the mobile device 120 is available to receive the data and transmitting the data to the mobile device 120, whether the availability status of the mobile device 120 is known at the host service 102 is determined in block 406. Whether the availability status of the mobile device 120 is known at the host service 120 in block 406 may be based upon a stored availability status at the host service 102. The availability status of the mobile device 120 may be deemed to be unknown if there is no stored availability status of the mobile device 120 such as when the process is first initiated and there is no prior stored availability status of the mobile device 120 at the host service 102. Even if the stored availability status of the mobile device 120 is known, it may be deemed to be unknown if the stored availability status becomes stale or too old. The stored availability status may also become unknown if a connection between the host service 102 and the wireless router system 110 is lost.
  • If the availability status of the mobile device 120 is determined to be known in block 406, the process advances to block 408. However, if the availability status of the mobile device 120 is determined to be unknown in block 406, the availability status of the mobile device 120 at the host service 102 is set equal to a cashed availability status of the mobile device 120 at the wireless router system 110 in block 410. The availability status of the mobile device 120 at the host service 102 now becomes known, and the process advances to block 408. In block 408, the value of the known availability status of the mobile device 120, i.e., available or unavailable, at the host service 102 is determined. For example, the mobile device 120 may be determined to be unavailable because the mobile device 120 is outside of a coverage area provided by the wireless network 114 or is turned off, or the wireless network 114 is unavailable or unable to transmit the message to the mobile device 120.
  • If the known availability status is determined to equal unavailable in block 408, then the data becomes pending and is queued in the host service 102 in block 412, and the process loops back to block 406. The pending data is only queued in the host service 102 only if the pending data to be queued is new, and is not re-queued if the pending data has been already queued in a previous iteration. Queuing of the pending data at the host service 102 is helpful in preserving resources in the case of recovery from a system related failure such as a lost connection to the wireless router 110. If the known availability status is determined to equal available in block 408, then the data is transmitted from the host service 102 to the wireless router system 110 in block 414. The data is then transmitted from the wireless router system 110 to the mobile device 120 through the wireless network 114 in block 416. In block 418, whether the data transmission to the mobile device 120 has been successful is determined. The successful data transmission from the wireless router system 110 to the mobile device 120 may be determined based upon a confirmation signal transmitted from the mobile device 120 in response to successfully receiving the data. For example, there may be a predetermined time period within which the confirmation signal from the mobile device 120 is expected after the data is transmitted from the wireless router system 110. The availability status of the mobile device 120 at the wireless router system 110 may be re-determining upon the confirmation signal, and the cached availability status at the wireless router system 110 may then be updated with the re-determined availability status. If the data transmission is determined to be successful in block 418, then the process loops back to block 404, and waits for next data. However, if the data transmission is determined to be unsuccessful in block 418, then whether the data should be re-transmitted to the mobile device 120 is determined in block 420. If the data is determined to be re-transmitted, then the process loops back to block 416 where the data is re-transmitted to the mobile device 120. If the data is determined not to be re-transmitted in block 420, then the process advances to block 412 where the data is queued at the host service 102, and the process from block 406 is repeated. However, if the indication signal from the mobile device 120 is received by the wireless router system 110 after the data has been queued in the host service 102, the cached availability status of the mobile device 120 at the wireless router system 110 is updated to “available”. The updated cached availability status of “available” is transmitted to the host service 102 from the wireless router system 110, making the available status at the host service 102 in block 408 equal to available. At this time, the pending data, which was previously queued, becomes ready to be delivered to the mobile device 120, and is un-queued. Then the process for determining successful transmission of data to the mobile device 120 from the host service 102, previously described in blocks 414, 416, 418 and 420, is followed. If the transmission of the queued data to the mobile device 120 is determined to be successful in block 418, then the previously queued data, which has now been successfully delivered to the mobile device 120, is purged in block 422. The process then advances to block 404, and waits for next data.
  • FIG. 5 is an exemplary flowchart further illustrating the process of block 410 for setting the availability status at the host service 102 based upon the cached availability status at the wireless router system 110 in accordance with at least one of the preferred embodiments. The cached availability status of the mobile device 120 at the wireless router system 110 may be based upon an indication signal transmitted from the mobile device 120. The indication signal, sometimes referred as a “heart beat” or a “keep-alive” signal, may be periodically transmitted by the mobile device 120, and if it is received by the wireless router system 110, it generally indicates that the mobile device 120 is available, or in a coverage area of the wireless network 114, and has an effect of the mobile device 120 establishing a virtual connection with the wireless router system 110. The indication signal, however, may also indicate unavailability of the mobile device 120 in the wireless communication system 100. For example, the mobile device 120 may have a very limited memory space left and is unable to receive further data, or due to its low battery status, its wireless communication ability may begin to shut down to conserve the battery power. The indication signal may include a plurality of functionality states of the wireless device 120 such as, but not limited to, the available memory space, battery status, and received signal strength indicator (“RSSI”). In this example for simplicity, the indication signal from the mobile device 120 is used to illustrate that the mobile device 120 is available in the wireless communication system 100.
  • In block 502, whether the indication signal from the mobile device 120 is received at the wireless router system 110 is determined. If it is determined that the indication signal has been received, then the cached availability status of the mobile device 120 at the wireless router system 110 is set to be “available” in block 504. If the cached availability status had previously been set to “unavailable” then it is re-set to be “available” in block 504. The process then advances to block 506. If the indication signal is determined not to have been received, then whether the indication signal periodic interval has elapsed is determined in block 508. If the indication signal periodic interval is determined not to have elapsed, then the process loops back to block 502. As long as the indication signal is received periodically at, or within, the indication signal periodic interval, the cached availability status of the mobile device 120 is kept equal to available. However, if the indication signal periodic interval is determined to have elapsed in block 508, then the cached availability status of the mobile device 120 at the wireless router system 120 is set to be “unavailable” in block 510. If the cached availability status had previously been set to “available” then it is re-set to be “unavailable” in block 510. The process then advances to block 506. In block 506, the cached availability status of the mobile device 120, either available or unavailable, at the wireless router system 110 is provided to the host service 102, setting the availability status to be known at the host service 102.
  • FIG. 6 is an exemplary flowchart further illustrating the process of block 420 for determining whether to re-transmit the data from the wireless router system 110 to the mobile device 120 as a result of the data transmission being determined to be unsuccessful in block 418 in accordance with at least one of the preferred embodiments. In block 602, whether predetermined re-try logic has been exhausted is determined. The predetermined re-try logic may include, and may be any combination of, a maximum number of re-transmissions, a maximum overall time of re-transmissions, and a maximum back-off time. When implementing a delivery system in a wireless network, it is common to use a progressive back-off method for re-transmitting data to a destination device. If the re-try logic has not been exhausted, then the process loops back to block 416 where the data is re-transmitted from the wireless router system 110 to the mobile device 120. However, if the re-try logic is exhausted, meaning that no confirmation signal has been received, the mobile device 120 is deemed to be unavailable and the cached availability status at the wireless router system 110 is updated to “unavailable” in block 604. The updated cached availability status is communicated from the wireless router system 110 to the host service 102 in block 606, and the availability status of the mobile device 120 at the host service 102 is updated to “unavailable.” The process then advances to block 412 where the data is queued in the host service 102.
  • Because it takes a finite amount of time between when the mobile device 120 is determined to be available to receive the generated data and when the data is transmitted from the wireless router system 110 to the mobile device 120, there may be a change in the availability status of the mobile device 120 during that time. To address this concern, additional steps may be provided between block 414, in which the data is transmitted from the host service 102 to the wireless router system 110, and block 416, in which data is transmitted from the wireless router system 110 to the mobile device 120. For example, instead of solely relying on the availability status of the mobile device 120 at the host service 102, the availability status of the mobile device 120 may be evaluated at the wireless router system 110 when the data is transmitted from the host service 102 to the wireless router service 110 based upon the current cached availability status at the wireless router system 110. The decision whether to further transmit the data from the wireless router system 110 to the mobile device 120 then may be made based upon the evaluated cached availability status of the mobile device 120. If the evaluated cached availability status is “available”, then the data is transmitted from the wireless router system 110 to the mobile device 120 in block 416, and the process previously described is followed. However, if the evaluated cached availability status is “unavailable”, then the availability status of the mobile device 120 at the host service 102 is updated to “unavailable”, and the data is queued at the host service 102 in block 412.
  • FIG. 7 is an exemplary block diagram of a wireless communication system 700 configured to adaptively deliver data to a wireless mobile communication device (“mobile device”) in the wireless communication system 700 in accordance with at least one of the preferred embodiments. Although the wireless communication system 700 may include a plurality of host services, wireless networks, and wireless devices as previously shown in FIG. 1, the wireless communication system 700 in FIG. 7 is shown with a reduced number of elements for simplicity. The wireless communication system 700 includes a mobile device 702, and a host service 704, which includes a data generator 706 configured to generate data to be delivered to the mobile device 702. The data generator 706 may generate the data to be delivered to the mobile device 702 in response to receiving corresponding data. The host service 704 also includes a status evaluator 708 configured to determine whether an availability status of the wireless device 702 in the wireless communication system 700 is known. The host service 704 is coupled to a wireless router system 710, and has a host transmitter 712 that transmits the data to the wireless router system 710 if the known availability status of the mobile device 702 equals available. The host service 704 also has a host memory 714, and queues the data in the host memory 714 if the known availability status equals unavailable. The host service 704 only queues the data in the host memory 714 only if the data to be queued is new and does not re-queue the data that has already been queued in a previous iteration. The host service 704 may be coupled to the wireless router system 710 through a communication network 716, which may be a wide area network such as Internet, and is configured to allow communication between the host service 704 and the wireless router system 710.
  • The wireless router system 710 includes a cache memory 718 configured to cache the availability status of the mobile device 702 in the wireless communication system 700. The wireless router system 710 also includes a router receiver 720 configured to receive the data from the host service 704, and a router transmitter 722 configured to transmit the data to a wireless communication network 724. The wireless communication network 724 is coupled to both the wireless router system 710 and the mobile device 702, and is configured to receive the data from the wireless router system 710 and to transmit the data to the mobile device 702. The wireless communication network 724 may be a cellular telephone network, a two-way paging network, a short range wireless network such as Bluetooth™ and IEEE 802.11 compliant network, and others alike, which is compatible with the mobile device 702.
  • If the status evaluator 708 determines that the availability status of the mobile device 702 in the wireless communication system 700 is not known, then the status evaluator 708 sets the cached availability status stored in the cache memory 718 as the known availability status. If the known availability status equals available, the host transmitter 712 transmits the data to the wireless router system 710. If the known availability status equals unavailable, the host service 704 queues the data in the host memory 714. The data generator 706 may treat the queued data in the host memory 714 as generated data.
  • The status evaluator 708 may also determine the availability status of the mobile device 702 based upon a stored availability status at the host service 704, for example in the host memory 714. The status evaluator 708 may determine that the availability status at the host service 704 is unknown if there is no stored availability status, or if a predetermined time period has passed since the availability status has been stored, meaning the stored availability status is too old. The status evaluator 708 may also determine that the availability status at the host service 704 is unknown if a connection between the host service 704 and the wireless router system 710 is lost.
  • At the wireless router system 710, the cached availability status of the wireless device 702 may be based upon an indication signal from the wireless device 702. The indication signal may sometimes be referred as a “heart beat” or a “keep-alive” signal. If the wireless router system 710 receives the indication signal, for example by the router receiver 720, it indicates that the wireless device 702 is available, or in a coverage area of the wireless network 724. The indication signal may include various states of the wireless device 702 in addition to an indication being available to receive the data from the host service 704 such as, but not limited to, current location based on a Global Positioning System (“GPS”) data, battery status, memory status, transmit power level, receive signal strength indicator (“RSSI”) value, and other parameters. If the wireless router system 710 receives the indication signal from the mobile device 702, the wireless router system 710 makes the cached availability status of the wireless device 702 equal to available in the cache memory 718. If the wireless router system 701 fails to receive the indication signal from the wireless device 702, the wireless router system 710 makes the cached availability status of the wireless device 702 equal to unavailable in the cache memory 718.
  • The wireless device 702 may transmit the indication signal periodically, and the wireless router system 710 may keep the cached availability status in the cache memory 718 equal to available if the wireless router system 710 receives the indication signal from the mobile device 702 periodically at a predetermined interval. Conversely, if the wireless router system 710 fails to receive the indication signal from the mobile device 702 periodically at a predetermined interval, the wireless router system may change the cached availability status to unavailable, and transmit the changed cached availability status to the host service 704, for example, by the router transmitter 722, causing the status evaluator 708 to update the known availability status to unavailable. The cached availability status may be changed back to available when wireless router system 710 once again receives the indication signal from the mobile device 702, and may transmit the changed cached availability status, now back to available, to the host service 704. If there is queued data at the host service 704 at this time, then the host transmitter 712 transmits the queued data to the wireless router system 710.
  • After the router transmitter 722 transmits the data to the mobile device 702, the wireless router system 710 may determine whether the data transmission to the wireless device 702 has been successful based upon a confirmation signal transmitted from the wireless device 702 in response to successfully receiving the data. The wireless router system 710 may then re-determine the availability status of the wireless device 702 based upon the confirmation signal, and update the cached availability status in the cache memory 718 with the re-determined availability status. The wireless router system 710 may be configured to receive the confirmation signal within a predetermined time period after transmission of the data to the mobile device 702, and to re-transmit the data to the mobile device 702 until predetermined re-try logic is exhausted if the wireless router system 710 fails to receive the confirmation signal within the predetermined time period. The predetermined re-try logic may one or any combination of a maximum number of re-transmissions, a maximum overall time of re-transmissions, and a maximum back-off time. When implementing a delivery system in a wireless network, it is common to use a progressive back-off method for re-transmitting data to a destination device. If the wireless router system 710 fails to receive the confirmation signal after the predetermined re-try logic is exhausted, then the wireless router system 710 updates the cached availability status in the cache memory 718 of the mobile device 702 to unavailable. The wireless router system 710 then transmits the updated cached availability status to the host service 704, which updates the availability status of the mobile device 702 to unavailable and to queue the data in the host memory 714. However, if the indication signal from the mobile device 702 is received by the wireless router system 710 after the data has been queued in the host memory 714, the cached availability status of the mobile device 702 at the wireless router system 710 is updated to “available”. The updated cached availability status of “available” is transmitted to the host service 704 from the wireless router system 710, making the status evaluator 708 to set the availability status at the host service 702 to equal available. The wireless router system 710 then determines whether the transmission of queued data to the mobile device 702 has been successful as previously described. If the wireless router system 710 determines that the transmission of the queued data to the mobile device 702 has been successful, then the host service 704 purges the previously queued data, which has now been successfully delivered to the mobile device 702, from the host memory 714.
  • Because it takes a finite amount of time between when the wireless router system 710 determines that the mobile device 702 is available and when the router receiver 720 receives the data from the host service 704, it is possible for the mobile device 702 to have changed the availability status during that time. To address this possibility, the wireless router system 710 be configured to evaluate the cached availability status of the mobile device 702 after receiving the data from the host service 704 but before transmitting the data to the mobile network 724. If the evaluated cached availability status is equal to available, then the router transmitter transmits the data to the mobile device 702 through the wireless communication network 724. The determination of a successful reception of the data by the mobile device 702, re-transmission of the data, updating of the cached availability status and availability status at the host service 704, and queuing of the data may be performed as previously described.
  • While the preferred embodiments of the invention have been illustrated and described, it is to be understood that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the spirit and scope of the present invention as defined by the appended claims.

Claims (21)

1-20. (canceled)
21. A method in a router system configured to route messages from a host service to a wireless mobile device via a wireless network, the host service being configured to provide a service for the wireless mobile device, the method in the router system comprising:
receiving from the host service a message associated with the service for the wireless mobile device, and forwarding the message to the wireless mobile device via the wireless network;
receiving an indication signal from the wireless mobile device via the wireless network, the indication signal including an indication that indicates unavailability to receive the message associated with the service;
determining and setting in memory of the router system an unavailability status associated with the wireless mobile device based on the received indication signal; and
providing to the host service the unavailability status associated the wireless mobile device, for indicating to the host service to not send further messages associated with the service to the router system for the wireless mobile device.
22. The method of claim 21, further comprising:
receiving a request from the host service; and
in response to the request, sending the unavailability status associated with the wireless mobile device to the host service.
23. The method of claim 21, further comprising:
determining the unavailability status associated with the wireless mobile device based on repeated unsuccessful attempts to transmit messages associated with the service to the wireless mobile device.
24. The method of claim 21, wherein the router system is configured to communicate with a plurality of host services which are configured to provide a plurality of services for a plurality of wireless mobile devices.
25. The method of claim 21, wherein the router system is configured to route messages which comprise messages for electronic mail (e-mail).
26. The method of claim 21, wherein the wireless mobile device comprises a cellular telephone.
27. The method of claim 21, wherein the indication comprises a functional state of the wireless mobile device.
28. The method of claim 21, wherein the indication comprises a parameter of the wireless mobile device.
29. The method of claim 21, wherein the indication indicates a status of a battery of the wireless mobile device or a status of available memory space in the wireless mobile device.
30. The method of claim 21, wherein the router system is external to the wireless network and in communication with the host service over a connection via a communication network comprising the Internet.
31. A router system, comprising:
a receiver configured to receive from a host service a message associated with a service for a wireless mobile device;
a transmitter configured to forward the' message associated with the service to the wireless mobile device via a wireless network;
the receiver being further configured to receive an indication signal from the wireless mobile device via the wireless network, the indication signal including an indication that indicates unavailability to receive the message associated with the service;
the router system being further configured to determine and set in its memory an unavailability status associated with the wireless mobile device based on the received indication signal; and
the transmitter being further configured to provide to the host service the unavailability status associated the wireless mobile device, for indicating to the host service to not send further messages associated with the service to the router system for the wireless mobile device.
33. The router system of claim 31, further comprising:
the receiver being further configured to receive a request from the host service; and
the transmitter being further configured to send, to the host server in response to the request, the unavailability status associated with the wireless mobile device.
34. The router system of claim 31, which is further configured to determine the unavailability status associated with the wireless mobile device based on repeated unsuccessful attempts to transmit messages associated with the service to the wireless mobile device.
35. The router system of claim 31, which is further configured to communicate with a plurality of host services which are configured to provide a plurality of services for a plurality of wireless mobile devices.
36. The router system of claim 31, which is further configured to route messages which comprise messages for electronic mail (e-mail).
37. The router system of claim 31, which is configured to communicate with a wireless mobile device comprising a cellular telephone.
38. The router system of claim 31, wherein the indication comprises a functional state of the wireless mobile device.
39. The router system of claim 31, wherein the indication comprises a parameter of the wireless mobile device.
40. The router system of claim 31, wherein the indication indicates a status of a battery of the wireless mobile device or a status of available memory space in the wireless mobile device.
41. The router system of claim 31, which is external to the wireless network and in communication with the host service over a connection via a communication network comprising the Internet.
US13/350,292 2005-09-27 2012-01-13 Adaptive Data Delivery Abandoned US20120113854A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/350,292 US20120113854A1 (en) 2005-09-27 2012-01-13 Adaptive Data Delivery

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/236,363 US8121069B2 (en) 2005-09-27 2005-09-27 Adaptive data delivery
US13/350,292 US20120113854A1 (en) 2005-09-27 2012-01-13 Adaptive Data Delivery

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/236,363 Continuation US8121069B2 (en) 2005-09-27 2005-09-27 Adaptive data delivery

Publications (1)

Publication Number Publication Date
US20120113854A1 true US20120113854A1 (en) 2012-05-10

Family

ID=37893811

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/236,363 Active 2029-05-01 US8121069B2 (en) 2005-09-27 2005-09-27 Adaptive data delivery
US13/350,292 Abandoned US20120113854A1 (en) 2005-09-27 2012-01-13 Adaptive Data Delivery

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/236,363 Active 2029-05-01 US8121069B2 (en) 2005-09-27 2005-09-27 Adaptive data delivery

Country Status (1)

Country Link
US (2) US8121069B2 (en)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003207495A1 (en) 2002-01-08 2003-07-24 Seven Networks, Inc. Connection architecture for a mobile network
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
WO2006045102A2 (en) 2004-10-20 2006-04-27 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (en) 2004-12-03 2006-06-30 Seven Networks Internat Oy E-mail service provisioning method for mobile terminal, involves using domain part and further parameters to generate new parameter set in list of setting parameter sets, if provisioning of e-mail service is successful
US7752633B1 (en) 2005-03-14 2010-07-06 Seven Networks, Inc. Cross-platform event engine
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US9252977B2 (en) * 2005-11-03 2016-02-02 B.S.D. Crown Ltd Method and system for an uncompromising connection from a computing device having information storage like email server to a wireless mobile device
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US20080146256A1 (en) * 2006-12-19 2008-06-19 Jeffrey Charles Hawkins Sharing data during a voice call using a mobile communications device, and associated user interface
US7951159B2 (en) * 2007-04-04 2011-05-31 Ethicon Endo-Surgery, Inc. Method for plicating and fastening gastric tissue
US7826849B2 (en) * 2007-04-30 2010-11-02 Alcatel-Lucent Usa Inc. Method of sharing mobile unit state information between base station routers
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8787880B2 (en) * 2007-06-14 2014-07-22 Omnitracs, Llc Wireless device caching data proxy
US8085799B2 (en) * 2007-06-19 2011-12-27 International Business Machines Corporation System, method and program for network routing
KR20090015292A (en) * 2007-08-08 2009-02-12 삼성전자주식회사 Method and device for providing information in a mobile terminal
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8040802B2 (en) * 2008-01-14 2011-10-18 Alcatel Lucent Method of controlling congestion for wireless communications
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) * 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US8112475B2 (en) 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US9585062B2 (en) 2010-07-15 2017-02-28 Dejero Labs Inc. System and method for implementation of dynamic encoding rates for mobile devices
US10117055B2 (en) 2009-07-08 2018-10-30 Dejero Labs Inc. System and method for providing data services on vehicles
US10165286B2 (en) 2009-07-08 2018-12-25 Dejero Labs Inc. System and method for automatic encoder adjustment based on transport data
US8942215B2 (en) 2010-07-15 2015-01-27 Dejero Labs Inc. System and method for transmission of data from a wireless mobile device over a multipath wireless router
US9756468B2 (en) 2009-07-08 2017-09-05 Dejero Labs Inc. System and method for providing data services on vehicles
WO2012006744A1 (en) 2010-07-15 2012-01-19 Dejero Labs Inc. A system and method for transmission of data signals over a wireless network
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
WO2012018477A2 (en) 2010-07-26 2012-02-09 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
JP5676762B2 (en) 2010-07-26 2015-02-25 セブン ネットワークス インコーポレイテッド Mobile application traffic optimization
JP5620578B2 (en) 2010-07-26 2014-11-05 セブン ネットワークス インコーポレイテッド Mobile network traffic regulation across multiple applications
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
WO2012061430A2 (en) * 2010-11-01 2012-05-10 Michael Luna Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
EP2635973A4 (en) 2010-11-01 2014-01-15 Seven Networks Inc Caching adapted for mobile application behavior and network conditions
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
WO2012071384A2 (en) 2010-11-22 2012-05-31 Michael Luna Optimization of resource polling intervals to satisfy mobile device requests
WO2012094675A2 (en) 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US8824437B2 (en) * 2011-03-02 2014-09-02 Ricoh Company, Ltd. Wireless communications device, electronic apparatus, and methods for determining and updating access point
EP2700019B1 (en) 2011-04-19 2019-03-27 Seven Networks, LLC Social caching for device resource sharing and management
WO2012149216A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
GB2505585B (en) 2011-04-27 2015-08-12 Seven Networks Inc Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
WO2013015994A1 (en) 2011-07-27 2013-01-31 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US8868753B2 (en) 2011-12-06 2014-10-21 Seven Networks, Inc. System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US9009250B2 (en) 2011-12-07 2015-04-14 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9832095B2 (en) 2011-12-14 2017-11-28 Seven Networks, Llc Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
US8861354B2 (en) 2011-12-14 2014-10-14 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US9021021B2 (en) 2011-12-14 2015-04-28 Seven Networks, Inc. Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US20130204678A1 (en) * 2012-02-06 2013-08-08 Ford Global Technologies, Llc Method and Apparatus for Social Information Exchange in a Vehicle
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
WO2013155208A1 (en) 2012-04-10 2013-10-17 Seven Networks, Inc. Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US9307493B2 (en) 2012-12-20 2016-04-05 Seven Networks, Llc Systems and methods for application management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US8750123B1 (en) 2013-03-11 2014-06-10 Seven Networks, Inc. Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
WO2015053783A1 (en) * 2013-10-11 2015-04-16 Iris Solutions International Inc. Interfacing multiple retailer systems and multiple carrier systems in the requisition of telecommunication products

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870685A (en) * 1996-09-04 1999-02-09 Ericsson Inc. Mobile station operations management based on battery capacity
US20040259531A1 (en) * 2001-06-25 2004-12-23 Ian Wood Message transmission system and method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3949288B2 (en) 1997-09-22 2007-07-25 株式会社東芝 Gateway device and wireless terminal device
US6138146A (en) * 1997-09-29 2000-10-24 Ericsson Inc. Electronic mail forwarding system and method
JP4276698B2 (en) 1999-04-20 2009-06-10 富士通株式会社 Data communication system and recording medium
US6765877B1 (en) * 1999-08-30 2004-07-20 Cisco Technology, Inc. System and method for detecting unidirectional links
FI110400B (en) * 2000-07-03 2003-01-15 Nokia Corp Procedure, terminal and system for checking various electronic mailboxes
EP1344353B1 (en) * 2000-12-22 2014-11-19 BlackBerry Limited Wireless router system and method
US6907501B2 (en) * 2002-01-25 2005-06-14 Ntt Docomo Inc. System for management of cacheable streaming content in a packet based communication network with mobile hosts
US7640293B2 (en) * 2002-07-17 2009-12-29 Research In Motion Limited Method, system and apparatus for messaging between wireless mobile terminals and networked computers
US8645471B2 (en) * 2003-07-21 2014-02-04 Synchronoss Technologies, Inc. Device message management system
US20060224681A1 (en) * 2005-03-29 2006-10-05 Wurster Charles S Mobile communications device e-mail message delivery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870685A (en) * 1996-09-04 1999-02-09 Ericsson Inc. Mobile station operations management based on battery capacity
US20040259531A1 (en) * 2001-06-25 2004-12-23 Ian Wood Message transmission system and method

Also Published As

Publication number Publication date
US20070070931A1 (en) 2007-03-29
US8121069B2 (en) 2012-02-21

Similar Documents

Publication Publication Date Title
US8121069B2 (en) Adaptive data delivery
US7925283B2 (en) Intelligent delivery agent for short message distribution center
US9049681B2 (en) System and method of message delivery in a wireless communication network
JP3866506B2 (en) E-mail delivery control method and mail server
JP4884924B2 (en) Terminal and its message processing method
US8014770B2 (en) System and method for managing data to be pushed to a wireless device when the device may be outside of a coverage range
KR20060117357A (en) Method and apparatus for optimizing delivery of multicast content using probabilistic feedback
US7035640B2 (en) Method for improving the reliability of low latency handoffs
US8239466B2 (en) Local loop for mobile peer to peer messaging
US20030131047A1 (en) Home agent
WO2008078218A2 (en) Methods for providing feedback in messaging systems
JP4648457B2 (en) Method for providing message transmission using an appropriate communication protocol
CA2559535C (en) Adaptive data delivery
CA2544110C (en) System and method for managing data to be pushed to a wireless device when the device may be outside of a coverage range
JP6032656B2 (en) System and method for routing electronic content to a receiving device
JP4486054B2 (en) Electronic message delivery method and electronic message delivery apparatus
JP3682774B2 (en) Information providing system, information providing control device, and information providing control method
KR20050011783A (en) Mms message transmitting system and method using a mms proxy server
CN117897942A (en) Batch data transmission between grid nodes
HK1094928B (en) Offering a push service to a wireless device using a push proxy which monitors the coverage state of the device

Legal Events

Date Code Title Description
AS Assignment

Owner name: RESEARCH IN MOTION LIMITED, CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEWIS, ALLAN DAVID;MOUSSEAU, GARY P.;SIGNING DATES FROM 20051025 TO 20051109;REEL/FRAME:031010/0396

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MALIKIE INNOVATIONS LIMITED, IRELAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BLACKBERRY LIMITED;REEL/FRAME:064104/0103

Effective date: 20230511

Owner name: MALIKIE INNOVATIONS LIMITED, IRELAND

Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:BLACKBERRY LIMITED;REEL/FRAME:064104/0103

Effective date: 20230511