« PreviousContinue »
1 Send "304" message to and 2"“ hash value send data from Web sewer
3 browser equal 8 “me Slam to browser with embedded 33
1 METHOD FOR TRAINING A SERVER FOR CONTENT DELIVERY BASED ON COMMUNICATION OF STATE INFORMATION FROM A MOBILE DEVICE BROWSER
A portion of this specification contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document, as it appears in the Patent and Trademark Oflice patent file or records, but otherwise reserves all copyrights whatsoever.
This specification relates generally to mobile data comrnunication systems, and more particularly to a method of training a server for content delivery based on communication of state information from a mobile device browser.
Mobile communication devices are becoming increasingly popular for business and personal use due to a relatively recent increase in number of services and features that the devices and mobile infrastructures support. Handheld mobile communication devices, sometimes referred to as mobile stations, are essentially portable computers having wireless capability, and come in various fonns. These include Personal Digital Assistants (PDAs), cellular phones and smart phones.
a telephone call or access e-mail messages, etc.) and then later accesses the CNN.com Web site (or follows a link from CNN.com to a news story), the banner “CNN.com” will be transmitted from the MDS to the device browser each time the site is accessed, thereby consuming significant bandwidth, introducing delay, etc.
It is known in the art to provide local file caching. One approach is set forth in GloMop: Global Mobile Computing By Proxy, published Sep. 13, 1995, by the GloMop Group, wherein PC Card hard drives are used as portable file caches for storing, as an example, all of the users’ email and Web caches. The user synchronizes the file caches and the proxy server keeps track of the contents. Mobile applications (clients) are able to check the file caches before asking for information from the proxy server by having the server verify that the local version of a given file is current.
BRIEF DESCRIPTION OF THE DRAWINGS
A detailed description of the preferred embodiment is set forth in detail below, with reference to the following drawings, in which:
FIG. 1 is a block diagram of a communication system for implementing Intemet browsing functionality in a mobile communication device;
FIG. 2A shows communication protocol stacks for the communication system of FIG. 1;
FIG. 2B shows communication protocol stacks for a Browser Session Management (BSM) protocol according to an exemplary embodiment;
FIG. 3 is a flowchart showing the method for comrnunicating information between a proxy server and a mobile Intemet browser, according to the preferred embodiment;
FIG. 4 is a flowchart showing the method of training the proxy server to deliver content based on detecting and leaming pattems of request messages from the mobile device browser.
FIG. 5 is a flowchart of a broad aspect of the exemplary method of training a proxy server for content delivery based on communication of state infonnation from a mobile device browser.
In general, there is provided a method of training a server for content delivery based on communication of state information from a mobile device browser, the method comprising providing a control channel between the server and mobile device browser, transmitting over the control channel a plurality of request messages from the mobile device browser to the server for Web pages, wherein each of the messages indicates browsing-related state data, implementing a heuristic algorithm within the server to detect and learn pattems of request messages and pre-fetching at least hypertext content of Web pages that the server has leamed will likely be requested, and embedding the hypertext content in response codes within response messages over the control channel from said server to the mobile device browser.
A specific application of this method provides for comrnunicating infonnation between an enterprise or proxy server and a mobile Intemet browser. An HTTP-like protocol is set forth, referred to herein as the Browser Session Management (BSM) protocol, for providing a control channel between the proxy server and the mobile device browser, so that the mobile device bowser can communicate to the proxy server what data the first mobile device browser has stored in memory (from previous browsing). The BSM protocol is an
“out of band” protocol in that BSM communications are in addition to the usual stream of HTTP requests from the mobile device bowser to the proxy server and provide “metadata” relating to cache contents. This metadata is used by the proxy server when handling subsequent requests from the mobile device browser, to determine what data to send to the mobile device browser, thereby significantly reducing data transfer on sub sequent requests relative to the prior art methodology discussed above.
Because the proxy server is aware of what the mobile communication device has stored in its cache, the amount of data sent to the mobile communication device may be reduced, thereby increasing the performance of the mobile communication device and reducing operational cost. If after the first request the CNN.com bamier is cached and provided the proxy server “knows” that the infonnation has been cached, then there will be no need to send the CNN.com bamier to the mobile device browser upon subsequent visits to the CNN Web site.
According to another aspect, messages from the device to the proxy server contain hash values of different portions of documents (rather than the actual URLs) which are used by the proxy server to detect state changes in the device and utilize the information in preparing documents for transmission to the device. In another embodiment, the device sends hashes of the actual data of the portions (i.e. the actual image data, ]avaScripts, StyleSheets, etc.) and the proxy server compares the received and stored data hashes for the portions to determine if the device already has the data for a particular portion (e.g. previously retrieved with a different URL), in which case the proxy server sends a response to the device with a header that indicates the device already has the data that is to be used for that portion. A person of skill in the art will appreciate that a one-way hash function transforms data into a value of fixed length (hash value) that represents the original data. Ideally, the hash function is constructed so that two sets of data will rarely generate the same hash value. Examples of known hash functions include MD2, MD5 and SHA-1.
In contrast to the prior art GloMop caching methodology discussed above, the exemplary method set forth herein synchronizes the cache contents when the mobile device browser connects to the proxy server in order to initiate a session and keeps track of changes to the cache via knowledge of what data has been sent to the mobile device browser in combination with state information periodically received from the mobile device browser identifying what has actually been cached. Also, as set forth in greater detail below, the proxy server uses this cache knowledge to determine what to send back to the mobile device browser. In contrast, the prior art GloMop methodology does not contemplate sending any state infonnation to the proxy server for identifying what has actually been cached in the device. Moreover, the prior art GloMop approach first checks the local cache, and then queries the proxy server to determine whether a particular data item in the cache is current or not. According to the GloMop prior art, the proxy server does not use its own knowledge of the mobile device browser cache to detennine what to send back to the mobile device browser.
Additional aspects and advantages will be apparent to a person of ordinary skill in the art, residing in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings.
FIG. 1 depicts the architecture of a system for providing wireless e-mail and data communication between a mobile device 1 and an enterprise or proxy server 9. Communication
with the device 1 is effected over a wireless network 3, which in tum is connected to the Internet 5 and proxy server 9 through corporate firewall 7 and relay 8. Altematively, the device 1 can connect directly (via the Intemet) through the corporate firewall 7 to the proxy server 9. When a new message is received in a user’s mailbox within email server 11, enterprise or proxy server 9 is notified of the new mes sage and email application 10 (e.g. Messaging Application Programming Interface (MAPI), MS Exchange, etc.) copies the message out to the device 1 using a push-based operation. Alternatively, an exemplary architecture for proxy server 9 may provide a browsing proxy but no email application 10. Indeed, the exemplary embodiment set forth herein relates to mobile browser device functionality and is not related to email functionality. Proxy server 9 also provides access to data on an application server 13 and the Web server 15 via a Mobile Data Service (MDS) 12. Additional details regarding e-mail messaging, MAPI sessions, attachment service, etc., are omitted from this description as they are not germane. Nonetheless, such details would be known to persons of ordinary skill in the art.
In tenns of Web browsing functionality, the device 1 communicates with enterprise or proxy server 9 using HTTP over an IP protocol optimized for mobile enviromnents. In some embodiments, the device 1 communicates with the proxy server 9 using HTTP over TCP/IP, over a variant of TCP/IP optimized for mobile use (e.g. Wireless Profiled TCP), or over other, proprietary protocols. For example, according to the communications protocol of FIG. 2A, HTTP is run over Internet Point-to-Point Protocol (IPPP) and an encrypted Global Messaging Exchange (GME) channel over which datagrarns are exchanged to transport data between the device 1 and proxy server 9. The GME datagrarns are 64 Kbit in size whereas the wireless network 3 can only transport UDP (User Datagram Protocol) datagrarns with payloads up to 1500 bytes. Therefore, a Message Delivery Protocol (MDP) is used to separate the GME datagrarns into one or more MDP packets, each of which is less than 1500 bytes (default size 1300 bytes), which are transported over UDP/IP to and from the relay 8 which, in turn communicates with the proxy server 9 via Server Relay Protocol (SRP)/TCP/IP. The MDP protocol includes acknowledgements, timeouts and re-sends to ensure that all packets of the GME datagram are received.
The communication between the device 1 and proxy server 9 is optionally encrypted with an encryption scheme, such as Triple Data Encryption Algorithm (TDEA, formerly referred to as Triple Data Encryption Standard (Triple DES)), as is known in the art. The proxy server 9 enables Internet access, preprocesses and compresses HTML and XML content from the Web server 15 before sending it to the device 1, transcodes content type, stores HTTP cookies on behalf of the device 1, and supports certificate authority authentications, etc.
In response to a request from the device browser, the proxy server 9 retrieves content from Web server 15 and creates a custom document containing both images to be displayed on the device and data in the fonn of compressed versions of requested portions of the document. The document is preferably of “multi-part” format to improve transmission to and processing efliciency within the device 1. Specifically, in order to display composite Web pages (i.e. pages composed of a main WML or HTML page and one or more related auxiliary files, such as style sheets, ]avaScript files, or image files) the device browser is normally required to send multiple HTTP requests to the proxy server 9. However, according to the multi-part generation feature, the proxy server 9 posts all necessary parts of a composite Web page in a single bundle, enabling the browser to download all the required content