Follow us on Twitter
twitter icon@FreshPatents

Browse patents:
Next
Prev

Content rendering on a computer / Microsoft Corporation




Title: Content rendering on a computer.
Abstract: Portions of content are transformed into portions of rendered content. While the portions of the content are being transformed into portions of the rendered content, each discrete portion of the rendered content can be provided to the application program after that portion is completed. ...


Browse recent Microsoft Corporation patents


USPTO Applicaton #: #20120331377
Inventors: Gareth Alan Howell, Matthew James Ruhlen, Brendyn O'dell-alexander, Nicholas Allen Robarge, Zhenjun Zhu, Sugandha Sudeshkumar Kapoor, Kiran Akella Venkata, Juraj Gottweis


The Patent Description & Claims data below is from USPTO Patent Application 20120331377, Content rendering on a computer.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent application Ser. No. 12/397,351 entitled “Content Rendering on a Computer,” filed Mar. 4, 2009, which is expressly incorporated by reference herein.

BACKGROUND

- Top of Page


Productivity application programs, such as word processing applications, spreadsheet applications, and presentation applications, enable users to create different types of documents. These documents may include data that is native to a particular document type and even to a particular application program. In order to view this native data, a user may view the document through the productivity application program that created the document. For example, a user may rely on a particular word processing application to view a word processing document that was created by the word processing application.

A problem can arise when documents are shared across the World Wide Web (hereinafter referred to as “web”) through web browsers. In particular, typical web browsers may not be capable of reading a given document in its native format. In order to address this problem, a web server can be implemented to execute code that is capable of rendering a document from its native format into a web-compatible format that can be viewed through the web browser.

Conventional implementations of such web servers render a document in its entirety prior to providing the rendered version to the web browser. This is sometimes referred to as document pre-rendering. During pre-rendering, a user who requests to view a given document may be forced to wait a significant amount of time before the document has been completely rendered. This delay can cause substantial frustration and inconvenience for the user.

It is with respect to these considerations and others that the disclosure made herein is presented.

SUMMARY

- Top of Page


Technologies are described herein for rendering content, such as documents. An application server is provided for rendering documents and other content from a native document format into a web-compatible format capable of being viewed through a web browser or other suitable application. The application server includes a rendering module, which is operative to incrementally render documents. Through incremental rendering, the application server can provide portions of rendered documents to the web browser while the native documents are still being rendered. Other example implementations of the technologies described herein include converting a document from one format into another format (e.g., transforming a document from a binary file format into an Office Open XML format, a Portable Document Format (“PDF”), and the like).

A download manager is also provided in order to increase the throughput of the rendering module. While the rendering module is rendering one document, the download manager may begin retrieving other documents to be rendered at a later time. These other documents may be downloaded from a storage server and stored in a rendering queue on the application server. Once the rendering module becomes available, the rendering module can immediately begin rendering these other documents directly from the rendering queue without any downtime while waiting for documents to be retrieved.

One or more caches are also provided in order to reduce the amount of work utilized to retrieve documents and other content. Examples of caches include a document cache, an authorization cache, and a location cache. The document cache may be operative to store rendered documents in the front end, thereby eliminating the need to retrieve the rendered documents from other storage units in the back end. The authorization cache may be operative to store authorization and authentication data, thereby eliminating the need to re-authorize or re-authenticate a user who later accesses the same document. The location cache may be operative to store the location of a rendered document. Through the use of the location cache, the rendered document can be efficiently retrieved from the relevant storage unit without the need to query multiple storage units.

According to one embodiment, a method is provided herein for rendering content for viewing through a web browser operating on a computer. Portions of the content are transformed into portions of rendered content. While the portions of the content are being transformed into portions of the rendered content, at least one of the portions of the rendered content can be provided to an application program.

It should be appreciated that the above-described subject matter may also be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

- Top of Page


FIG. 1 is a block diagram showing an illustrative system architecture operative to render documents for viewing through a web browser, in accordance with embodiments;

FIG. 2 is a block diagram showing an illustrative implementation of an application manager from the system architecture of FIG. 1, in accordance with embodiments;

FIG. 3 is a block diagram showing an illustrative implementation of a front end from the system architecture of FIG. 1, in accordance with embodiments;

FIG. 4A is a flow diagram showing an illustrative process for rendering content for viewing through a web browser, in accordance with embodiments;

FIG. 4B is a flow diagram showing an illustrative process for fetching a portion of the rendered content, in accordance with embodiments; and

FIG. 5 is a computer architecture diagram showing an illustrative computer hardware architecture for a computing system capable of implementing the embodiments presented herein.

DETAILED DESCRIPTION

- Top of Page


The following detailed description is directed to technologies for rendering content, such as documents. Through the utilization of the technologies and concepts presented herein, an application server is provided that is operative to incrementally render a document or other content from its native format into another format, such as a web-compatible format. In contrast to pre-rendering, as content is being incrementally rendered, each discrete portion of the document or other content that has been rendered can be made available to the user. One or more caches may also be provided in order to reduce the amount of work utilized to retrieve rendered content.

Embodiments described herein may refer to pages and slides as discrete portions of documents and rendered documents. However, it should be appreciated that pages and slides are merely examples of discrete portions and are not intended to be limiting. Other kinds of discrete portions, as contemplated by those skilled in the art, may be similarly implemented.

Although not so limited, embodiments described herein primarily refer to documents and document rendering. However, it should be appreciated that the embodiments described herein may be similarly applied to any suitable content which can be rendered from a native format into another format. Such content may include any multimedia, such as text, images, audio, video, and combinations thereof. Further, embodiments described herein primarily refer to the rendered format as a web-compatible format capable of being viewed through a web browser. However, it should be appreciated that the rendered format may be other suitable formats as contemplated by those skilled in the art.

While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.

In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are showing by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements through the several figures, concepts and technologies for providing on-demand content viewing will be described. In particular, FIG. 1 is a block diagram showing a system architecture 100 operative to render documents and to retrieve rendered documents according to embodiments. The architecture 100 includes a front end 102 that is operative to communicate with a computer 104. The front end 102 may receive and process requests from a web browser 106 over a network 108, such as the Internet. For example, the front end 102 may receive a Hypertext Transfer Protocol (“HTTP”) message with a request for a specific document, such as document 110A, stored in a document store 112. It should be appreciated that the components of the architecture 100 may reside on the same server, according to further embodiments. Splitting the architecture 100 into the front ends and application servers is merely an implementation design choice and is not intended to be limiting.

In response to receiving the HTTP request, the web front end 102 may attempt to retrieve, from an output store 114, a web-compatible rendered document 110B corresponding to the requested document 110A. For example, the rendered document 110B may be stored in the output store 114 if the document 110A was recently rendered. If the output store 114 contains the rendered document 110B corresponding to the document 110A, then the output store 114 may return the rendered document 110B to the front end 102.

If the output store 114 does not contain the rendered document 110B, then the application server 116, and more specifically the rendering module 118, may retrieve the document 110A from the document store 112. According to embodiments, a rendering module 118 in the application server 116 is operative to render (i.e., convert, transform) the document 110A into the rendered document 110B. The rendering module 118 may generate the rendered document 110B in any format capable of being displayed by a suitable web browser. Example formats may include an image format (e.g., Portable Network Graphics (“PNG”), Joint Photographic Experts Group (“JPEG”), etc.), MICROSOFT SILVERLIGHT, ADOBE FLASH, and the like. The rendering module 118 may also generate the rendered document 110B into a web-ready rendition that may include Extensible Markup Language (“XML”), scripts, Hypertext Markup Language (“HTML”), images, and/or the like, such that individual data types in the web-ready rendition can be understood collectively by the web browser. Each of these data types may be made available to the user upon being generated by the incremental rendering process described herein. The rendering module 118 may also be operative to concurrently render multiple documents. Upon generating the rendered document 110B, the application server 116 may store the rendered document 110B in the output store 114 and return the rendered document 110B to the front end 102.

Upon receiving the rendered document 110B, the front end 102 may respond to the HTTP request by providing the rendered document 110B to the web browser 106 via the HTTP protocol. The web browser 106 can then display the rendered document 110B, which is a full-fidelity representation of the corresponding document 110A. The full-fidelity representation contains the same formatting (e.g., layout, resolution, content, etc.) found in the original representation. Thus, a user can expect the same experience viewing a given document whether the document is viewed through a productivity application program or through a web browser, such as the web browser 106. The full-fidelity representation can be contrasted against a lower-fidelity representation in which, for example, the layout may be changed or the resolution and content may be reduced. In other embodiments, the rendered document 110B may be utilized for non-viewing scenarios, such as converting binary files to another document type for editing. For example, a MICROSOFT OFFICE binary file may be rendered into an OPEN OFFICE EXTENSIBLE MARKUP LANGUAGE (“OOXML”) file.




← Previous       Next →
Advertise on FreshPatents.com - Rates & Info


You can also Monitor Keywords and Search for tracking patents relating to this Content rendering on a computer patent application.

###


Browse recent Microsoft Corporation patents

Keyword Monitor How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Content rendering on a computer or other areas of interest.
###


Previous Patent Application:
Asynchronous redrawing in online document processors
Next Patent Application:
Dynamically updating a running page
Industry Class:
Data processing: presentation processing of document
Thank you for viewing the Content rendering on a computer patent info.
- - -

Results in 0.26218 seconds


Other interesting Freshpatents.com categories:
QUALCOMM , Monsanto , Yahoo , Corning ,

###

Data source: patent applications published in the public domain by the United States Patent and Trademark Office (USPTO). Information published here is for research/educational purposes only. FreshPatents is not affiliated with the USPTO, assignee companies, inventors, law firms or other assignees. Patent applications, documents and images may contain trademarks of the respective companies/authors. FreshPatents is not responsible for the accuracy, validity or otherwise contents of these public document patent application filings. When possible a complete PDF is provided, however, in some cases the presented document/images is an abstract or sampling of the full patent application for display purposes. FreshPatents.com Terms/Support
-g2-0.1903

66.232.115.224
Browse patents:
Next
Prev

stats Patent Info
Application #
US 20120331377 A1
Publish Date
12/27/2012
Document #
File Date
12/31/1969
USPTO Class
Other USPTO Classes
International Class
/
Drawings
0




Follow us on Twitter
twitter icon@FreshPatents

Microsoft Corporation


Browse recent Microsoft Corporation patents





Browse patents:
Next
Prev
20121227|20120331377|content rendering on a computer|Portions of content are transformed into portions of rendered content. While the portions of the content are being transformed into portions of the rendered content, each discrete portion of the rendered content can be provided to the application program after that portion is completed. |Microsoft-Corporation
';