METHOD AND APPARATUS IN A MESSAGING SYSTEM FOR FACILITATING A REDUCTION OF LATENCY

Abstract: A distance threshold and a distance metric for representing a distance between items of information are defined (402) in a messaging system. A messaging unit (122) selects (404, 504) a current item of information sent through a controller (112) of the messaging system. One of the messaging unit and the controller determines (410, 510) the distance between the current item and an additional item compatible with the messaging unit. The messaging unit stores (416, 516) the additional item in its memory, when the distance between the current item and the additional item is less than the distance threshold.

Description: METHOD AND APPARATUS IN A MESSAGING SYSTEM FOR FACILITATING A REDUCTION OF LATENCY Field of the Invention This invention relates in general to communication systems, and more specifically to a method and apparatus in a messaging system for facilitating a reduction of latency. Background of the Invention A messaging unit coupled to a messaging system that provides access to a server can deliver various items of information to the messaging unit. For example, one may want to use a messaging unit to find an item in a catalog, determine the location of a restaurant, or check the value of a stock. In a large system, it is likely that more than one end-user will be interested in the same information at about the same time. A problem that can occur in messaging systems is latency, or delay, in sending and receiving information, especially during times of high message traffic. Additional delay, added to already high delays often encountered on some networks, such as the Internet, is not desirable. Thus, what is needed is a method and apparatus that can facilitate a reduction of latency in a messaging system providing information access. Summary of the Invention An aspect of the present invention is a method for facilitating a reduction of latency in a messaging system serving a messaging unit. The method comprises the steps of defining a distance metric for representing a distance between items of information, and defining a distance threshold. The method further comprises the steps of selecting, by the messaging unit, a current item of information sent through a controller of the messaging system; and determining, by one of the messaging unit and the controller, the distance between the current item and an additional item compatible with the messaging unit. The method also includes the step of storing the additional item in a memory of the messaging unit, when the distance between the current item and the additional item is less than the distance threshold. Another aspect of the present invention is a messaging unit for facilitating a reduction of latency in a messaging system. The messaging unit comprises a transceiver for transmitting and receiving information through a controller of the messaging system, and a processing system coupled to the transceiver for processing the information. The processing system is programmed to select a current item of information retrieved through the controller, and to store an additional item compatible with the messaging unit in a memory of the messaging unit, when a distance between the current item and the additional item is less than a distance threshold. Another aspect of the present invention is a controller in a messaging system for facilitating a reduction of latency. The controller comprises a network interface coupled to a network for requesting and receiving a current item of information, and a processing system coupled to the network for processing the current item. The controller further comprises a base station interface coupled to the processing system for controlling a base station to communicate the current item to a messaging unit. The processing system is programmed to define a distance metric for representing a distance between items of information, and to define a distance threshold. The processing system is further programmed to determine the distance between the current item and an additional item compatible with the messaging unit, and to send the additional item to the messaging unit, when the distance between the current item and the additional item is less than the distance threshold. Brief Description of the Drawings FIG. 1 is an electrical block diagram of an exemplary messaging system in accordance with the present invention. FIG. 2 is an electrical block diagram of an exemplary messaging unit in accordance with the present invention. FIG. 3 is an electrical block diagram of an exemplary controller in accordance with the present invention. FIG. 4 is a flow diagram depicting operation of the exemplary messaging system in accordance with a first embodiment of the present invention. FIG. 5 is a flow diagram depicting operation of the exemplary messaging system in accordance with a second embodiment of the present invention. FIG. 6 is a flow diagram depicting operation of the exemplary messaging unit in accordance with the present invention. FIG. 7 is a flow diagram depicting operation of the exemplary messaging unit in accordance with the present invention. Detailed Description of the Drawings Referring to FIG. 1, an electrical block diagram depicts an exemplary messaging system in accordance with the present invention comprising an infrastructure portion 102 including a controller 112 and a plurality of conventional base stations 116, the communication system also including a plurality of messaging units 122. The base stations 116 preferably communicate with the messaging units 122 utilizing conventional radio frequency (RF) techniques, and are coupled by conventional communication links 114 to the controller 112, which controls the base stations 116. The hardware of the controller 112 is preferably a combination of a Choreographer!® network management device, a Wireless Messaging Gateway (WMG™) Administrator!™ terminal, an RF-Usher!™ multiplexer, and an RF- Conductor!® message distributor manufactured by Motorola, Inc., and utilizes software modified in accordance with the present invention. The hardware of the base stations 116 is preferably a combination of the RF-Orchestra!™ transmitter and the RF-Audience!® receiver manufactured by Motorola, Inc. The messaging units 122 are preferably similar to Page Writer® 2000 data messaging units, also manufactured by Motorola, Inc., and also utilize software modified in accordance with the present invention. It will be appreciated that other similar hardware can be used as well for the controller 112, the base stations 116, and the messaging units 122. Each of the base stations 116 transmits RF signals to the messaging units 122 via an antenna 118. The base stations 116 preferably each receive RF signals from the plurality of messaging units 122 via the antenna 118. The RF signals transmitted by the base stations 116 to the messaging units 122 (outbound messages) comprise selective call addresses identifying the messaging units 122, and data messages originated by a message originator, as well as commands originated by the controller 112 for adjusting operating parameters of the radio communication system. The RF signals preferably transmitted by the messaging units 122 to the base stations 116 (inbound messages) comprise responses that include scheduled messages, such as positive acknowledgments (ACKs) and negative acknowledgments (NAKs), and unscheduled messages, such as registration requests and requests for items of information. The controller 112 preferably is coupled by telephone links 101 to a public switched telephone network (PSTN) 110 for receiving selective call message originations therefrom. Selective call originations comprising data messages from the PSTN 110 can be generated, for example, from a conventional telephone 111 or a conventional computer 117 coupled to the PSTN 110. In addition, the controller 112 preferably is coupled through a conventional communication link 121 to a network 120, such as the Internet, for acquiring items of information, e.g., web pages, from at least one server 124 also coupled to the network. It will be appreciated that, alternatively, the server 124 can be connected directly to the controller 112 without using the network 120. The over-the-air protocol utilized for outbound and inbound messages is preferably selected from Motorola's well-known FLEX™ family of digital selective call signaling protocols. These protocols utilize well-known error detection and error correction techniques and are therefore tolerant to bit errors occurring during transmission, provided that the bit errors are not too numerous. It will be appreciated that other suitable protocols can be used as well. While the preferred embodiment is a two-way wireless messaging system, as depicted in FIG. 1, many aspects of the present invention also are applicable to a one-way wireless messaging system as well. In addition, the present invention is equally applicable to wired messaging systems. The present invention does not depend upon the messaging system being a wireless system. FIG. 2 is an electrical block diagram of an exemplary messaging unit 122 in accordance with the present invention. The messaging unit 122 comprises an antenna 204 for intercepting an outbound message and for transmitting an inbound message. The antenna 204 is preferably coupled to a conventional transceiver 208 for receiving the outbound message and for transmitting the inbound message. The transceiver 208 is coupled to a processing system 206 for processing the outbound and inbound messages and for controlling the messaging unit 122 in accordance with the present invention. A user interface 214 preferably is also coupled to the processing system 206 for interfacing with a user. The user interface 214 comprises a conventional display 216 for displaying the inbound and outbound messages, a conventional alert element 218 for alerting the user when the outbound message arrives, and a conventional keyboard 220 for generating the inbound message and for controlling the messaging unit 122. A conventional clock 207 is also coupled to the processing system 206 for supporting time keeping requirements of the messaging unit 122. It will be appreciated, when the present invention is applied to a one-way messaging system, that the transceiver 208 can be replaced with a conventional receiver. The processing system 206 comprises a conventional processor 210 and a conventional memory 212. The memory 212 comprises software elements and data for programming the processing system 206 in accordance with the present invention. The memory 212 preferably includes a selective call address 222 to which the messaging unit 122 is responsive. In addition, the memory 212 includes a message processing element 224 for programming the processing system 206 to process messages through well-known techniques. The memory 212 further comprises a selection element 226 for programming the processing system 206 to select items of information from the server 124. The memory 212 also includes a storage control element 228 for programming the processing system to store selected items of information along with corresponding time stamps in accordance with the present invention. In addition, the memory 212 includes an item and time stamp store 230 for storing the items and time stamps. Operation of the messaging unit 122 in accordance with the present invention will be described in detail further below. FIG. 3 is an electrical block diagram depicting an exemplary controller 112 in accordance with the present invention. The controller 112 comprises a network interface 318 for receiving a message from a message originator via the telephone links 101. The network interface 318 also preferably communicates with the server 124 via the communication link 121 to the network 120. It will be appreciated that, alternatively, more than one network interface 318 can be utilized, and that different network interfaces 318 can be utilized for receiving the message and for communicating with the server 124. The network interface 318 is coupled to a processing system 310 for controlling and communicating with the network interface 318. The processing system is coupled to a base station interface 304 for controlling and communicating with the base stations 116 via the communication links 114. The processing system 310 is also coupled to a conventional clock 336 for providing a timing signal to the processing system 310. The processing system 310 comprises a conventional computer 312 and a conventional mass medium 314, e.g., a magnetic disk drive, programmed with information and operating software in accordance with the present invention. The mass medium 314 comprises a conventional subscriber database 320 for storing profiles defining service for subscribers using the system. The mass medium 314 further comprises a message processing element 322 for processing messages through well-known techniques. The mass medium 314 also includes a network access element 324 for programming the processing system to acquire needed items of information from the server 124 on behalf of the messaging unit 122, in accordance with the present invention. The mass medium 314 further comprises an item and time stamp sender 328 for sending items of information and (optional) corresponding time stamps to the messaging units 122. It will be appreciated that, in a wired messaging system, the base station interface 304 can be eliminated, and communication with the messaging units 122 can take place through the network interface 318. Operation of the controller 112 in accordance with the present invention will be described further below. FIG. 4 is a flow diagram 400 depicting operation of the exemplary messaging system in accordance with a first embodiment of the present invention. First, a distance metric and a distance threshold are defined 402 for the messaging unit 122, and are then stored in the storage control element 228. Preferably, the distance metric and the distance threshold are stored in a non-volatile portion of the memory 212. Alternatively, the distance metric and the distance threshold can be programmed over the air from the controller 112, through well-known techniques. The distance metric can be defined, for example, as the number of hyperlinks that must be traversed to reach an additional item of information from a current item of information. Distance = Number of Hyperlinks Another example of a distance metric definition involves assigning to each item an n-dimensional location. One dimension, for example, can be a page number in a catalog. Another dimension can be a subject, such as "men's dress shirts." The distance between two items is defined to equal the minimum distance between the items in any dimension. Any number of dimensions can be used. This distance metric definition is preferred for catalogs. Distance = MIN( \ xj-xj \ , \ yi-yi \ , \ z{-zj \ ) Alternatively, for the above example the distance can be defined as the Euclidean distance. This distance metric definition is preferred when, for example, it is desired for distances in all the dimensions to be short simultaneously. Distance = SQRT((xi-xj)2 + (yi-yjfi + (z(-zj)2) Many other distance metrics will occur to one of ordinary skill in the art, given the teachings of the present disclosure. The distance threshold is simply a numeric value with which the distance, as defined by the distance metric, is compared to make a decision, as described further below. After the distance metric and the distance threshold have been defined, the messaging unit 122 selects 404 a current item of information, e.g., a web page, that is retrieved, for example, from the server 124 through the controller 112 and base stations 116, using well-known techniques. In a two- way messaging system the "selection" of the current item preferably occurs in response to the messaging unit 122 sending a request to the controller 112 for a specific item of information, identified, for example, by a Uniform Resource Locator (URL). On the other hand, in a one-way messaging system, items of interest can be identified, for example, by pre-programmed or downloaded information stored in a memory of the messaging unit, as well as by user input. The unit then selects the current item by monitoring a stream of items sent over the channel until matching one of the identified items of interest. After selecting the current item, the messaging unit 122 then monitors 406 the channel for an additional item of information that is compatible with the messaging unit 122. Preferably, in a two-way messaging system, the additional item has been requested by another messaging unit 122 that shares the channel with the messaging unit 122 that selected the current item. In a one-way messaging system, the additional item preferably is sent periodically, for example, as an information services message. At step 408, the processing system 206 checks whether the additional • item has been found. If not, the messaging unit 122 continues to monitor 406 the channel. If, on the other hand, the additional item has been found, the processing system 206 accesses 410 the storage control element 228 to determine the distance between the current item and the additional item. At step 412 the processing system 206 checks whether the distance is less than the distance threshold. If not, the flow returns to step 406 to monitor the channel, without storing the additional item. If so, the processing system 206 checks 414 whether the additional item is already stored in the item and time stamp store 230. If so, the processing system 206 returns to step 406 to monitor the channel. If not, the processing system 206 stores 416 the additional item and a time stamp in the item and time stamp store 230. Preferably the time stamp indicates the time at which the messaging unit 122 selected the current item. Alternatively, the time stamp can indicate the time at which the messaging unit 122 selected the current item. The processing system 206 then indicates to the user that the item is available for immediate presentation. This can be done, for example, by blinking a hyperlink for the item, by changing the color of the hyperlink, or by some other visible, audible, or tactile indication. Flow then returns to step 406 to continue monitoring. Advantageously, the present invention reduces latency by predicting related items of information that the user of a messaging unit is likely to need in the future, and by storing the items of information in the messaging unit in advance of the user's need. FIG. 5 is a flow diagram 500 depicting operation of the exemplary messaging system in accordance with a second embodiment of the present invention. The primary difference of the second embodiment as compared with the first embodiment is that in the second embodiment the controller 112 determines which additional items of information should be downloaded and stored in the messaging unit 122. First, in step 502, the distance metric and the distance threshold are defined in a manner similar to that described herein above for the flow diagram 400, and stored in the item and time stamp sender 328. Later, the messaging unit 122 selects 504 a current item of information retrieved through the controller utilizing well- known techniques. The processing system 310 then uses the network access element 324 to access 506 the network 120 for an additional item of information that is compatible with the messaging unit 122. If, at step 508, the additional item is not found, the processing system 310 continues to access 506 the network and search for the additional item of information. When the additional item is found, the processing system 310 accesses 510 the item and time stamp sender 328 to determine the distance between the current item and the additional item. At step 512, if the distance is not less than the distance threshold, the flow returns to step 506 to continue searching for the additional item. If, on the other hand, the distance is less than the distance threshold, then the processing system 310 sends 514 the additional item and a time stamp to the messaging unit 122 through the base stations 116. Preferably, the time stamp indicates the time at which the messaging unit 122 selected the current item. Alternatively, the time stamp can indicate the time at which the processing system 306 located the additional item. As a further alternative, the controller 112 can omit sending the time stamp, and the messaging unit 122 can generate the time stamp from its internal clock 207. The processing system 206 of the messaging unit 122 then stores 516 the additional item and the time stamp in the item and time stamp store 230. The processing system 206 then indicates 518 to the user that the item is available for immediate presentation, as described above. Advantageously, the second embodiment of the present invention not only reduces the latency, as before, but also can provide direction to the user's search for information, as well as a greater assurance that the items of information will be available at the messaging unit 122 when needed. FIG. 6 is a flow diagram 600 depicting operation of the exemplary messaging unit in accordance with the present invention. Flow begins with the user requesting 602 an additional item of information by, for example, moving a cursor to a hyperlink, and then selecting the hyperlink, through well-known techniques. In response, the processing system 206 of the messaging unit 122 checks 604 whether the additional item is already stored in the item and time stamp store 230. If so, the processing system 206 retrieves 606 the additional item from the item and time stamp store 230, for immediate presentation, e.g., on the display 216, to the user, thereby advantageously reducing latency. If not, the processing system 206 sends 608 a request to the controller, using well-known techniques, so that the controller can obtain the additional item from the server 124 and then download the item to the messaging unit 122. It will be appreciated that step 608 is applicable only to two-way messaging systems. FIG. 7 is a flow diagram 700 depicting operation of the exemplary messaging unit in accordance with the present invention. Flow begins with the processing system 206 checking 702 the age of any additional items in the item and time stamp store 230. Preferably, this is accomplished by comparing each time stamp with the current time, as determined from the clock 207. At step 704, if no additional item has reached a predetermined age limit, the processing system 206 waits 710 a predetermined time, and then returns to step 702 to check again. If, on the other hand, an additional item's age has exceeded the predetermined age limit, the processing system 206 checks whether the user has requested presentation of the additional item. If not, the additional item and time stamp are deleted 708, and the flow then returns to step 704 to look for other time stamps that are too old. If, on the other hand, the user has requested the additional item, then the flow moves to directly to step 704. The operation depicted in the diagram 700 advantageously prevents the accumulation of old, unwanted items in the item and time stamp store 230. Thus, it should be clear from the preceding disclosure that the present invention provides a method and apparatus that facilitates a reduction of latency in a messaging system providing information access. Advantageously the present invention reduces latency by predicting related items of information that the user of a messaging unit is likely to need in the future, and by storing the items of information in the messaging unit in advance of the user's need. Many modifications and variations of the present invention are possible in light of the above teachings. Thus, it is to be understood that, within the scope of the appended claims, the invention can be practiced other than as specifically described herein above.

Claims: What is claimed is: CLAIMS 1. A method for facilitating a reduction of latency in a messaging system serving a messaging unit, the method comprising the steps of: defining a distance metric for representing a distance between items of information; defining a distance threshold; selecting, by the messaging unit, a current item of information sent through a controller of the messaging system; determining, by one of the messaging unit and the controller, the distance between the current item and an additional item compatible with the messaging unit; and storing the additional item in a memory of the messaging unit, when the distance between the current item and the additional item is less than the distance threshold. 2. The method of claim 1, further comprising the step of retrieving, by the messaging unit, the additional item for immediate presentation to a user, when the additional item is requested by the user. 3. The method of claim 1, wherein the determining step is performed by the messaging unit, and wherein the storing step comprises, in the messaging unit, the steps of: monitoring a channel for the additional item; and storing the additional item when the distance is less than the distance threshold. 4. The method of claim 1, wherein the determining step is performed by the controller, and wherein the storing step comprises in the controller the step of sending the additional item to the messaging unit, when the distance between the current item and the additional item is less than the distance threshold, and wherein the storing step further comprises, in the messaging unit, the step of storing the additional item in response to receiving the additional item from the controller. 5. The method of claim 1, further comprising, in the messaging unit, the step of skipping the storing step when the additional item is already present in the memory. 6. The method of claim 1, further comprising, in the messaging unit, after the storing step, the step of indicating to a user that the additional item is available for immediate presentation. 7. The method of claim 1, wherein the storing step comprises the step of storing a time stamp corresponding to the additional item, and wherein the method further comprises, in the messaging unit, the steps of: comparing the time stamp with a current time to determine an age of the additional item; and deleting the additional item when the age is greater than a predetermined age, and the additional item has not been requested by a user. 8. The method of claim 1, wherein the step of defining the distance metric comprises the step of setting the distance equal to a number that represents how many hyperlinks have to be traversed to reach the additional item from the current item. 9. The method of claim 1, wherein the step of defining the distance metric comprises the steps of: defining a plurality of dimensions for measuring a plurality of distances; and then setting the distance as a function of the plurality of distances. 10. A messaging unit for facilitating a reduction of latency in a messaging system, the messaging unit comprising: a transceiver for transmitting and receiving information through a controller of the messaging system; and a processing system coupled to the transceiver for processing the information; wherein the processing system is programmed to: select a current item of information retrieved through the controller, and store an additional item compatible with the messaging unit in a memory of the messaging unit, when a distance between the current item and the additional item is less than a distance threshold. 11. The messaging unit of claim 10, wherein the processing system is further programmed to retrieve the additional item for immediate presentation to a user, when the additional item is requested by the user. 12. The messaging unit of claim 10, wherein the processing system is further programmed to: define a distance metric for representing the distance between items of information; define the distance threshold; monitor a channel for the additional item; determine the distance between the current item and the additional item; and store the additional item when the distance is less than the distance threshold. 13. The messaging unit of claim 10, wherein the controller sends the additional item to the messaging unit, when the distance between the current item and the additional item is less than the distance threshold, and wherein the processing system is further programmed to store the additional item in response to receiving the additional item from the controller. 14. The messaging unit of claim 10, wherein the processing system is further programmed to skip the storing of the additional item when the additional item is already present in the memory. 15. The messaging unit of claim 10, wherein the processing system is further programmed, after storing the additional item, to indicate to a user that the additional item is available for immediate presentation. 16. The messaging unit of claim 10, wherein the processing system is further programmed to: store a time stamp corresponding to the additional item, and compare the time stamp with a current time to determine an age of the additional item; and delete the additional item when the age is greater than a predetermined age, and the additional item has not been requested by a user. 17. The messaging unit of claim 10, wherein the processing system is further programmed to set the distance equal to a number that represents how many hyperlinks have to be traversed to reach the additional item from the current item. 18. The messaging unit of claim 10, wherein the processing system is further programmed to : define a plurality of dimensions for measuring a plurality of distances; and then set the distance as a function of the plurality of distances. 19. A controller in a messaging system for facilitating a reduction of latency, the controller comprising: a network interface coupled to a network for requesting and receiving a current item of information; a processing system coupled to the network for processing the current item; a base station interface coupled to the processing system for controlling a base station to communicate the current item to a messaging unit, wherein the processing system is programmed to: define a distance metric for representing a distance between items of information; define a distance threshold; determine the distance between the current item and an additional item compatible with the messaging unit; and send the additional item to the messaging unit, when the distance between the current item and the additional item is less than the distance threshold. 20. The controller of claim 19, wherein the processing system is further programmed to set the distance equal to a number that represents how many hyperlinks have to be traversed to reach the additional item from the current item. 21. The controller of claim 19, wherein the processing system is further programmed to: define a plurality of dimensions for measuring a plurality of distances; and then set the distance as a function of the plurality of distances. 22. The controller of claim 19, wherein the processing system is further programmed to send a time stamp corresponding to the additional item to the messaging unit.

Inventors: DORENBOSCH JHEROEN PIETER, DORENBOSCH, JHEROEN, PIETER
Applicants: MOTOROLA INC, MOTOROLA INC.
Application year: 1999
Main classification: G06F13
IPC codes: H04L12, H04L29, H04W88