HIGH PERFORMANCE CROSS PLATFORM DOCUMENT VIEWING

- NOLIJ CORPORATION

A document viewing system is provided that includes a browser receiving one or more user requests to view a document being stored remotely. The browser issues a first request to a server for metadata associated with the document and based on the received metadata determines a selective number of tiles needed for viewing the document. The browser issues a second request to the server requesting the selective number of tiles for viewing the document. The selective number tiles are only those tiles available for viewing in a viewing area in the browser. The server sends the selective number of tiles in parallelized fashion to the browser. The browser receives the selective number of tiles from the server and displays the document to a user.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
PRIORITY INFORMATION

This application claims priority from provisional application Ser. No. 61/392,252 filed Oct. 12, 2010, which is incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

The invention is related to field of network applications, and in particular to a browser-based scanning utility.

Traditional document management, requiring extensive use of locally attached scanning devices, file servers, databases, and the like, has long been rooted in the technology of yesterday: namely, Windows-based client/server technology. A new era of computing is currently being ushered in; one that revolves around portability, cross platform support, and a new and growing installed base of mobile devices driven by Google, the resurgent Apple Inc. and others. Leveraging this new and increasingly adopted technology environment requires redesigning and, in many cases, reinventing wheels that no longer fit. Unfortunately, the enterprise document management space is largely tied to legacy client/server architecture. While most vendors offer a lightweight web client with limited functionality—to present a veneer of modernity—the bulk of the underlying technology is built on traditional Windows-based client server architecture. As Java technology continues to evolve and consume a greater percentage of development projects worldwide, more and more leading software companies are leveraging its portability and multi-platform capabilities to prepare for the next-generation Internet. The next generation Internet is one based on portability, open standards, and mobile device support. The ability to provide full document management functionality in the absence of traditional client/server technology while supporting any web browser on any platform along with a wide range of mobile devices presents a number of unique challenges.

SUMMARY OF THE INVENTION

According to one aspect of the invention, there is provided a document viewing system. The document viewing system includes a browser that receives one or more user requests to view a document being stored remotely. The browser issues a first request to a server for metadata associated with the document and based on the received metadata determines a selective number of tiles needed for viewing the document. The browser issues a second request to the server requesting the selective number of tiles for viewing the document. The selective number tiles are only those tiles available for viewing in a viewing area in the browser. The server sends the selective number of tiles in parallelized fashion to the browser. The browser receives the selective number of tiles from the server and displays the document to a user.

According to another aspect of the invention, there is provided a method of viewing remote documents. The method includes receiving one or more user requests using a browser to view a document being stored remotely. Also, the method includes issuing a first request to a server for metadata associated with the document and based on the received metadata. Moreover, the method includes determining a selective number of tiles needed for viewing the document based on the received metadata. A second request is issued to the server requesting the selective number of tiles for viewing the document. The selective number tiles are only those tiles available for viewing in a viewing area in the browser. Furthermore, the method includes sending the selective number of tiles parallelized fashion to the browser. The browser receives the selective number of tiles from the server and displays the document to a user.

According to another aspect of the invention, there is provided a computer readable medium for storing a program being executed on a computer system, the programs performs a method of viewing remote documents. The method includes receiving one or more user requests using a browser to view a document being stored remotely. Also, the method includes issuing a first request to a server for metadata associated with the document and based on the received metadata. Moreover, the method includes determining a selective number of tiles needed for viewing the document based on the received metadata. A second request is issued to the server requesting the selective number of tiles for viewing the document. The selective number tiles are only those tiles available for viewing in a viewing area in the browser. Furthermore, the method includes sending the selective number of tiles parallelized fashion to the browser. The browser receives the selective number of tiles from the server and displays the document to a user.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating a tile document viewer system used in accordance with the invention; and

FIG. 2 is a process flow illustrating the steps in displaying one or more images in accordance with the invention.

DETAILED DESCRIPTION OF THE INVENTION

The invention provides a viewing system allowing a user to view documents that are stored remotely. The viewing system is a browser-based tool that is executed within a browser environment. The inventions implements a more efficiently technique of viewing documents which minimizes the traditional bottlenecks associated with other systems in the art.

The invention is implemented in a platform independent framework, which allows the invention to run on various operating system platforms. The invention can be implemented using platform independent computer languages, such as Java or the like. This allows the invention to be used freely in various operating system platforms without limiting the functionalities of the invention. Moreover, the browser used in accordance with the invention can use run code from the platform independent computer languages to operate the objectives of the invention. In addition, the invention can operate on both conventional computer systems as well as mobile devices and tablets.

FIG. 1 is a schematic diagram illustrating the tile document viewer system 2 used in accordance with the invention. The viewer system 2 includes a user 4 working on a computer system 3 that is executing a browser 6. The computer system 3 includes a processor, a portable storage, and processor storage medium. The browser 6 displays a number of images and information for which the user 4 discerns. Also, the browser 6 includes the ability to retrieve information over the Internet and facilitate communications with other computer systems, such as a server 8. The communication protocols, such as TCP/IP or the like, are used by the browser 6 to communicate with the server 8 and other computer systems used in a network. Within the framework of the browser 6, applets and other browser-based applications can also be executed. The browser 6 facilitates the ability to view images of documents stored remotely. The invention addresses the issues facing processing images and improving throughput by parallelizing the transfer of selected portions of a document which removes bottlenecks and improves processing efficiency.

The invention's parallelized processing of images allows for instant response time allowing the user 4 to experience no delays in communication with a remote server. By controlling the number of tiles used in image processing, in this case, not transferring and processing tiles which are not viewed, greatly aids in maintaining increased performance of the invention. Moreover, the invention further improves performance by providing to the user 4 documents in JPG format for display regardless the original format of the documents.

When the user 4 view a selected number of documents using the browser, by clicking on a selected document triggers a request 10 to the browser 6 to request all associated metadata for that respected document from the server 8. In certain embodiments of the invention, authentication is required for the user 4 to have access rights to view documents. The browser 6 prepares a request 16 to retrieve the metadata from the remote server 8. The request 16 can include metadata information such as document resolution size, number of pages, the amount and type of annotations, specific end-user permissions, and other document specific information. The server 8 includes a processor, a portable storage, and processor storage medium.

Once the server 8 receives the request from the browser 6, the server 8 validates the request for metadata or documents by confirming the presence of the proper security nonce. Afterwards, the server 8 determines if additional metadata information is needed from the metadata database 30 and retrieves the information. The server 8 assembles all required metadata information and prepares a request 18 to be sent back to the browser 6. Once the request 18 is received by the browser 6, the browser 6 analyzes the received metadata information to determine the total number of tiles or rectangular pieces needed to display a document to the user 4 using a compute tile module 14. Moreover, the browser 6 provides to the user 4 the ability to alter the various viewing features and functionalities allowed for the user 4.

Based on the tiles needed, the browser 6 sends a request 20 to the server 8 to provide the necessary tiles for viewing. The invention efficiently displays a document by determining the tiles needed using a compute view module 14, based on geometry and size of the image file, while not utilizing tiles that are not used or needed for display that are outside the viewing area. In this case, the browser 6 determines the tiles needed and sends requests 20 to the server 8 to retrieve the needed tiles. The server 8 receives the requests 20 and checks an image cache 24 stored locally on the server 8 if the document associated with the tiles requested are stored therein. If it is determined the document is stored on the image cache 24, then the server 8 carves the image into a number of tiles. Afterwards, the server 8 streams the requested tiles 22 in parallel back to the browser 6 sending the request. If the document is not stored in the image cache 24, the server 8 retrieves the documents from the document store 28. Then the server 8 determines what is the document's file type so as to decide whether to convert the document into an image file. The image file is further converted into a browser renderable format, such as the JPG format. The server 8 retrieves the stored JPG format document and using an image processing module 26 applies anti-aliasing to the converted image so smoothing can occur for better readability. Also, the image cache 24 removes the oldest/least used document and replaces it with the new converted document. Once this is complete, the browser issues a message 12 to the user 4 notifying that the image is ready for viewing.

The tiled document viewer system 2 is the primary display interface for the presentation and manipulation of all documents in the document store 28. FIG. 2 is a process flow illustrating the steps in displaying one or more images in accordance with the invention.

Of the many operations that take place relative to document viewing, the transmission of the document image to the user's viewer or browser 6 is by far the largest bottleneck. By parallelizing the transfer of select portions of the document, this bottleneck is eliminated. It is the parallel aspect of the document request/delivery/display process that enables near instant response time from the remote server 8 and provides the user 4 with a desktop-like experience. Performance remains consistent even when zooming in and out, as those tiles which are not in view are not processed or transferred. Lastly, since all document formats (e.g. PDF, DOC, etc.) are rendered into JPG for native display in the browser 6, the user 6 experiences consistent performance and feature availability (e.g. annotations, email, etc.) regardless of the format of the original document.

The tiled document viewer system 2 comes into play as soon as the user 4 clicks a document name from a displayed list in the browser 6, as shown in step 51. The user 4 has already been authenticated at this point and has appropriate document viewing privileges. Once a document is selected for display, the browser 6 formulates the request 16 for specific document metadata from the server 8, as show in step 52. The document metadata request includes document resolution, size, number of pages, the amount and type of annotations, specific end user permissions, and more.

Similar to scanning or eFiling service requests, the server 8 validates each request 16 for metadata or documents by confirming the presence of the proper security nonce—which is passed directly from the browser 6 as part of the request for document metadata.

The server 8 begins by analyzing the document to determine its size and then retrieves the additional metadata from the document management metadata database 30, as shown in step 53. Once all required data has been assembled, the server 8 returns the collection of metadata to the browser 6 owning the request, as shown in step 54. The browser 6 receives the metadata response and uses the information to calculate the total number of tiles—or rectangular pieces—necessary to divide up the requested document in an optimal manner, as shown in step 55. In addition, the browser 6 adjusts viewing features and functionality according to the available permissions assigned to the user 4, as shown in step 56. Specifically, the viewing functionality is either enabled or disabled as needed to align with granted end user rights.

The browser 6 next utilizes a portion of the returned metadata to calculate and request only those tiles needed for viewing using a compute view module 14, as shown in step 57. The objective of the limited tile selection process is to optimize image display by calculating which tiles are visible based on the geometry of the viewer or browser 6, size of the image file, etc. and leave out all other tiles currently outside the active viewing area. The server 8 receives the document and tile request, as shown in step 58, and first checks its image cache 24 for the presence of the requested document. The image cache 24 implements a Least Recently Used (LRU) methodology which essentially maintains the most recent/frequently used documents in a dynamic cache for quick access.

If the requested document is located in cache 24, as shown in step 59, then the server 8 carves the image into the requested number of tiles, as show in step 60. Once completed, the server 8 streams the requested tiles in parallel back to the browser 6 owning the request, as show in step 61, and the tiles are received and displayed in the browser 6 in parallel, as shown in step 62. If the requested document is not currently in cache, then the server retrieves the document from store 28 and prepares it for inclusion in the cache 24, as shown in step 63. Before the retrieved document can be added to the cache 24, the document file type must be determined. The server 8 checks to see if the retrieved document is already an image file (e.g. TIFF, BMP, etc.), as shown in step 64, and if so, converts the image to the standard JPG format, as shown in step 65. If the retrieved document is not currently an image file (e.g. PDF, DOC, etc.), the server 8 renders the document into a single to multi-page TIFF document, as shown in step 66. Once rendered to TIFF, the multi-page interim file is quickly and easily converted to a browser renderable format, such as JPG, as shown in step 67.

At this point, the requested document has been converted to JPG format and an image processing module 26 applies anti-aliasing to the converted image so as to smooth lines and text for better readability, as shown in step 68. Once the anti-aliasing process is complete, the LRU process removes the oldest/least used document from the image cache 24 and inserts the just-converted JPG document, as shown in step 69.

Once the requested document is converted to JPG and stored in the cache 24, it is treated as any other cached document and carved into the requested number of tiles, as shown in step 60, before being streamed back to the UI, as shown in step 61, and displayed in the viewer via parallel operation, as shown in step 62.

As described herein, the invention provides a viewing system that allows a user to view documents that are stored remotely. The viewing system uses a browser-based tool that implements a parallelizing technique of preparing for viewing remote documents. The invention uses tiles, which are rectangular regions of a document, which are compiled to form an image. In particular, not all of the tiles are used instead those tiles needed to form an image that is within a viewing area are used. This minimizes the normal bottlenecks associated other known systems. Resources are not expanded on tiles that are not viewed by a user, only those necessary to present the current document view which is often a subset of the whole image. To further increase efficiency, all image data is converted into JPG format for viewing in a browser.

Although the present invention has been shown and described with respect to several preferred embodiments thereof, various changes, omissions and additions to the form and detail thereof, may be made therein, without departing from the spirit and scope of the invention.

Claims

1. A document viewing system comprising:

a browser that receives one or more user requests to view a document being stored remotely, the browser issues a first request to a server for metadata associated with the document and based on the received metadata determines a selective number of tiles needed for viewing the document, the browser issues a second request to the server requesting the selective number of tiles for viewing the document, the selective number tiles are only those tiles available for viewing in a viewing area in the browser, the server sends the selective number of tiles in parallelized fashion to the browser, the browser receives the selective number of tiles from the server and displays the document to a user.

2. The viewing system of claim 1, wherein said the server retrieves metadata from a metadata base.

3. The viewing system of claim 1, wherein the server comprises an image cache for storing recently used image data for processing.

4. The viewing system of claim 3, wherein the server checks the presence of the document in the image cache and sends the document to the browser.

5. The viewing system of claim 4, wherein the server replaces the least used document in the image cache with a recently used document.

6. The viewing system of claim 1, wherein the metadata comprises information of geometry of the browser, the viewing area, and size of the image file.

7. The viewing system of claim 1, wherein the server converts the image data of the document into a browser renderable format.

8. The viewing system of claim 1, wherein the server forms the selective number of tiles by assigning a number of rectangular regions to the image data of the document.

9. A method of viewing remote documents comprising:

receiving one or more user requests using a browser to view a document being stored remotely;
issuing a first request to a server for metadata associated with the document and based on the received metadata;
determining a selective number of tiles needed for viewing the document based on the received metadata;
issuing a second request to the server requesting the selective number of tiles for viewing the document, the selective number tiles are only those tiles available for viewing in a viewing area in the browser; and
sending the selective number of tiles in parallelized fashion to the browser, the browser receives the selective number of tiles from the server and displays the document to a user.

10. The method of claim 9, wherein said the server retrieves metadata from a metadata base.

11. The method of claim 9, wherein the server comprises an image cache for storing recently used image data for processing.

12. The method of claim 11, wherein the server checks the presence of the document in the image cache and sends the document to the browser.

13. The method of claim 12, wherein the server replaces the least used document in the image cache with a recently used document.

14. The method of claim 9, wherein the metadata comprises information of geometry of the browser, the viewing area, and size of the image file.

15. The method of claim 9, wherein the server converts the image data of the document into a browser renderable format.

16. The method of claim 9, wherein the server forms the selective number of tiles by assigning a number of rectangular regions to the image data of the document.

17. A computer readable medium for storing a program being executed on a computer system, the programs performs a method of viewing remote documents comprising:

receiving one or more user requests using a browser to view a document being stored remotely;
issuing a first request to a server for metadata associated with the document and based on the received metadata;
determining a selective number of tiles needed for viewing the document based on the received metadata;
issuing a second request to the server requesting the selective number of tiles for viewing the document, the selective number tiles are only those tiles available for viewing in a viewing area in the browser; and
sending the selective number of tiles in parallelized fashion to the browser, the browser receives the selective number of tiles from the server and displays the document to a user.

18. The computer readable of claim 17, wherein said the server retrieves metadata from a metadata base.

19. The computer readable of claim 17, wherein the server comprises an image cache for storing recently used image data for processing.

20. The computer readable of claim 19, wherein the server checks the presence of the document in the image cache and sends the document to the browser.

21. The computer readable of claim 20, wherein the server replaces the least used document in the image cache with a recently used document.

22. The computer readable of claim 17, wherein the metadata comprises information of geometry of the browser, the viewing area, and size of the image file.

23. The computer readable of claim 17, wherein the server converts the image data of the document into a browser renderable format.

24. The computer readable of claim 17, wherein the server forms the selective number of tiles by assigning a number of rectangular regions to the image data of the document.

Patent History
Publication number: 20120089901
Type: Application
Filed: Sep 28, 2011
Publication Date: Apr 12, 2012
Applicant: NOLIJ CORPORATION (Beverly, MA)
Inventors: John J. Collins (South Hamilton, MA), Sean J. Langford (Middleton, MA)
Application Number: 13/247,337
Classifications
Current U.S. Class: Structured Document (e.g., Html, Sgml, Oda, Cda, Etc.) (715/234)
International Classification: G06F 17/00 (20060101);