News Column

Patent Application Titled "Web Browsing Enhanced by Cloud Computing" Published Online

June 19, 2014



By a News Reporter-Staff News Editor at Computer Weekly News -- According to news reporting originating from Washington, D.C., by VerticalNews journalists, a patent application by the inventors KHORASHADI, Behrooz (Mountain View, CA); RESHADI, Mohammad H. (Sunnyvale, CA); DAS, Saumitra Mohan (Santa Clara, CA), filed on April 18, 2013, was made available online on June 5, 2014.

No assignee for this patent application has been made.

Reporters obtained the following quote from the background information supplied by the inventors: "Increasingly, people are using mobile computing devices to consume media. Generally in mobile computing devices, battery life is limited. Once the battery is depleted, the mobile device will shut down and cannot be restarted until a power outlet can be found or a new battery is provided. This can be very frustrating to a user since they cannot use the mobile device while the battery is drained. Additionally, there are times when the mobile device is inefficient. The mobile device will waste mobile bandwidth, processing and battery resources without the user's knowledge. For example, the mobile device browser may download a very large file, such as a library when only a portion of the library is needed. Additionally, users do not like long wait times for downloading webpages and become frustrated when a website or media source is not instantly displayed.

"Some users generally follow certain daily browsing routines or habits of their mobile computing systems. For example, a user may access a portion of a webpage (e.g., stock quotes or sports scores) more frequently than other portions. Many users follow certain daily habits for consuming media. For example, if there is a newsworthy event that has recently taken place, many users will access the same webpage seeking the newsworthy content."

In addition to obtaining background information on this patent application, VerticalNews editors also obtained the inventors' summary information for this patent application: "Methods and devices enable improved web browsing on a computing device. The method includes a processor that transmits a request for a webpage from a computing device to a server, and the server returns metadata to the computing device. The metadata assists the computing device in parsing, analyzing or executing the request for the webpage, and comprises returned binary code from data processed at the server to assist the computing device.

"In another aspect, a system includes a server and at least two web browsers operable on at least two different computing devices. Each web browser reports the results of processing and rendering webpages to the server. The server aggregates the data and the server generates metadata from the aggregated web browser data. The server transmits the metadata to at least one computing device. The computing device renders a webpage using at least a portion of the metadata.

"An aspect of the present application includes a method for rendering a webpage on a computing device that includes transmitting a request for a webpage from the computing device, transmitting a request from the computing device for a browser assistant, and returning metadata to the computing device to assist the computing device in parsing, analyzing, or executing the request for the webpage. In an aspect, the metadata returned to the computing device may include data that may be any one of JavaScript function execution probabilities, Abstract Syntax Tree (AST) data for parsing data, script token data, lexing information, returned binary code from data processed at a server to assist the computing device, CSS metadata to assist in processing CSS webpage data at the computing device, JavaScript metadata to assist in processing JavaScript webpage data at the computing device, HTML metadata to assist in processing HTML webpage data at the computing device, and combinations thereof. In an aspect, the metadata returned to the computing device may include a plurality of observed users browsing statistics, and the method may further include using the plurality of observed browsing statistics to assist in loading portions of the webpage at the computing device before other portions. In an aspect, the metadata returned to the computing device may include statistics regarding a portion of code that has a predetermined probability of execution. In an aspect, the metadata returned to the computing device may include translated binary code resulting from JavaScript code executed on a server, and the method may further include transmitting the binary code to the computing device to maximize processing at the server and minimize processing at the computing device.

"In an aspect, the method may further include sending analytics that correlate to portions of the webpage that are popular so a web browser on the computing device loads the popular portions first. Aspect methods may further include gathering habits of a user of the computing device, and preloading into memory webpage elements frequently accessed by the user. Aspect methods may further include gathering in a server usage information from a plurality of users corresponding to popular data of the plurality of web users, and generating metadata based on the usage information and an analysis of habits of the plurality of web users. Aspect methods may further include sending metadata from a local network computer to the computing device, gathering usage information from a plurality of users corresponding to popular data of other web users, and generating metadata using the local network computer. Aspect methods may further include gathering aggregate information on browsing habits based on a plurality of users as the users use a web browser, monitoring the plurality of users to generate the browsing habits using an instrumented web browser, and generating metadata based on the browsing habits of the plurality of users.

"Aspect methods may further include generating metadata indicating a library is frequently downloaded, describing in the metadata that the library has a portion that is statistically likely needed before other portions for execution based on observed statistical information, and downloading the portion of the library first based on the metadata. In an aspect, the method may further include determining that the library has a most likely executable library portion based on statistical data, downloading the most likely executable library portion first before other portions of the library.

"Aspect methods may further include monitoring a plurality of users during browsing, generating metadata indicating a statistical percentage of users are likely to view a first portion of a webpage before other portions, transmitting the first portion to the computing device before other portions of the webpage. In an aspect, the metadata may include a profile for a user of the computing device, and the method may further include generating metadata indicating a statistical percentage that the user is likely to view a first portion of a webpage before other portions based on the profile, generating metadata indicating a statistical percentage that the user is not likely to view a second portion of a webpage, downloading the first portion first to the computing device before other portions of the webpage, and downloading the second portion a time period after the first portion. Aspect methods may further include generating metadata indicating habits of other users browsing, determining which portions of webpages are statistically likely to be accessed before other portions of the webpage based on the metadata, determining that a second portion is likely not accessed frequently, communicating in the metadata that the second portion is not accessed frequently and downloaded lower in priority than portions statistically likely to be accessed.

"Aspect methods may further include linking to a server via a wireless network, associating a browser with the server, collecting information for use by the computing device from the browser.

"Aspect methods may further include providing hints using the metadata for a web browser to parse, analyze or execute the request that may include JavaScript, determining that the JavaScript is inefficient to process at the computing device, and transmitting a binary pre-compiled translation of the JavaScript.

"Aspect methods may further include aggregating statistics regarding a plurality of web users browsing habits webpage, delivering the statistics in the metadata, using the statistics to conserve mobile resources by preloading statistically popular webpages before the webpages are requested at the computing device, downloading portions of the webpage that are popular, and omitting downloading second portions of the webpage that are not popular to conserve mobile resources. Aspect methods may further include sending browsing data from an Internet browser to a server, and generating the metadata from the browser data in the server. Aspect methods may further include sending data from an instrumental browser to a server, and generating the metadata from the data. In an aspect, the metadata returned to the computing device may include returning metadata from a peer device to the computing device that correlates to portions of the webpage that are popular with computing devices connected to the peer device so a web browser on the computing device loads the popular portions first.

"Aspect methods may further include providing a client side monitoring system of browsing habits of a second computing device, sending the browsing habits to a server, sending metadata from the server to the computing device based on the client side monitoring system of the browsing habits of the second computing device. Aspect methods may further include generating metadata from browsing habits that include requests and responses to requests, and providing the metadata to a peer device that is a peer of the computing device.

"Aspect methods may further include monitoring browsing habits of a plurality of users, sending the browsing habits to a server, formulating a plurality of observed profiles of the plurality of users based on the monitored browsing habits, monitoring the browsing habits of a computing device user, returning metadata from the server to the computing device based on at least one observed profile that matches the computing device user browsing habits.

"Aspect methods may further include describing in the metadata that a first portion of code is analyzed, downloaded, parsed, or executed more often than a second portion, and reordering and downloading the first portion of code before the second portion. Aspect methods may further include describing in the metadata that a library includes a portion that is determined most likely to be executed, and downloading the most likely to be executed library portion before other portions of the library.

"Aspect methods may further include transmitting the request for the browser assistant that is located on a server, determining that a web site is frequently accessed by the computing device, and uploading updated web site data to the computing device. Aspect methods may further include downloading first portions of webpages using the computing device before second portions based on statistical browsing habits contained in the metadata. Aspect methods may further include preloading portions of webpages using the computing device with the preloaded portions being identified using statistical browsing habits contained in the metadata.

"Aspect methods may further include monitoring browsing habits from a plurality of users, determining that a webpage comprising webpage elements is frequently accessed, storing webpage elements on a cache based on the browsing habits to prevent the webpage elements from being deleted on the computing device, downloading the webpage elements from the cache before an anticipated request. In an aspect, the method may further include monitoring browsing habits that are derived from a single user's browsing habits, updating the webpage stored on the cache, pushing elements on the cache to the computing device at periodic intervals without the request, updating the webpage stored on the cache, and passing elements from the cache to the computing device. Aspect methods may further include returning metadata to the computing device in advance by pre-caching the metadata to assist the computing device in parsing, analyzing, or executing the requested webpage.

"Aspect methods may further include returning metadata that allows the computing device to execute the webpage in a more efficient manner by executing necessary portions, and forgoing executing an entire webpage.

"In various aspects, the browser assistant may be located on a server that is the same server that responds to the request for the webpage, on a peer computer device, or on another network device.

"Aspect methods may further include transmitting a request for a webpage, in which the webpage includes portions, processing the portions using the browser assistant to result in native code, and returning native code to the computing device, in which the portions include JavaScript.

"Aspect methods may further include transmitting a request for data, transmitting a request to a first device, returning metadata to a second device, and describing portions of the webpage in the metadata that have a likely statistical chance of execution based on monitored empirical data of requests and responses to requests.

"The various aspects further include a computing device having a processor configured with processor-executable instructions to perform operations of the aspect methods described above. The various aspects may further include a computing device including means for performing the functions of the aspect methods described above. The various aspects may further include non-transitory processor-readable storage media having stored thereon processor-executable instructions configured to cause computing device processors to perform operations of the aspect methods described above.

"The various aspects further include a server having a server processor configured with processor-executable instructions to perform operations of the aspect methods described above. The various aspects may further include a server including means for performing the functions of the aspect methods described above. The various aspects may further include non-transitory processor-readable storage media having stored thereon processor-executable instructions configured to cause a server processors to perform operations of the aspect methods described above.

"The various aspects further include system including a server, a cellular communications network and a computing device (e.g., a mobile phone) in communication with the server via the cellular communications network, in which the server and the computing device are configured to perform operations of the aspect methods described above.

BRIEF DESCRIPTION OF THE DRAWINGS

"The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary aspects of the invention, and together with the general description given above and the detailed description given below, serve to explain the features of the invention.

"FIG. 1 is a communication system block diagram of a system for communicating with a mobile computing device.

"FIG. 2 is a process flow diagram of an aspect method using analytics to improve performance of a web browser.

"FIG. 3 illustrates a computing device communicating with a browser assistance server.

"FIG. 4 illustrates how a certain predetermined portion of code has a high probability of execution that may be downloaded before other portions.

"FIG. 5A is a process flow diagram of an aspect method to request metadata on a webpage from a browser assistant server.

"FIG. 5B is a process flow diagram of an aspect method to request metadata on a webpage from an instrumented browser.

"FIG. 5C is a process flow diagram of an aspect method to request metadata on a webpage from a web browser.

"FIG. 6 is a process flow diagram of an aspect method to request metadata on a webpage from a peer device.

"FIG. 7 is a process flow diagram of an aspect method to request metadata on a webpage from a home network computer that is linked to a mobile communication device to provide assistance to the mobile communication device.

"FIG. 8 illustrates a communication system block diagram of a server that sends hints to a mobile communication device for rendering a webpage.

"FIG. 9 is a process flow diagram of an aspect method to collect data from a number of different users' browsing habits and to create metadata which is pushed to a computing device to provide hints to render a webpage.

"FIG. 10 is a process flow diagram of an aspect method to collect data from a number of different users' browsing habits and to create metadata which is pulled from a computing device to provide hints.

"FIG. 11 is a process flow diagram of an aspect method to create metadata using an analytic module on a server.

"FIG. 12 is a process flow diagram of an aspect method to provide targeted services on behalf of a mobile communication device and to cache popular data on a server for the mobile communication device.

"FIG. 13 is a process flow diagram of an aspect method to create metadata of JavaScript execution profiles from multiple users to provide hints to a mobile communication device.

"FIG. 14 is a process flow diagram of an aspect method to provide targeted services on behalf of a mobile communication device and to cache popular data and to maintain frequently accessed cached data for a mobile communication device.

"FIG. 15 is a process flow diagram of an aspect method to provide targeted services on behalf of a mobile communication device to cache popular data on a server and to augment the cached data.

"FIG. 16 illustrates a browser assistance server providing frequently used cache data to the mobile communication device.

"FIG. 17 is a process flow diagram of an aspect method to generate metadata that has hints to parse JavaScript.

"FIG. 18 illustrates a server processing data and sending a precompiled binary file of the processed JavaScript data to the mobile communication device to avoid processing the JavaScript data.

"FIG. 19 is a process flow diagram of an aspect method to process data at a server and to provide a precompiled binary file of the processed data to the mobile communication device to avoid processing the data locally.

"FIG. 20 is a process flow diagram of an aspect method to provide metadata identifying a most frequently used library portion so the mobile communication device can download a most frequently used library portion without downloading the entire software library.

"FIG. 21 is a process flow diagram of an aspect method to provide metadata of a most viewed webpage portion so the mobile communication device can download a most viewed portion before another portion.

"FIG. 22 is a component block diagram of a mobile computing device suitable for use with the various aspects.

"FIG. 23 is a component block diagram of a server computing device.

"FIG. 24 is a component block diagram of a notebook computing device."

For more information, see this patent application: KHORASHADI, Behrooz; RESHADI, Mohammad H.; DAS, Saumitra Mohan. Web Browsing Enhanced by Cloud Computing. Filed April 18, 2013 and posted June 5, 2014. Patent URL: http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=304&p=7&f=G&l=50&d=PG01&S1=20140529.PD.&OS=PD/20140529&RS=PD/20140529

Keywords for this news article include: Patents, Software, JavaScript.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Computer Weekly News


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters