US20110179138A1 - Method of reflecting on another device a change to a browser cache on a handheld electronic device, and assocaited device - Google Patents

Method of reflecting on another device a change to a browser cache on a handheld electronic device, and assocaited device Download PDF

Info

Publication number
US20110179138A1
US20110179138A1 US13/074,328 US201113074328A US2011179138A1 US 20110179138 A1 US20110179138 A1 US 20110179138A1 US 201113074328 A US201113074328 A US 201113074328A US 2011179138 A1 US2011179138 A1 US 2011179138A1
Authority
US
United States
Prior art keywords
html object
notification
url
html
server
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/074,328
Inventor
Daniel Van Geest
Yu Tang
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.)
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/074,328 priority Critical patent/US20110179138A1/en
Assigned to RESEARCH IN MOTION LIMITED reassignment RESEARCH IN MOTION LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TANG, YU, VAN GEEST, DANIEL
Publication of US20110179138A1 publication Critical patent/US20110179138A1/en
Assigned to BLACKBERRY LIMITED reassignment BLACKBERRY LIMITED CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: RESEARCH IN MOTION LIMITED
Assigned to MALIKIE INNOVATIONS LIMITED reassignment MALIKIE INNOVATIONS LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BLACKBERRY LIMITED
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Definitions

  • the disclosed and claimed concept relates generally to handheld electronic devices and, more particularly, to a method of reflecting on another device a change to a browser cache on a handheld electronic device.
  • handheld electronic devices Numerous types of handheld electronic devices are known. Examples of handheld electronic devices include, for instance, personal data assistants (PDAs), handheld computers, two-way pagers, cellular telephones, and the like. Many handheld electronic devices also feature a wireless communication capability, although many such handheld electronic devices are stand-alone devices that are functional without communication with other devices.
  • PDAs personal data assistants
  • handheld computers two-way pagers
  • cellular telephones and the like.
  • Many handheld electronic devices also feature a wireless communication capability, although many such handheld electronic devices are stand-alone devices that are functional without communication with other devices.
  • Some handheld electronic devices that are sold with certain software resident thereon and are configured to allow additional software developed by third parties to be installed and executed on the electronic handheld device.
  • the manufacturer of the device may sell the device with original software that is sufficiently versatile to enable cooperation between the original software and third-party software.
  • Such third-party software may be provided on the device when originally provided to a consumer, or may be added after purchase. While such handheld electronic devices and software have been generally effective for their intended purposes, such handheld electronic devices have not been without limitation.
  • the original software provided by a manufacturer may be configured to be so versatile as to be somewhat burdensome to use.
  • the original software may provide a routine such as an Application Programming Interface (API) that third-party software can employ to receive notifications in response to certain events on the handheld electronic device.
  • API Application Programming Interface
  • the original software may provide many more notifications than are needed or are usable by the third-party software.
  • the processing of so many unnecessary notifications undesirably adds processing overhead and consumes both processing and power resources.
  • such APIs may still provide fewer than all of the functions that might be desirable for use with certain third-party software.
  • the API may provide certain notifications, but such notifications may provide less than all of the data that would be desirable for proper operation of the third-party software.
  • FIG. 1 is a schematic depiction of an improved handheld electronic device in accordance with the disclosed and claimed concept in communication with a network;
  • FIG. 2 is a schematic depiction of a portion of a memory on the handheld electronic device of FIG. 1 ;
  • FIG. 3 is an exemplary flowchart of at least a portion of an improved method that can be performed on the improved handheld electronic device of FIG. 1 ;
  • FIG. 4 is an exemplary flowchart of at least a portion of another method that can be performed on the improved handheld electronic device of FIG. 1 .
  • An improved handheld electronic device 4 is depicted schematically in FIG. 1 as being in communication with a network 8 .
  • the exemplary network 8 enables communication between it and the handheld electronic device 4 via an antenna 10 that is connected through the network 8 with a server 12 .
  • the exemplary network 8 communicates wirelessly with the handheld electronic device 4 , although it is understood that the network 8 could have a wired connection with the handheld electronic device 4 without departing from the present concept.
  • the exemplary handheld electronic device 4 comprises an input apparatus 16 , a processor apparatus 20 , and an output apparatus 24 .
  • the processor apparatus 20 is configured to process input received from the input apparatus 16 and to provide output to the output apparatus 24 .
  • the processor apparatus 20 comprises a processor and a memory 28 . While not expressly depicted herein, it is understood that the processor could be any of a wide variety of processors, such as a microprocessor ( ⁇ P) that is responsive to input from the input apparatus 16 , that provides output to the output apparatus 24 , and that interfaces with the memory 28 .
  • ⁇ P microprocessor
  • the memory 28 is depicted schematically in FIG. 2 .
  • the memory 28 can be any of a variety of types of internal and/or external storage media such as, without limitation, RAM, ROM, EPROM(s), EEPROM(s), and the like that provide a storage register for data such as in the fashion of an internal storage area of a computer, and can be volatile memory or nonvolatile memory.
  • the memory 28 additionally includes a number of routines stored therein that are executable on the processor, as will be set forth below in greater detail. As employed herein the expression “a number of” and variations thereof shall refer broadly to any nonzero quantity, including a quantity of one.
  • the routines can be in any of a variety of forms such as, without limitation, software, firmware, and the like.
  • the memory 28 comprises a browser cache 32 having a number of files 36 stored therein within a directory structure.
  • Each file 36 in the browser cache 32 has a file name 40 and has stored therein, for example, an object 44 , a location from where the object 44 was obtained, such as a Uniform Resource Locator (URL) 48 , and an expiry date 52 for the object 44 . Additional relevant information may be stored in each file without departing from the present concept.
  • URL Uniform Resource Locator
  • the memory 28 additionally has stored therein an operating system 56 , an API 60 , and a browser routine 64 , among other routines as mentioned above.
  • the browser routine 64 is operable to obtain and process various items such as HyperText Markup Language (HTML) documents.
  • HTML HyperText Markup Language
  • a given HTML document may comprise, for example, text, and may additionally comprise descriptions of locations where additional objects may be obtained and which are to be inserted into the text. Exemplary objects that are insertable into text would include images, executable code such as JavaScript, and other objects.
  • the objects stored at such locations must be obtained in one fashion or another for inclusion in the output that results from the such processing of the HTML document.
  • the locations may, for example, be URLs on a network such as the Internet.
  • certain of the needed objects may be stored, i.e., saved, in the browser cache 32 as objects 44 stored within the files 36 .
  • an HTML document being processed by the browser routine 64 comprises a location such as a URL 48 in one of the files 36
  • the object 44 stored in the file 36 is retrieved from within the browser cache 32 and is provided to the browser routine 64 for inclusion in the HTML document. In such a fashion, the amount of communication traffic between handheld electronic device 4 and the network 8 can be reduced.
  • One exemplary implementation of such a browser cache 32 on the handheld electronic device 4 would additionally include storing on the server 12 or otherwise making available to the server 12 a mirror of the browser cache 32 .
  • the server 12 may analyze the obtained HTML document and determine whether or not it includes one or more URLs from which may be obtained objects that should be included in the HTML document.
  • the server 12 may determine from its mirror of the browser cache 32 whether or not the object which is available at a given URL might already be stored in the browser cache 32 .
  • the server 12 will request the object from the URL and will send the object to the handheld electronic device 4 , typically in conjunction with the sending of the HTML document from the server 12 to the handheld electronic device 4 .
  • the object from the indicated URL is already available in an unexpired condition in the browser cache 32 , the object is not at that time requested from the URL.
  • the mirror of the browser cache 32 is advantageously updated whenever the browser cache 32 changes.
  • a data table 68 is generated and is stored in the memory 28 .
  • the data table 68 includes a number of first objects 72 and a number of second objects 76 stored therein.
  • Each first object 72 comprises a file name 40 , which is the file name 40 of a file 36 in the browser cache 32 .
  • Each first object 72 has associated therewith a second object 76 that comprises the location, i.e., the URL 48 in the present example, of the same file 36 .
  • the file names 40 are each stored in the first objects 72 as a hash of the file name 40 in order to reduce storage requirements and to facilitate processing.
  • a hash of each URL 48 in the second objects 76 is provided to the server 12 to create on the server 12 the mirror of the browser cache 32 . It may additionally be desirable to provide, in conjunction with each hash of a URL 48 , the expiry date 52 of the object 44 that was obtained from the same URL 48 , as is stored in one of the files 36 .
  • the change is advantageously communicated to the server 12 so that the mirror on the server 12 of the browser cache 32 can be updated in order to enable the mirror of the browser cache 32 to accurately reflect the contents of the browser cache 32 on the handheld electronic device 4 .
  • the API 60 is configured to provide to the browser routine 64 the name of the file 36 in the browser cache 32 that has undergone the change.
  • the API 60 also provides a notification of the type of change undergone by the file 36 of which the file name 40 has just been provided.
  • the various notifications include a CREATE notification, an UPDATE notification, a DELETE notification, and a RENAME notification indicating that a particular file has been created, updated, deleted, or renamed, respectively.
  • a RENAME notification typically two file names 40 are provided, i.e., the initial file name 40 of the file 36 , as well as a new name for the same file 36 .
  • the browser routine 64 is advantageously configured to obtain in other fashions the particular URL 48 of the file 36 in the browser cache 32 that has undergone the change.
  • FIG. 3 generally depicts an exemplary flowchart depicting certain aspects of the way in which the server 12 is able to have a substantially continuously updated mirror of the browser cache 32 that is stored on the handheld electronic device 4 .
  • the data table 68 is generated, as at 104 .
  • At least a portion of the data table 68 is then supplied, as at 108 , to the server 12 .
  • typically what is supplied to the server 12 is a hash of each URL 48 stored in the second objects 76 , along with the corresponding expiry date 52 .
  • the browser routine 64 receives from the API 60 a notification, as at 112 , that a certain file 36 has undergone a change. Specifically, the file name 40 of the file 36 that has undergone the change, as well as a notification type are provided to the browser routine 64 . As indicated above, the four exemplary types of notifications are CREATE, UPDATE, DELETE, and RENAME.
  • the browser routine 64 obtains, as at 128 , from the data table 68 the URL 48 that is associated with the received file name 40 . More specifically, the data table 68 is consulted to identify the first object 72 which has stored therein a file name 40 that is the same as the received file name 40 . The second object 76 associated therewith is consulted to obtain the URL 48 stored therein.
  • the URL 48 and other appropriate data are then supplied, as at 132 , to the server 12 .
  • the data table 68 is then updated, as at 136 , to reflect the change that was notified at 112 , assuming that the notification was not ignored at 124 .
  • a notification which is a DELETE notification will generally result in supplying to the server 12 a hash of the URL 48 of the deleted file 36 , along with a notification that the change was a DELETE.
  • the server 32 will previously have stored in its mirror of the browser cache 32 a hash of the URL 48 in the file 36 that is being deleted.
  • the server Upon receiving the update transmission, as at 132 , the server will delete from its mirror of the browser cache 32 the hash of the URL 48 of the deleted file 36 .
  • updated data such as an updated expiry date 52 typically will be supplied, as at 132 , to the server 12 .
  • updated data can be obtained in any of a variety of ways. Such updated data can even be obtained from the server 12 .
  • the browser routine 64 may make a request of the server 12 for a specific HTML document. After receiving the request, the server will obtain, such as from the network 8 , the requested HTML document.
  • the obtained HTML document may comprise one or more URLs, and the server 12 may determine from its mirror 12 of the browser cache 32 that the object available at a particular indicated URL is already stored on the handheld electronic device 4 as an object 44 in the browser cache 32 .
  • the server 12 may also determine that the expiry date 52 of the object 44 has been exceeded, i.e., the object 44 has expired.
  • the browser cache 32 may be configured to delete files 36 when the expiry date 52 of the object 44 stored therein has been exceeded.
  • the browser cache 32 may be configured such that the file 36 having stored therein an exceeded expiry date 52 is not necessarily deleted, but the object 44 stored therein is updated if requested after expiration of the expiry date 52 .
  • the server 12 might make the determination that the expiry date 52 of the object 44 has been exceeded by first creating a hash of the URL contained within the obtained HTML document. The server 12 will then identifying in its mirror of the browser cache 32 the matching URL hash, and determining whether the expiry date 52 that is associated with the identified matching URL hash has been exceeded.
  • the server 12 may make a new request of the object from the URL.
  • a header of the request may include an instruction to the URL that it provide the object stored at the URL only if the object has changed since being stored in the browser cache 32 . If it turns out that the object is not changed, the URL may simply return to the server 12 an updated expiry date.
  • the updated expiry date will then be transmitted to the handheld electronic device 4 , and the operating system 56 will store the received expiry date as an updated expiry date 52 in the corresponding file 40 .
  • Such an update will cause the API 60 to generate an UPDATE notification which will be received by the browser routine 64 , as at 112 .
  • the browser routine 64 supplies to the server 12 the URL 48 and appropriate additional data, part of the additional data will be the updated expiry date 52 that has already been stored in the file 36 within the browser cache 32 .
  • the server then would transmit to the handheld electronic device the updated object and updated expiry date, and these would both be saved in the file 36 , with the API 60 generating an UPDATE notification at 112 , and with the updated expiry date 52 being supplied, as at 132 to the server 12 .
  • processing continues to 144 where the browser routine 64 requests from the operating system 56 the name of a file 36 that comprises a URL 48 which was the subject of a recent request by the browser routine 64 . That is, during a browsing session the browser routine 64 makes a number of browser requests of the server 12 . The fact that a particular URL request was made by the browser routine 64 does not indicate whether or not a file 36 having the particular URL stored therein was recently added to the browser cache 32 since it is possible that the object 44 which would otherwise be available at the URL on the network was already stored in the browser cache 32 . However, the browser routine 64 maintains a list of recent URL requests. As such, at 144 the browser routine 64 requests of the operating system 56 the name of a file 36 having a particular URL 48 stored therein. The particular URL 48 typically will be the URL that was the subject of the most recent URL request by the browser routine 64 .
  • the operating system 56 may return a file name 40 or may return nothing. It is then determined, as at 148 , whether the returned file name 40 , if any, and the file name 40 that was generated as part of a notification at 112 are the same. If they are not the same, or if no file name was returned in response to the request at 144 regarding a particular URL, processing returns to 144 where additional requests are made for additional URLs that were the subject of recent URL requests.
  • the URLs employed in the requests at 144 typically will be made in reverse chronological order, i.e., the most recent URL will be the subject of the first request at 144 , and if the result at 148 is “no”, a successive request at 144 will be made with respect to the URL that was next most recently requested by the browser routine 64 , and so forth.
  • the operating system 56 will return a file name 40 that matches the file name 40 that was generated as part of the notification at 112 .
  • a hash of the URL that was the subject of the successful request is supplied, as at 132 , to the server 12 .
  • the data table 68 is then updated, as at 136 .
  • the API 60 is capable of generating numerous notifications that may be in excess of what is necessarily or desirably handled by the routines on the handheld electronic device 4 .
  • the API 60 may generate numerous notifications in response to a single event.
  • an updating operation on the handheld electronic device 4 may generate five separate notifications as follows:
  • the device may create a new file, thus resulting in a CREATE notification
  • the device may update the new file by writing into the new file the contents of an old file, thus generating an UPDATE notification
  • the device may append any changes, i.e., edit, the new file, thus resulting in an UPDATE notification;
  • the device may delete the old file, thus resulting in a DELETE notification
  • the device may rename the new file to have the name of the old file and to have the attributes of the old file, thus resulting in a RENAME notification.
  • the notifications generated by the API 60 are advantageously subjected to one or more predetermined criteria or algorithms to determine whether or not one or more of the notifications can be ignored. It is noted that the various predetermined criteria, i.e., algorithms, likely will be specific to a given routine on the handheld electronic device 4 . That is, what may be an unnecessary or irrelevant notification to one routine might be relevant or desirably noted by another routine.
  • the browser routine 64 is provided herein as an exemplary routine to which certain notifications generated by the API 60 may desirably be ignored. It is reiterated that certain of the algorithms may be usable in conjunction with other routines than the browser routine 64 , and that other algorithms may be unusable with routines other than the browser routine 64 . Also, other routines may have other predetermined criteria or algorithms for use in determining whether certain of the notifications can be ignored by the routines.
  • One of the predetermined criteria is to determine whether or not a notification relates to a particular type of file. For instance, a certain routine may find relevant only those notifications that relate to a file having a suffix “.txt”. As is mentioned above, the API 60 may generate a number of notifications that each comprise the type of notification, i.e., CREATE, UPDATE, DELETE, or RENAME, as well as the file name 40 of a file 36 that was the subject of the notification. If the particular routine finds relevant only those particular notifications that relate to a “.txt” file, any notification that relates to a file that is of a type other than a “.txt” file will be ignored.
  • the type of notification i.e., CREATE, UPDATE, DELETE, or RENAME
  • a RENAME notification from a file type that the particular routine does not consider relevant into a file name that the routine does consider to be relevant will be ignored and instead treated as a CREATE notification of the file name that the routine considers to be relevant.
  • a RENAME notification of a file 36 from filename.tmp to filename.txt will be treated as a CREATE notification of filename.txt.
  • a RENAME notification from a file type that the particular routine considers to be relevant into a file name that the routine does not consider to be relevant will be ignored and instead treated as a DELETE notification of the file name that the routine considers to be relevant.
  • ignoring a notification can occur in two fashions. In the first fashion, ignoring a notification can simply mean paying no attention to the notification, with no subsequent action. The other fashion of ignoring a notification can occur by paying no attention to the notification that was received, and rather treating the notification as a different notification.
  • the different notification can be of a different type and/or can be as to a different file.
  • Notifications typically are received from the API 60 as a sequence, i.e., a plurality of notifications are sequentially received from the API 60 .
  • the exemplary browser routine 64 may initiate analysis of the notifications, i.e., for the purpose of potentially ignoring certain of the notifications, in response to any of a variety of events.
  • the browser routine 64 might employ a timer which is reset upon each receipt of a notification.
  • the timer may be set to a particular period of time, i.e., a period of two seconds, or another appropriate time period. If the timer expires without detecting another notification from the API 60 , the analysis of the series of notifications may be initiated.
  • notifications may be identified as being in discrete “bunches” which are analyzed together. Other triggering events can be envisioned.
  • each notification is analyzed as being a “current” notification and is analyzed in the context of a “following” notification in the sequence. That is, notifications are analyzed in pairs.
  • the “following” notification is a sequentially next notification immediately following the “current” notification, but it is noted that the “following” notification could, in appropriate circumstances, be sequentially later than the immediately next notification after the “current” notification.
  • both notifications may be kept, i.e., not ignored. This may be based, at least in part, upon the unlikelihood of detecting from the API 60 such a pair of notifications. Table 1 thus suggests that if such an unlikely pair of notifications is detected, the notifications are not ignored. As an alternative, another routine might choose to ignore both notifications in such a circumstance.
  • a DELETE notification as to a particular file is followed by a RENAME notification renaming another file to the name of the particular file, such notifications are replaced with a DELETE notification as to the another file and an UPDATE notification as to the particular file.
  • the two original notifications are ignored, and are treated as two different notifications.
  • the two notifications could be treated as a DELETE notification as to the another file and a CREATE notification as to the particular file.
  • the two different notifications can then be analyzed in the context of the other notifications in the sequence of notifications being analyzed in order to possibly ignore one or more of these notifications or other notifications in the series.
  • a RENAME of one file to the name of another file which is followed by a CREATE, an UPDATE, or a DELETE notification as to the another file will result in neither notification being ignored. In other embodiments, however, one or more of such notifications could potentially be ignored, depending upon the needs of the routine.
  • a sequence of notifications to be analyzed may be as follows:
  • Table 1 indicates that an UPDATE notification followed by a DELETE notification as to the same file results in both notifications being kept. If the aforementioned DELETE notification is now considered a “current” notification and is analyzed in the context of the subsequent CREATE notification being a “following” notification, Table 1 indicates' that a DELETE notification that is preceded by an UPDATE notification and followed by a CREATE notification as to the same file name, will result in the DELETE and the following CREATE notifications both being ignored.
  • the next “current” notification to be analyzed will be the most immediately preceding notification that has not yet been ignored.
  • the first UPDATE notification will again be considered as a “current” notification, and will be considered to be followed by the second UPDATE notification.
  • Table 1 indicates that an UPDATE notification followed by another UPDATE notification as to the same file will result in the second UPDATE notification being ignored.
  • the browser routine 64 listens, as at 204 , for notifications from the API 60 . It is determined, as at 208 , whether or not a notification was received. If a notification was received, the timer is reset, as at 212 , and processing returns to 204 where the browser routine 64 listens for further notifications. If at 208 it is determined that no notification was received in the preceding listening operation at 204 , it is then determined, as at 216 , whether or not the timer has expired. If not, processing returns to 204 where further listening occurs.
  • processing continues to 220 whether it is determined whether or not any of the notifications meet any of the predetermined criteria, i.e., the criteria that are predetermined for the routine performing the listening at 204 or for which the notifications are being detected. If no notifications meet the predetermined criteria, the notifications are acted upon, as at 224 . Such notifications may be acted upon by being stored, by initiating other processing, or in other fashions.
  • the predetermined criteria i.e., the criteria that are predetermined for the routine performing the listening at 204 or for which the notifications are being detected. If no notifications meet the predetermined criteria, the notifications are acted upon, as at 224 .
  • Such notifications may be acted upon by being stored, by initiating other processing, or in other fashions.
  • processing continues at 228 where certain of the notifications are ignored and, as appropriate, may be treated as being different notifications. Processing thereafter continues at 224 where the remaining notifications are acted upon.

Abstract

An improved handheld electronic device includes an Application Programming Interface (API) that generates various notifications in certain circumstances. The handheld electronic device provides an improved method of employing the notifications to enable another device to reflect a change to a browser cache on the handheld electronic device.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application is a continuation of application Ser. No. 11/414,785 filed on Apr. 28, 2006, the contents of which are hereby incorporated herein by reference.
  • BACKGROUND
  • 1. Technical Field
  • The disclosed and claimed concept relates generally to handheld electronic devices and, more particularly, to a method of reflecting on another device a change to a browser cache on a handheld electronic device.
  • 2. Description of the Related Art
  • Numerous types of handheld electronic devices are known. Examples of handheld electronic devices include, for instance, personal data assistants (PDAs), handheld computers, two-way pagers, cellular telephones, and the like. Many handheld electronic devices also feature a wireless communication capability, although many such handheld electronic devices are stand-alone devices that are functional without communication with other devices.
  • Some handheld electronic devices that are sold with certain software resident thereon and are configured to allow additional software developed by third parties to be installed and executed on the electronic handheld device. In order to facilitate the use of such third-party software, the manufacturer of the device may sell the device with original software that is sufficiently versatile to enable cooperation between the original software and third-party software. Such third-party software may be provided on the device when originally provided to a consumer, or may be added after purchase. While such handheld electronic devices and software have been generally effective for their intended purposes, such handheld electronic devices have not been without limitation.
  • For instance, the original software provided by a manufacturer may be configured to be so versatile as to be somewhat burdensome to use. For example, the original software may provide a routine such as an Application Programming Interface (API) that third-party software can employ to receive notifications in response to certain events on the handheld electronic device. Due to the intended versatility of the original software, the original software may provide many more notifications than are needed or are usable by the third-party software. The processing of so many unnecessary notifications undesirably adds processing overhead and consumes both processing and power resources. Moreover, despite their versatility, such APIs may still provide fewer than all of the functions that might be desirable for use with certain third-party software. For instance, the API may provide certain notifications, but such notifications may provide less than all of the data that would be desirable for proper operation of the third-party software.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A further understanding of the disclosed and claimed concept can be obtained from the following Description when read in conjunction with the accompanying drawings in which:
  • FIG. 1 is a schematic depiction of an improved handheld electronic device in accordance with the disclosed and claimed concept in communication with a network;
  • FIG. 2 is a schematic depiction of a portion of a memory on the handheld electronic device of FIG. 1;
  • FIG. 3 is an exemplary flowchart of at least a portion of an improved method that can be performed on the improved handheld electronic device of FIG. 1; and
  • FIG. 4 is an exemplary flowchart of at least a portion of another method that can be performed on the improved handheld electronic device of FIG. 1.
  • Similar numerals refer to similar parts throughout the specification.
  • DESCRIPTION
  • An improved handheld electronic device 4 is depicted schematically in FIG. 1 as being in communication with a network 8. The exemplary network 8 enables communication between it and the handheld electronic device 4 via an antenna 10 that is connected through the network 8 with a server 12. The exemplary network 8 communicates wirelessly with the handheld electronic device 4, although it is understood that the network 8 could have a wired connection with the handheld electronic device 4 without departing from the present concept.
  • The exemplary handheld electronic device 4 comprises an input apparatus 16, a processor apparatus 20, and an output apparatus 24. The processor apparatus 20 is configured to process input received from the input apparatus 16 and to provide output to the output apparatus 24.
  • The processor apparatus 20 comprises a processor and a memory 28. While not expressly depicted herein, it is understood that the processor could be any of a wide variety of processors, such as a microprocessor (μP) that is responsive to input from the input apparatus 16, that provides output to the output apparatus 24, and that interfaces with the memory 28.
  • The memory 28 is depicted schematically in FIG. 2. The memory 28 can be any of a variety of types of internal and/or external storage media such as, without limitation, RAM, ROM, EPROM(s), EEPROM(s), and the like that provide a storage register for data such as in the fashion of an internal storage area of a computer, and can be volatile memory or nonvolatile memory. The memory 28 additionally includes a number of routines stored therein that are executable on the processor, as will be set forth below in greater detail. As employed herein the expression “a number of” and variations thereof shall refer broadly to any nonzero quantity, including a quantity of one. The routines can be in any of a variety of forms such as, without limitation, software, firmware, and the like.
  • The memory 28 comprises a browser cache 32 having a number of files 36 stored therein within a directory structure. Each file 36 in the browser cache 32 has a file name 40 and has stored therein, for example, an object 44, a location from where the object 44 was obtained, such as a Uniform Resource Locator (URL) 48, and an expiry date 52 for the object 44. Additional relevant information may be stored in each file without departing from the present concept.
  • The memory 28 additionally has stored therein an operating system 56, an API 60, and a browser routine 64, among other routines as mentioned above. As is understood in the relevant art, the browser routine 64 is operable to obtain and process various items such as HyperText Markup Language (HTML) documents. A given HTML document may comprise, for example, text, and may additionally comprise descriptions of locations where additional objects may be obtained and which are to be inserted into the text. Exemplary objects that are insertable into text would include images, executable code such as JavaScript, and other objects. If an HTML document that is being processed by the browser routine 64 comprises one or more locations, the objects stored at such locations must be obtained in one fashion or another for inclusion in the output that results from the such processing of the HTML document. The locations may, for example, be URLs on a network such as the Internet.
  • In order to reduce communication bandwidth, such as a bandwidth of the wireless communication enabled between the handheld electronic device 4 and the network 8, certain of the needed objects may be stored, i.e., saved, in the browser cache 32 as objects 44 stored within the files 36. For example, if an HTML document being processed by the browser routine 64 comprises a location such as a URL 48 in one of the files 36, and if the expiry date 52 of the object 44 in the file 36 has not been exceeded, the object 44 stored in the file 36 is retrieved from within the browser cache 32 and is provided to the browser routine 64 for inclusion in the HTML document. In such a fashion, the amount of communication traffic between handheld electronic device 4 and the network 8 can be reduced.
  • One exemplary implementation of such a browser cache 32 on the handheld electronic device 4 would additionally include storing on the server 12 or otherwise making available to the server 12 a mirror of the browser cache 32. For example, if the network 8 receives a request from the browser routine 64 for a particular HTML document that may be obtainable from the network 8, the server 12 may analyze the obtained HTML document and determine whether or not it includes one or more URLs from which may be obtained objects that should be included in the HTML document. The server 12 may determine from its mirror of the browser cache 32 whether or not the object which is available at a given URL might already be stored in the browser cache 32. If the object is not already stored in the browser cache 32, the server 12 will request the object from the URL and will send the object to the handheld electronic device 4, typically in conjunction with the sending of the HTML document from the server 12 to the handheld electronic device 4. On the other hand, if the object from the indicated URL is already available in an unexpired condition in the browser cache 32, the object is not at that time requested from the URL. In accordance with the disclosed and claimed concept, the mirror of the browser cache 32 is advantageously updated whenever the browser cache 32 changes.
  • Whenever a browser session is initiated, a data table 68, such as is depicted generally in FIG. 2, is generated and is stored in the memory 28. The data table 68 includes a number of first objects 72 and a number of second objects 76 stored therein. Each first object 72 comprises a file name 40, which is the file name 40 of a file 36 in the browser cache 32. Each first object 72 has associated therewith a second object 76 that comprises the location, i.e., the URL 48 in the present example, of the same file 36. In the depicted exemplary implementation, the file names 40 are each stored in the first objects 72 as a hash of the file name 40 in order to reduce storage requirements and to facilitate processing.
  • After the data table 68 has been created, a hash of each URL 48 in the second objects 76 is provided to the server 12 to create on the server 12 the mirror of the browser cache 32. It may additionally be desirable to provide, in conjunction with each hash of a URL 48, the expiry date 52 of the object 44 that was obtained from the same URL 48, as is stored in one of the files 36.
  • Whenever the contents of the browser cache 32 undergo a change, the change is advantageously communicated to the server 12 so that the mirror on the server 12 of the browser cache 32 can be updated in order to enable the mirror of the browser cache 32 to accurately reflect the contents of the browser cache 32 on the handheld electronic device 4. In response to a change in the browser cache 32, the API 60 is configured to provide to the browser routine 64 the name of the file 36 in the browser cache 32 that has undergone the change. The API 60 also provides a notification of the type of change undergone by the file 36 of which the file name 40 has just been provided. The various notifications include a CREATE notification, an UPDATE notification, a DELETE notification, and a RENAME notification indicating that a particular file has been created, updated, deleted, or renamed, respectively. In the case of a RENAME notification, typically two file names 40 are provided, i.e., the initial file name 40 of the file 36, as well as a new name for the same file 36.
  • It is noted, however, that merely providing the file name 40 of the file 36 that has undergone a change does not itself provide the URL 48 of the same file 36, and such URL 48 cannot be obtained directly from the operating system 56 or the API 60. The browser routine 64 is advantageously configured to obtain in other fashions the particular URL 48 of the file 36 in the browser cache 32 that has undergone the change.
  • FIG. 3 generally depicts an exemplary flowchart depicting certain aspects of the way in which the server 12 is able to have a substantially continuously updated mirror of the browser cache 32 that is stored on the handheld electronic device 4. As indicated above, upon initiation of a browser session by the browser routine 64, the data table 68 is generated, as at 104. At least a portion of the data table 68 is then supplied, as at 108, to the server 12. As indicated above, typically what is supplied to the server 12 is a hash of each URL 48 stored in the second objects 76, along with the corresponding expiry date 52.
  • The browser routine 64 receives from the API 60 a notification, as at 112, that a certain file 36 has undergone a change. Specifically, the file name 40 of the file 36 that has undergone the change, as well as a notification type are provided to the browser routine 64. As indicated above, the four exemplary types of notifications are CREATE, UPDATE, DELETE, and RENAME.
  • It is then determined, as at 116, whether the notification was a CREATE notification. If not, it is then determined, as at 120, whether the notification was a DELETE notification or an UPDATE notification. If not, the notification is ignored, as at 124. However, if it was determined at 120 that the notification was either DELETE or UPDATE, the browser routine 64 obtains, as at 128, from the data table 68 the URL 48 that is associated with the received file name 40. More specifically, the data table 68 is consulted to identify the first object 72 which has stored therein a file name 40 that is the same as the received file name 40. The second object 76 associated therewith is consulted to obtain the URL 48 stored therein. The URL 48 and other appropriate data are then supplied, as at 132, to the server 12. The data table 68 is then updated, as at 136, to reflect the change that was notified at 112, assuming that the notification was not ignored at 124.
  • With more particular regard to the additional data that can be supplied, as at 132, to the server, it is noted that a notification which is a DELETE notification will generally result in supplying to the server 12 a hash of the URL 48 of the deleted file 36, along with a notification that the change was a DELETE. The server 32 will previously have stored in its mirror of the browser cache 32 a hash of the URL 48 in the file 36 that is being deleted. Upon receiving the update transmission, as at 132, the server will delete from its mirror of the browser cache 32 the hash of the URL 48 of the deleted file 36.
  • However, if the notification received at 112 was an UPDATE notification, updated data such as an updated expiry date 52 typically will be supplied, as at 132, to the server 12. Such updated data can be obtained in any of a variety of ways. Such updated data can even be obtained from the server 12.
  • For instance, the browser routine 64 may make a request of the server 12 for a specific HTML document. After receiving the request, the server will obtain, such as from the network 8, the requested HTML document. The obtained HTML document may comprise one or more URLs, and the server 12 may determine from its mirror 12 of the browser cache 32 that the object available at a particular indicated URL is already stored on the handheld electronic device 4 as an object 44 in the browser cache 32. However, the server 12 may also determine that the expiry date 52 of the object 44 has been exceeded, i.e., the object 44 has expired. In this regard, the browser cache 32 may be configured to delete files 36 when the expiry date 52 of the object 44 stored therein has been exceeded. On the other hand, however, the browser cache 32 may be configured such that the file 36 having stored therein an exceeded expiry date 52 is not necessarily deleted, but the object 44 stored therein is updated if requested after expiration of the expiry date 52.
  • The server 12 might make the determination that the expiry date 52 of the object 44 has been exceeded by first creating a hash of the URL contained within the obtained HTML document. The server 12 will then identifying in its mirror of the browser cache 32 the matching URL hash, and determining whether the expiry date 52 that is associated with the identified matching URL hash has been exceeded.
  • If the server 12 determines that the expiry date 52 of an object 44 stored in the browser cache 32 has been exceeded, the server 12 may make a new request of the object from the URL. A header of the request may include an instruction to the URL that it provide the object stored at the URL only if the object has changed since being stored in the browser cache 32. If it turns out that the object is not changed, the URL may simply return to the server 12 an updated expiry date.
  • The updated expiry date will then be transmitted to the handheld electronic device 4, and the operating system 56 will store the received expiry date as an updated expiry date 52 in the corresponding file 40. Such an update will cause the API 60 to generate an UPDATE notification which will be received by the browser routine 64, as at 112. As such, when at 132 the browser routine 64 supplies to the server 12 the URL 48 and appropriate additional data, part of the additional data will be the updated expiry date 52 that has already been stored in the file 36 within the browser cache 32.
  • If the URL returns to the server 12 a different object than is stored in the browser cache 32, the same URL will likely additionally provide an updated expiry date. The server then would transmit to the handheld electronic device the updated object and updated expiry date, and these would both be saved in the file 36, with the API 60 generating an UPDATE notification at 112, and with the updated expiry date 52 being supplied, as at 132 to the server 12.
  • If at 116 it is determined that the notification was a CREATE notification, processing continues to 144 where the browser routine 64 requests from the operating system 56 the name of a file 36 that comprises a URL 48 which was the subject of a recent request by the browser routine 64. That is, during a browsing session the browser routine 64 makes a number of browser requests of the server 12. The fact that a particular URL request was made by the browser routine 64 does not indicate whether or not a file 36 having the particular URL stored therein was recently added to the browser cache 32 since it is possible that the object 44 which would otherwise be available at the URL on the network was already stored in the browser cache 32. However, the browser routine 64 maintains a list of recent URL requests. As such, at 144 the browser routine 64 requests of the operating system 56 the name of a file 36 having a particular URL 48 stored therein. The particular URL 48 typically will be the URL that was the subject of the most recent URL request by the browser routine 64.
  • In response to the request at 144, the operating system 56 may return a file name 40 or may return nothing. It is then determined, as at 148, whether the returned file name 40, if any, and the file name 40 that was generated as part of a notification at 112 are the same. If they are not the same, or if no file name was returned in response to the request at 144 regarding a particular URL, processing returns to 144 where additional requests are made for additional URLs that were the subject of recent URL requests. In this regard, the URLs employed in the requests at 144 typically will be made in reverse chronological order, i.e., the most recent URL will be the subject of the first request at 144, and if the result at 148 is “no”, a successive request at 144 will be made with respect to the URL that was next most recently requested by the browser routine 64, and so forth.
  • In response to one of the requests at 144, the operating system 56 will return a file name 40 that matches the file name 40 that was generated as part of the notification at 112. In such a circumstance, a hash of the URL that was the subject of the successful request is supplied, as at 132, to the server 12. The data table 68 is then updated, as at 136.
  • As a general matter, the API 60 is capable of generating numerous notifications that may be in excess of what is necessarily or desirably handled by the routines on the handheld electronic device 4. For instance, the API 60 may generate numerous notifications in response to a single event. By way of example, it is noted that an updating operation on the handheld electronic device 4 may generate five separate notifications as follows:
  • 1) the device may create a new file, thus resulting in a CREATE notification;
  • 2) the device may update the new file by writing into the new file the contents of an old file, thus generating an UPDATE notification;
  • 3) the device may append any changes, i.e., edit, the new file, thus resulting in an UPDATE notification;
  • 4) the device may delete the old file, thus resulting in a DELETE notification; and
  • 5) the device may rename the new file to have the name of the old file and to have the attributes of the old file, thus resulting in a RENAME notification.
  • In essence, the only meaningful change to the browser cache 32 was the updating of the old file, but the way in which the updating occurred resulted in the generation of five notifications, only one of which is particularly meaningful, such as to the browser routine 64. On the other hand, a routine other than the browser routine 64 might find more than one of the five notifications to be useful or relevant.
  • In accordance with the disclosed and claimed concept, the notifications generated by the API 60 are advantageously subjected to one or more predetermined criteria or algorithms to determine whether or not one or more of the notifications can be ignored. It is noted that the various predetermined criteria, i.e., algorithms, likely will be specific to a given routine on the handheld electronic device 4. That is, what may be an unnecessary or irrelevant notification to one routine might be relevant or desirably noted by another routine.
  • The browser routine 64 is provided herein as an exemplary routine to which certain notifications generated by the API 60 may desirably be ignored. It is reiterated that certain of the algorithms may be usable in conjunction with other routines than the browser routine 64, and that other algorithms may be unusable with routines other than the browser routine 64. Also, other routines may have other predetermined criteria or algorithms for use in determining whether certain of the notifications can be ignored by the routines.
  • One of the predetermined criteria, i.e., one algorithm, is to determine whether or not a notification relates to a particular type of file. For instance, a certain routine may find relevant only those notifications that relate to a file having a suffix “.txt”. As is mentioned above, the API 60 may generate a number of notifications that each comprise the type of notification, i.e., CREATE, UPDATE, DELETE, or RENAME, as well as the file name 40 of a file 36 that was the subject of the notification. If the particular routine finds relevant only those particular notifications that relate to a “.txt” file, any notification that relates to a file that is of a type other than a “.txt” file will be ignored.
  • However, a RENAME notification from a file type that the particular routine does not consider relevant into a file name that the routine does consider to be relevant will be ignored and instead treated as a CREATE notification of the file name that the routine considers to be relevant. For instance, a RENAME notification of a file 36 from filename.tmp to filename.txt will be treated as a CREATE notification of filename.txt. Similarly, a RENAME notification from a file type that the particular routine considers to be relevant into a file name that the routine does not consider to be relevant will be ignored and instead treated as a DELETE notification of the file name that the routine considers to be relevant.
  • It is noted that ignoring a notification can occur in two fashions. In the first fashion, ignoring a notification can simply mean paying no attention to the notification, with no subsequent action. The other fashion of ignoring a notification can occur by paying no attention to the notification that was received, and rather treating the notification as a different notification. The different notification can be of a different type and/or can be as to a different file.
  • Notifications typically are received from the API 60 as a sequence, i.e., a plurality of notifications are sequentially received from the API 60. The exemplary browser routine 64 may initiate analysis of the notifications, i.e., for the purpose of potentially ignoring certain of the notifications, in response to any of a variety of events. For instance, the browser routine 64 might employ a timer which is reset upon each receipt of a notification. The timer may be set to a particular period of time, i.e., a period of two seconds, or another appropriate time period. If the timer expires without detecting another notification from the API 60, the analysis of the series of notifications may be initiated. On the other hand, notifications may be identified as being in discrete “bunches” which are analyzed together. Other triggering events can be envisioned.
  • It is noted, however, that an analysis of a relatively greater number of notifications will have a more appropriate result than an analysis of a relatively lesser number of notifications. This is due, at least in part, to the nature of the analysis. As a general matter, each notification is analyzed as being a “current” notification and is analyzed in the context of a “following” notification in the sequence. That is, notifications are analyzed in pairs. In the examples set forth herein, the “following” notification is a sequentially next notification immediately following the “current” notification, but it is noted that the “following” notification could, in appropriate circumstances, be sequentially later than the immediately next notification after the “current” notification.
  • An exemplary set of criteria, i.e., algorithms, are set forth in the accompanying Table 1 below:
  • TABLE 1
    “Following” Notification
    RENAME from
    CREATE file UPDATE file DELETE file “filename2.txt” to
    “filename1.txt” “filename1.txt” “filename1.txt” “filename1.txt”
    “Current” CREATE file Ignore the CREATE Ignore the Keep both Keep both CREATE
    Notification “filename1.txt” notification of UPDATE CREATE and and RENAME
    “filename1.txt” notification DELETE notifications
    notifications
    UPDATE file Ignore the CREATE Ignore the Keep both Keep both UPDATE
    “filename1.txt” notification of UPDATE UPDATE and and RENAME
    “filename1.txt” notification DELETE notifications
    notifications
    DELETE file If the notification before Keep both Ignore one Replace these 2
    “filename1.txt” the DELETE was a DELETE and DELETE notifications with:
    CREATE or UPDATE, UPDATE notification DELETE filename2.txt
    then, ignore this notifications and UPDATE
    DELETE and CREATE filename1.txt
    of “filename1.txt”.
    Otherwise, replace
    these 2 notifications
    with an UPDATE
    notification for
    “filename1.txt”.
    RENAME from Keep both RENAME Keep both Keep both Ignore one RENAME
    “filename2.txt” and CREATE RENAME and RENAME and notification
    to notifications UPDATE DELETE
    “filename1.txt” notifications notifications
  • As can be seen from Table 1, if either a CREATE notifications or an UPDATE notification (as a “current” notification) is followed by either a CREATE notification or an UPDATE notification (as a “following” notification) as to the same file, the “following” notification is ignored. For other routines, i.e., other embodiments, the algorithm might be to ignore either the “current” notification or the “following” notification, and to treat the non-ignored notification as an UPDATE notification.
  • As can further be seen from Table 1, if either a CREATE notification or an UPDATE notification is followed by either a DELETE notification or a RENAME notification that indicates a deletion of the same file or a renaming of another file to the same file, both notifications may be kept, i.e., not ignored. This may be based, at least in part, upon the unlikelihood of detecting from the API 60 such a pair of notifications. Table 1 thus suggests that if such an unlikely pair of notifications is detected, the notifications are not ignored. As an alternative, another routine might choose to ignore both notifications in such a circumstance.
  • If two sequentially consecutive notifications are precisely the same, i.e., of the same nature and as to the same file, another algorithm might be to ignore one of the two notifications. With other routines, however, possibly neither notification is ignored due to the unlikeliness of receiving such a pair of notifications.
  • In the circumstance of a DELETE notification followed by a CREATE notification as to the same file, it is determined whether or not the notification that preceded the DELETE notification was either a CREATE notification or an UPDATE notification. If so, the current DELETE and the following CREATE notifications are ignored. However, if the notification preceding the DELETE notification was neither a CREATE nor an UPDATE notification, the current DELETE notification and the following CREATE notification are ignored and are treated as a single UPDATE notification as to the same file. For other routines, the same result can be obtained when the current DELETE notification is followed by an UPDATE notification rather than the aforementioned CREATE notification.
  • As can further be seen from Table 1, if a DELETE notification as to a particular file is followed by a RENAME notification renaming another file to the name of the particular file, such notifications are replaced with a DELETE notification as to the another file and an UPDATE notification as to the particular file. In effect, the two original notifications are ignored, and are treated as two different notifications. Alternatively, the two notifications could be treated as a DELETE notification as to the another file and a CREATE notification as to the particular file. The two different notifications can then be analyzed in the context of the other notifications in the sequence of notifications being analyzed in order to possibly ignore one or more of these notifications or other notifications in the series.
  • As can further be seen from Table 1, a RENAME of one file to the name of another file which is followed by a CREATE, an UPDATE, or a DELETE notification as to the another file will result in neither notification being ignored. In other embodiments, however, one or more of such notifications could potentially be ignored, depending upon the needs of the routine.
  • As an example, a sequence of notifications to be analyzed may be as follows:
  • CREATE filename.tmp
    UPDATE filename.tmp
    UPDATE filename.tmp
    UPDATE filename.tmp
    UPDATE filename.txt
    DELETE filename.txt
    RENAME filename.tmp to filename.txt
    UPDATE filename.txt.
  • As a first step we may ignore the notifications for files of a type about which the browser routine 64 is not concerned. For example, all notifications relating to a file name other than a “.txt” file will be ignored. However, the RENAME notification from filename.tmp to filename.txt will be treated as a CREATE notification of filename.txt. This leaves the following:
  • UPDATE filename.txt
    DELETE filename.txt
    CREATE filename.txt
    UPDATE filename.txt.
  • When the first two notifications are considered as a “current” and a “following” notification, Table 1 indicates that an UPDATE notification followed by a DELETE notification as to the same file results in both notifications being kept. If the aforementioned DELETE notification is now considered a “current” notification and is analyzed in the context of the subsequent CREATE notification being a “following” notification, Table 1 indicates' that a DELETE notification that is preceded by an UPDATE notification and followed by a CREATE notification as to the same file name, will result in the DELETE and the following CREATE notifications both being ignored.
  • In the circumstance of a “following” notification being ignored, the next “current” notification to be analyzed will be the most immediately preceding notification that has not yet been ignored. Thus, the first UPDATE notification will again be considered as a “current” notification, and will be considered to be followed by the second UPDATE notification. Table 1 indicates that an UPDATE notification followed by another UPDATE notification as to the same file will result in the second UPDATE notification being ignored.
  • In the context of the exemplary browser routine 64, therefore, seven of the eight notifications in the exemplary notification sequence above were ignored. As a result, the method indicated for example by the flowchart in FIG. 3 would need to be executed only once, i.e., for the sole remaining UPDATE notification, rather than executing the same routine eight separate times. This advantageously saves executing and power resources.
  • Such a method is depicted generally in the exemplary flowchart of FIG. 4. For instance, the browser routine 64 listens, as at 204, for notifications from the API 60. It is determined, as at 208, whether or not a notification was received. If a notification was received, the timer is reset, as at 212, and processing returns to 204 where the browser routine 64 listens for further notifications. If at 208 it is determined that no notification was received in the preceding listening operation at 204, it is then determined, as at 216, whether or not the timer has expired. If not, processing returns to 204 where further listening occurs.
  • In this regard, it can be understood that the exemplary steps 204, 208, 212, and 216 form a loop that is repeated at certain intervals, perhaps as often as the processor can execute the loop. Once the timer has expired without having received an additional notification, processing continues to 220 whether it is determined whether or not any of the notifications meet any of the predetermined criteria, i.e., the criteria that are predetermined for the routine performing the listening at 204 or for which the notifications are being detected. If no notifications meet the predetermined criteria, the notifications are acted upon, as at 224. Such notifications may be acted upon by being stored, by initiating other processing, or in other fashions.
  • If, however, at 220 it is determined that some of the notifications meet one or more of the predetermined criteria, processing continues at 228 where certain of the notifications are ignored and, as appropriate, may be treated as being different notifications. Processing thereafter continues at 224 where the remaining notifications are acted upon.
  • With further regard to the operations at 220, it is understood that any of a variety of criteria, i.e., algorithms, can be employed depending upon the needs of the particular routine in question. As such, algorithms in addition to those set forth herein can be employed without departing from the present concept.
  • While specific embodiments of the disclosed and claimed concept have been described in detail, it will be appreciated by those skilled in the art that various modifications and alternatives to those details could be developed in light of the overall teachings of the disclosure. Accordingly, the particular arrangements disclosed are meant to be illustrative only and not limiting as to the scope of the disclosed and claimed concept which is to be given the full breadth of the claims appended and any and all equivalents thereof.

Claims (20)

1. At a server of mobile communications devices, a method of servicing requests for HTML documents, said HTML documents containing a plurality of HTML objects, from mobile communications devices, said method comprising:
upon initiation of a browser session at a given mobile communications device served by said server, receiving at least a portion of a copy of a mobile data table stored on said given mobile communications device, said mobile data table comprising (i) a filename of an HTML object, (ii) an associated URL of a location from which said associated HTML object was obtained, and (iii) an associated expiry date, so as to indicate the contents of a browser cache of HTML objects at said mobile communications device;
reflecting said mobile data table in a server data table for said given mobile communications device;
thereafter, receiving updates from said given mobile communications device of changes to said browser cache such that said server data table is maintained as a mirror of said mobile data table;
upon receiving a request for an HTML document from said given mobile communications device, determining from said server data table whether HTML objects contained in said requested HTML document are present in said browser cache; and
sending a copy of a particular HTML object to said given mobile communications device when said determining determines that said particular HTML object is not present in said browser cache; and
sending an update to said given mobile communications device when said determining determines that said particular HTML object is present in said browser cache in an expired state.
2. The method of claim 1 wherein said sending an update to said given mobile communications device comprises requesting a new copy of said particular HTML object from a location indicated by an associated URL stored in said server data table for said HTML object only if said particular HTML object has changed since a given time wherein said given time is indicated by an associated expiry date of said particular HTML object stored in said server data table.
3. The method of claim 2 further comprising sending an updated expiry date of said particular HTML object to said given mobile data communications device when said HTML object has not changed.
4. The method of claim 2 further comprising sending (i) said new copy of said particular HTML object to said given mobile data communications device when said HTML object has changed, and (ii) an expiry date of said new HTML object.
5. The method of claim 1 wherein said receiving updates comprises receiving from said given mobile communications device (i) a CREATE notification and (ii) at least a representation of a URL associated with said created HTML object.
6. The method of claim 1 wherein said receiving updates comprises receiving from said given mobile communications device (i) a DELETE notification for a particular HTML object and (ii) at least a representation of a URL associated with said deleted HTML object.
7. The method of claim 1 wherein said receiving updates comprises receiving from said given mobile communications device (i) a RENAME notification for a particular HTML object and (ii) an indicator of the new name of said renamed particular HTML object.
8. A method of processing HTML documents at a mobile communications device during a browser session, said browser session including communication with a server servicing requests from said mobile communications device for HTML documents, said method comprising:
maintaining a browser cache of HTML documents at said mobile communications device;
maintaining a mobile data table at said mobile communications device comprising a plurality of records, each record comprising (i) a filename of an HTML object in said browser cache, (ii) an associated URL of a location from which said associated HTML object was obtained, and (iii) an associated expiry date;
upon initiation of said browser session providing at least a portion of a copy of said mobile data table to said server;
detecting that a particular HTML object in said browser cache has undergone a change;
responsive to said detecting, sending an update to said server, said update comprising a filename of said particular HTML object and an indicator of the nature of said change,
whereby said mobile data table is mirrored at said server.
9. The method of claim 8 wherein said detecting comprises detecting that said particular HTML object has been deleted and wherein said method further comprises deleting the mobile data table record associated with said HTML object.
10. The method of claim 9 wherein said sending an update to said server comprises sending at least a representation of a URL associated with said deleted HTML object and a DELETE indicator.
11. The method of claim 10 wherein said representation of a URL is a hash representation of said URL.
12. The method of claim 8 wherein said detecting comprises detecting that said particular HTML object has been updated and wherein said method further comprises updating the mobile data table record associated with said HTML object with an updated expiry date.
13. The method of claim 12 wherein said sending an update to said server comprises sending at least a representation of a URL associated with said updated HTML object, an UPDATE indicator and an expiry date.
14. The method of claim 12 wherein said detecting that said particular HTML object has been updated comprises receiving an UPDATE notification from said server.
15. The method of claim 13 wherein said representation of a URL is a hash representation of said URL.
16. The method of claim 8 wherein said detecting comprises detecting that said particular HTML object has been renamed and wherein said method further comprises updating the mobile data table record associated with said HTML object with a new name.
17. The method of claim 16 wherein said sending an update to said server comprises sending at least a representation of a URL associated with said renamed HTML object and a RENAME indicator and an indicator.
18. The method of claim 17 wherein said representation of a URL is a hash representation of said URL.
19. The method of claim 8 further comprising detecting that a new HTML object has been added to said browser cache and creating a new record in said mobile data table associated with said new HTML object.
20. The method of claim 19 further comprising providing at least a portion of said new record to said server, said new record at least including a representation of a URL associated with said new HTML object.
US13/074,328 2006-04-28 2011-03-29 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and assocaited device Abandoned US20110179138A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/074,328 US20110179138A1 (en) 2006-04-28 2011-03-29 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and assocaited device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/414,785 US7937361B2 (en) 2006-04-28 2006-04-28 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
US13/074,328 US20110179138A1 (en) 2006-04-28 2011-03-29 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and assocaited device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/414,785 Continuation US7937361B2 (en) 2006-04-28 2006-04-28 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device

Publications (1)

Publication Number Publication Date
US20110179138A1 true US20110179138A1 (en) 2011-07-21

Family

ID=38750772

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/414,785 Active 2026-12-14 US7937361B2 (en) 2006-04-28 2006-04-28 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
US13/074,328 Abandoned US20110179138A1 (en) 2006-04-28 2011-03-29 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and assocaited device

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/414,785 Active 2026-12-14 US7937361B2 (en) 2006-04-28 2006-04-28 Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device

Country Status (1)

Country Link
US (2) US7937361B2 (en)

Cited By (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110207436A1 (en) * 2005-08-01 2011-08-25 Van Gent Robert Paul Targeted notification of content availability to a mobile device
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US20120110109A1 (en) * 2010-11-01 2012-05-03 Michael Luna Caching adapted for mobile application behavior and network conditions
US8190701B2 (en) 2010-11-01 2012-05-29 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8209709B2 (en) 2005-03-14 2012-06-26 Seven Networks, Inc. Cross-platform event engine
US8316098B2 (en) 2011-04-19 2012-11-20 Seven Networks Inc. Social caching for device resource sharing and management
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8412675B2 (en) 2005-08-01 2013-04-02 Seven Networks, Inc. Context aware data presentation
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
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
US8494510B2 (en) 2008-06-26 2013-07-23 Seven Networks, Inc. Provisioning applications for a mobile device
US8549587B2 (en) 2002-01-08 2013-10-01 Seven Networks, Inc. Secure end-to-end transport through intermediary nodes
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8700728B2 (en) 2010-11-01 2014-04-15 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
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
US8761756B2 (en) 2005-06-21 2014-06-24 Seven Networks International Oy Maintaining an IP connection 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
US8774844B2 (en) 2007-06-01 2014-07-08 Seven Networks, Inc. Integrated messaging
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8799410B2 (en) 2008-01-28 2014-08-05 Seven Networks, Inc. System and method of a relay server for managing communications and notification between a mobile device and a web access server
US8805334B2 (en) 2004-11-22 2014-08-12 Seven Networks, Inc. Maintaining mobile terminal information for secure communications
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US8832228B2 (en) 2011-04-27 2014-09-09 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8831561B2 (en) 2004-10-20 2014-09-09 Seven Networks, Inc System and method for tracking billing events in a mobile wireless network for a network operator
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US8849902B2 (en) 2008-01-25 2014-09-30 Seven Networks, Inc. System for providing policy based content service in a mobile network
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
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
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
US8873411B2 (en) 2004-12-03 2014-10-28 Seven Networks, Inc. Provisioning of e-mail settings for a mobile terminal
US8886176B2 (en) 2010-07-26 2014-11-11 Seven Networks, Inc. Mobile application traffic optimization
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8909192B2 (en) 2008-01-11 2014-12-09 Seven Networks, Inc. Mobile virtual network operator
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
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
USRE45348E1 (en) 2004-10-20 2015-01-20 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
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
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
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9055102B2 (en) 2006-02-27 2015-06-09 Seven Networks, Inc. Location-based operations and messaging
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
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
US9077630B2 (en) 2010-07-26 2015-07-07 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
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
US9173128B2 (en) 2011-12-07 2015-10-27 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
US20160014063A1 (en) * 2014-07-13 2016-01-14 Mobli Technologies 2010 Ltd. Media object distribution
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US9251193B2 (en) 2003-01-08 2016-02-02 Seven Networks, Llc Extending user relationships
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
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US9325662B2 (en) 2011-01-07 2016-04-26 Seven Networks, Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US20160316035A1 (en) * 2014-01-16 2016-10-27 Tencent Technology (Shenzhen) Company Limited Webpage Pushing Method, Client, Server, And System
US20170168816A1 (en) * 2015-12-14 2017-06-15 International Business Machines Corporation Automatically expiring out source code comments
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
US9846649B1 (en) * 2011-02-25 2017-12-19 Amazon Technologies, Inc. Providing files with cacheable portions
CN108846052A (en) * 2018-05-31 2018-11-20 郑州云海信息技术有限公司 A kind of browser caching data update method and relevant apparatus
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644149B2 (en) * 2006-04-28 2010-01-05 Research In Motion Limited Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device
US8146101B2 (en) * 2006-04-28 2012-03-27 Research In Motion Limited Method of processing notifications provided by a routine, and associated handheld electronic device
US9111006B2 (en) * 2010-03-16 2015-08-18 Salesforce.Com, Inc. System, method and computer program product for communicating data between a database and a cache
CN104239480B (en) * 2011-09-19 2018-01-16 北京奇虎科技有限公司 A kind of quick method, apparatus for accessing webpage
CN102375882B (en) * 2011-09-19 2014-10-15 奇智软件(北京)有限公司 Method, device and browser for rapidly accessing webpage

Citations (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US6163779A (en) * 1997-09-29 2000-12-19 International Business Machines Corporation Method of saving a web page to a local hard drive to enable client-side browsing
US6192398B1 (en) * 1997-10-17 2001-02-20 International Business Machines Corporation Remote/shared browser cache
US20020078192A1 (en) * 2000-08-01 2002-06-20 Stefan Kopsell Cookie manager for control of cookie transfer in internet client-server computer systems
US20020077155A1 (en) * 2000-12-19 2002-06-20 Lg Electronics Inc. Method for using memory area in mobile communication terminal
US20020145992A1 (en) * 2001-03-20 2002-10-10 Holt Gregory S. URL acquisition and management
US20030006919A1 (en) * 2001-07-09 2003-01-09 Roger Collins System and method for compressing data on a bandwidth-limited network
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
US20030061278A1 (en) * 2001-09-27 2003-03-27 International Business Machines Corporation Addressing the name space mismatch between content servers and content caching systems
US6549917B1 (en) * 1999-04-29 2003-04-15 Waveware Communications, Inc. Synchronization of host computers and handheld remote computers
US6557165B1 (en) * 1996-06-28 2003-04-29 Fujitsu Limited Object-oriented programming apparatus, object-oriented programming supporting apparatus, component builder apparatus, object-oriented program storage medium, program storage medium for use in object-oriented programming, component storage medium, and object-between-network display method
US20030182357A1 (en) * 2002-03-01 2003-09-25 Brian Chess Client-side caching of pages with changing content
US20040068579A1 (en) * 2002-08-13 2004-04-08 International Business Machines Corporation System and method to refresh proxy cache server objects
US6738797B1 (en) * 1997-03-27 2004-05-18 British Telecommunications Public Limited Company System and method for tracking records in a distributed computing system
US6760756B1 (en) * 1999-06-23 2004-07-06 Mangosoft Corporation Distributed virtual web cache implemented entirely in software
US20040153576A1 (en) * 2001-06-30 2004-08-05 Uwe Hansmann System and method for a caching mechanism for a central synchronization server
US6779019B1 (en) * 1998-05-29 2004-08-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
US20040205692A1 (en) * 2001-01-12 2004-10-14 Robinson Marck R. Method and system for creating reusable software components through a uniform interface
US20050027869A1 (en) * 2003-07-31 2005-02-03 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US20050097186A1 (en) * 2003-10-08 2005-05-05 International Business Machines Corporation Method, system, and computer program product for managing interaction between remote devices and server resources
US20050131900A1 (en) * 2003-12-12 2005-06-16 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
US20070011207A1 (en) * 2005-07-05 2007-01-11 Vishnubhotla Prasad R Method and system for integrating file system events into a relational database
US20070124781A1 (en) * 2005-11-30 2007-05-31 Qwest Communications International Inc. Networked content storage
US20070233898A1 (en) * 2006-03-28 2007-10-04 Gil Raviv Method and system for accelerating browsing sessions
US20080005117A1 (en) * 2006-04-28 2008-01-03 Research In Motion Limited Method of processing notifications provided by a routine, and associted handheld electronic device
US7389330B2 (en) * 2002-09-11 2008-06-17 Hughes Network Systems, Llc System and method for pre-fetching content in a proxy architecture
US7644149B2 (en) * 2006-04-28 2010-01-05 Research In Motion Limited Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003250670A1 (en) 2002-07-23 2004-02-09 Research In Motion Limited Data store management system and method for wireless devices
JP2004078783A (en) 2002-08-21 2004-03-11 Nec Corp Cache management device for www browser, cache management method for the same, and program
US20060168129A1 (en) 2004-12-22 2006-07-27 Research In Motion Limited System and method for enhancing network browsing speed by setting a proxy server on a handheld device

Patent Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US6557165B1 (en) * 1996-06-28 2003-04-29 Fujitsu Limited Object-oriented programming apparatus, object-oriented programming supporting apparatus, component builder apparatus, object-oriented program storage medium, program storage medium for use in object-oriented programming, component storage medium, and object-between-network display method
US6738797B1 (en) * 1997-03-27 2004-05-18 British Telecommunications Public Limited Company System and method for tracking records in a distributed computing system
US6163779A (en) * 1997-09-29 2000-12-19 International Business Machines Corporation Method of saving a web page to a local hard drive to enable client-side browsing
US6192398B1 (en) * 1997-10-17 2001-02-20 International Business Machines Corporation Remote/shared browser cache
US6779019B1 (en) * 1998-05-29 2004-08-17 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
US6549917B1 (en) * 1999-04-29 2003-04-15 Waveware Communications, Inc. Synchronization of host computers and handheld remote computers
US6760756B1 (en) * 1999-06-23 2004-07-06 Mangosoft Corporation Distributed virtual web cache implemented entirely in software
US20020078192A1 (en) * 2000-08-01 2002-06-20 Stefan Kopsell Cookie manager for control of cookie transfer in internet client-server computer systems
US20020077155A1 (en) * 2000-12-19 2002-06-20 Lg Electronics Inc. Method for using memory area in mobile communication terminal
US20040205692A1 (en) * 2001-01-12 2004-10-14 Robinson Marck R. Method and system for creating reusable software components through a uniform interface
US20020145992A1 (en) * 2001-03-20 2002-10-10 Holt Gregory S. URL acquisition and management
US20040153576A1 (en) * 2001-06-30 2004-08-05 Uwe Hansmann System and method for a caching mechanism for a central synchronization server
US20030006919A1 (en) * 2001-07-09 2003-01-09 Roger Collins System and method for compressing data on a bandwidth-limited network
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
US20030061278A1 (en) * 2001-09-27 2003-03-27 International Business Machines Corporation Addressing the name space mismatch between content servers and content caching systems
US20030182357A1 (en) * 2002-03-01 2003-09-25 Brian Chess Client-side caching of pages with changing content
US20040068579A1 (en) * 2002-08-13 2004-04-08 International Business Machines Corporation System and method to refresh proxy cache server objects
US7552220B2 (en) * 2002-08-13 2009-06-23 International Business Machines Corporation System and method to refresh proxy cache server objects
US7389330B2 (en) * 2002-09-11 2008-06-17 Hughes Network Systems, Llc System and method for pre-fetching content in a proxy architecture
US20050027869A1 (en) * 2003-07-31 2005-02-03 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7756982B2 (en) * 2003-07-31 2010-07-13 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US20050097186A1 (en) * 2003-10-08 2005-05-05 International Business Machines Corporation Method, system, and computer program product for managing interaction between remote devices and server resources
US20050131900A1 (en) * 2003-12-12 2005-06-16 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
US20070011207A1 (en) * 2005-07-05 2007-01-11 Vishnubhotla Prasad R Method and system for integrating file system events into a relational database
US20070124781A1 (en) * 2005-11-30 2007-05-31 Qwest Communications International Inc. Networked content storage
US20070233898A1 (en) * 2006-03-28 2007-10-04 Gil Raviv Method and system for accelerating browsing sessions
US20080005117A1 (en) * 2006-04-28 2008-01-03 Research In Motion Limited Method of processing notifications provided by a routine, and associted handheld electronic device
US7644149B2 (en) * 2006-04-28 2010-01-05 Research In Motion Limited Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
(Computer Support Group Online: Industry Glossary, November 5, 1999, http://www.csgnetwork.com/glossarym.html#mirror) *

Cited By (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8989728B2 (en) 2002-01-08 2015-03-24 Seven Networks, Inc. Connection architecture for a mobile network
US8549587B2 (en) 2002-01-08 2013-10-01 Seven Networks, Inc. Secure end-to-end transport through intermediary nodes
US8811952B2 (en) 2002-01-08 2014-08-19 Seven Networks, Inc. Mobile device power management in data synchronization over a mobile network with or without a trigger notification
US9251193B2 (en) 2003-01-08 2016-02-02 Seven Networks, Llc Extending user relationships
USRE45348E1 (en) 2004-10-20 2015-01-20 Seven Networks, Inc. Method and apparatus for intercepting events in a communication system
US8831561B2 (en) 2004-10-20 2014-09-09 Seven Networks, Inc System and method for tracking billing events in a mobile wireless network for a network operator
US8805334B2 (en) 2004-11-22 2014-08-12 Seven Networks, Inc. Maintaining mobile terminal information for secure communications
US8873411B2 (en) 2004-12-03 2014-10-28 Seven Networks, Inc. Provisioning of e-mail settings for a mobile terminal
US8561086B2 (en) 2005-03-14 2013-10-15 Seven Networks, Inc. System and method for executing commands that are non-native to the native environment of a mobile device
US9047142B2 (en) 2005-03-14 2015-06-02 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US8209709B2 (en) 2005-03-14 2012-06-26 Seven Networks, Inc. Cross-platform event engine
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US8839412B1 (en) 2005-04-21 2014-09-16 Seven Networks, Inc. Flexible real-time inbox access
US8761756B2 (en) 2005-06-21 2014-06-24 Seven Networks International Oy Maintaining an IP connection in a mobile network
US8412675B2 (en) 2005-08-01 2013-04-02 Seven Networks, Inc. Context aware data presentation
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US20110207436A1 (en) * 2005-08-01 2011-08-25 Van Gent Robert Paul Targeted notification of content availability to a mobile device
US9055102B2 (en) 2006-02-27 2015-06-09 Seven Networks, Inc. Location-based operations and messaging
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8774844B2 (en) 2007-06-01 2014-07-08 Seven Networks, Inc. Integrated messaging
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US8738050B2 (en) 2007-12-10 2014-05-27 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8793305B2 (en) 2007-12-13 2014-07-29 Seven Networks, Inc. Content delivery to a mobile device from a content service
US8909192B2 (en) 2008-01-11 2014-12-09 Seven Networks, Inc. Mobile virtual network operator
US9712986B2 (en) 2008-01-11 2017-07-18 Seven Networks, Llc Mobile device configured for communicating with another mobile device associated with an associated user
US8914002B2 (en) 2008-01-11 2014-12-16 Seven Networks, Inc. System and method for providing a network service in a distributed fashion to a mobile device
US8849902B2 (en) 2008-01-25 2014-09-30 Seven Networks, Inc. System for providing policy based content service in a mobile network
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US8838744B2 (en) 2008-01-28 2014-09-16 Seven Networks, Inc. Web-based access to data objects
US8799410B2 (en) 2008-01-28 2014-08-05 Seven Networks, Inc. System and method of a relay server for managing communications and notification between a mobile device and a web access server
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US8494510B2 (en) 2008-06-26 2013-07-23 Seven Networks, Inc. Provisioning applications for a mobile device
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
US8886176B2 (en) 2010-07-26 2014-11-11 Seven Networks, Inc. Mobile application traffic optimization
US9049179B2 (en) 2010-07-26 2015-06-02 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
US9407713B2 (en) 2010-07-26 2016-08-02 Seven Networks, Llc Mobile application traffic optimization
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US9077630B2 (en) 2010-07-26 2015-07-07 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
US8966066B2 (en) 2010-11-01 2015-02-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
US9275163B2 (en) 2010-11-01 2016-03-01 Seven Networks, Llc Request and response characteristics based adaptation of distributed caching in a mobile network
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
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
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
US9432486B2 (en) 2010-11-01 2016-08-30 Seven Networks, Llc Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US8782222B2 (en) 2010-11-01 2014-07-15 Seven Networks Timing of keep-alive messages used in a system for mobile network resource conservation and optimization
US8700728B2 (en) 2010-11-01 2014-04-15 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US9021048B2 (en) * 2010-11-01 2015-04-28 Seven Networks, Inc. Caching adapted for mobile application behavior and network conditions
US20120110109A1 (en) * 2010-11-01 2012-05-03 Michael Luna Caching adapted for mobile application behavior and network conditions
US8326985B2 (en) 2010-11-01 2012-12-04 Seven Networks, Inc. Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
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
US8190701B2 (en) 2010-11-01 2012-05-29 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8204953B2 (en) 2010-11-01 2012-06-19 Seven Networks, Inc. Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US8291076B2 (en) 2010-11-01 2012-10-16 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US9100873B2 (en) 2010-11-22 2015-08-04 Seven Networks, Inc. Mobile network background traffic data management
US8903954B2 (en) 2010-11-22 2014-12-02 Seven Networks, Inc. Optimization of resource polling intervals to satisfy mobile device requests
US8539040B2 (en) 2010-11-22 2013-09-17 Seven Networks, Inc. Mobile network background traffic data management with optimized polling intervals
US9325662B2 (en) 2011-01-07 2016-04-26 Seven Networks, Llc System and method for reduction of mobile network traffic used for domain name system (DNS) queries
US9846649B1 (en) * 2011-02-25 2017-12-19 Amazon Technologies, Inc. Providing files with cacheable portions
US9300719B2 (en) 2011-04-19 2016-03-29 Seven Networks, Inc. System and method for a mobile device to use physical storage of another device for caching
US9084105B2 (en) 2011-04-19 2015-07-14 Seven Networks, Inc. Device resources sharing for network resource conservation
US8316098B2 (en) 2011-04-19 2012-11-20 Seven Networks Inc. Social caching for device resource sharing and management
US8356080B2 (en) 2011-04-19 2013-01-15 Seven Networks, Inc. System and method for a mobile device to use physical storage of another device for caching
US8621075B2 (en) 2011-04-27 2013-12-31 Seven Metworks, Inc. Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8832228B2 (en) 2011-04-27 2014-09-09 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US8635339B2 (en) 2011-04-27 2014-01-21 Seven Networks, Inc. Cache state management on a mobile device to preserve user experience
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US9239800B2 (en) 2011-07-27 2016-01-19 Seven Networks, Llc Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
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
US8977755B2 (en) 2011-12-06 2015-03-10 Seven Networks, Inc. Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US9173128B2 (en) 2011-12-07 2015-10-27 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9208123B2 (en) 2011-12-07 2015-12-08 Seven Networks, Llc Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
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
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
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
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
US9131397B2 (en) 2012-01-05 2015-09-08 Seven Networks, Inc. Managing cache to prevent overloading of a wireless network due to user activity
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
US9326189B2 (en) 2012-02-03 2016-04-26 Seven Networks, Llc User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices 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
US9271238B2 (en) 2013-01-23 2016-02-23 Seven Networks, Llc Application or context aware fast dormancy
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
US20160316035A1 (en) * 2014-01-16 2016-10-27 Tencent Technology (Shenzhen) Company Limited Webpage Pushing Method, Client, Server, And System
US10798194B2 (en) * 2014-01-16 2020-10-06 Tencent Technology (Shenzhen) Company Limited Webpage pushing method, client, server, and system
US10630625B2 (en) * 2014-07-13 2020-04-21 Snap Inc. Media object distribution
US20160014063A1 (en) * 2014-07-13 2016-01-14 Mobli Technologies 2010 Ltd. Media object distribution
US11121994B2 (en) 2014-07-13 2021-09-14 Snap Inc. Media object distribution
US11706179B2 (en) 2014-07-13 2023-07-18 Snap Inc. Media object distribution
US9760368B2 (en) * 2015-12-14 2017-09-12 International Business Machines Corporation Automatically expiring out source code comments
US9753722B2 (en) * 2015-12-14 2017-09-05 International Business Machines Corporation Automatically expiring out source code comments
US20170168816A1 (en) * 2015-12-14 2017-06-15 International Business Machines Corporation Automatically expiring out source code comments
CN108846052A (en) * 2018-05-31 2018-11-20 郑州云海信息技术有限公司 A kind of browser caching data update method and relevant apparatus

Also Published As

Publication number Publication date
US7937361B2 (en) 2011-05-03
US20070276887A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
US7937361B2 (en) Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
US7552220B2 (en) System and method to refresh proxy cache server objects
US9407717B1 (en) Selective prefetch scanning
US6785769B1 (en) Multi-version data caching
US9077681B2 (en) Page loading optimization using page-maintained cache
US6678791B1 (en) System and method for session-aware caching
KR102151457B1 (en) Method and apparatus for reducing page load time in a communication system
US20020174189A1 (en) Apparatus and methods for intelligently caching applications and data on a mobile device
US8225192B2 (en) Extensible cache-safe links to files in a web page
US20020194382A1 (en) Method and system for efficient and automated version management of embedded objects in web documents
US20070033290A1 (en) Normalization and customization of syndication feeds
US9195773B2 (en) Structure-based adaptive document caching
US20130111325A1 (en) Method and Apparatus of Processing Nested Fragment Caching of a Web Page
US8146101B2 (en) Method of processing notifications provided by a routine, and associated handheld electronic device
US9953052B1 (en) Caching of updated network content portions
US7644149B2 (en) Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device
US8041732B2 (en) System and method for downloading text content and images in web pages
US10983996B2 (en) Asynchronous predictive caching of content listed in search results
JP5405190B2 (en) Content management information collection system and content management information collection method
JP2008158589A (en) Updated information notification device, and updated information notification program
JP2010055560A (en) Intermediate system and event-driven server extension program
WO2012119496A1 (en) Pre-reading method and equipment
US8429247B1 (en) Method and apparatus for fulfilling browser requests from a local cache
CA2649596C (en) Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
CA2649367C (en) Method of processing notifications provided by a routine, and associated handheld electronic device

Legal Events

Date Code Title Description
AS Assignment

Owner name: RESEARCH IN MOTION LIMITED, CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VAN GEEST, DANIEL;TANG, YU;REEL/FRAME:026110/0269

Effective date: 20060706

STCB Information on status: application discontinuation

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

AS Assignment

Owner name: BLACKBERRY LIMITED, ONTARIO

Free format text: CHANGE OF NAME;ASSIGNOR:RESEARCH IN MOTION LIMITED;REEL/FRAME:034179/0923

Effective date: 20130709

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