IP Library Granted Patent US 8,504,827
Granted Patent B1
US 8,504,827 · App. 13/779,023 · Granted Aug 6, 2013

Document server and client device document viewer and editor

Inventors: Shane K. Sizer (Bozeman, MT); Graham I. Cummins (Livingston, MT); Bert Jeffrey Lutzenberger (Bozeman, MT); Gary D. Orser (Bozeman, MT); Benjamin P. Echols (Bozeman, MT); Jeffrey D. Trom (Bozeman, MT)
Assignee: Webfilings LLC
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,504,827
App. No.
13/779,023
Granted
Aug 6, 2013
Kind
B1
Abstract

A method of storing a document on a server, including: extracting document content from a document stored on the server, using a processor on the server; dividing the document content into a plurality of document content sections; generating a parallel data structure for the plurality of document content sections based on a viewing size, where the parallel data structure includes a plurality of selectors, and the plurality of selectors includes pagination selectors; and storing the plurality of document content sections in a plurality of locations on the server. The method may further include storing the parallel data structure in a location on the server separate the plurality of document content sections; generating a table of contents based on the pagination; and rendering the plurality of document content sections into a plurality of document pages based on the plurality of selectors in the parallel data structure.

Claims (74)

1. A method of storing a document on a server, comprising:

extracting document content from a document stored on the server, using a processor on the server;

dividing the document content into a plurality of document content sections;

generating a parallel data structure for the plurality of document content sections based on a viewing size, wherein the parallel data structure comprises a plurality of selectors, and the plurality of selectors comprises pagination selectors;

encrypting each document content section of the plurality of document content sections;

storing the plurality of encrypted document content sections in a plurality of locations on the server;

generating a table of contents based on the pagination selectors in the parallel data structure; and

storing the table of contents on the server.

2. The method of storing a document server according to claim 1 , further comprising:

storing the parallel data structure in a location on the server separate from the plurality of locations in which the plurality of encrypted document content sections are stored.

3. The method of storing a document on a server according to claim 1 , further comprising:

rendering the plurality of document content sections into a plurality of document pages based on the plurality of selectors in the parallel data structure; and

storing the plurality of document pages on the server.

4. The method of storing a document on a server according to claim 1 , wherein the plurality of selectors further comprises a selector selected from the group consisting of a format selector, a style selector, a link selector, a line selector, and an annotation selector.

5. The method of storing a document on a server according to claim 1 further comprising:

receiving a request to remotely access a portion of the document stored on the server; and

authenticating the request.

6. A non-transitory computer program product, comprising a computer usable medium having a computer readable code embodied therein, said computer readable program code adapted to be executed to implement the method of storing a document on a server according to claim 1 .

7. A method of storing a document on a server for a plurality of viewing sizes, comprising:

extracting document content from a document stored on the server, using a processor on the server;

generating a plurality of parallel data structures corresponding to a plurality of viewing sizes, wherein for each viewing size of the plurality of viewing sizes:

dividing the document content into a plurality of document content sections;

generating a parallel data structure for the plurality of document content sections based on the viewing size, wherein the parallel data structure comprises a plurality of selectors, and the plurality of selectors comprises pagination selectors;

encrypting each document content section of the plurality of document content sections;

storing the plurality of encrypted document content sections in a plurality of locations on the server;

generating a table of contents based on the pagination selectors in the parallel data structure; and

storing the table of contents on the server.

8. The method of storing a document server according to claim 7 , further comprising, for each viewing size of the plurality of viewing sizes:

storing the parallel data structure in a location on the server separate from the plurality of locations in which the plurality of encrypted document content sections are stored.

9. The method of storing a document on a server according to claim 7 , further comprising, for each viewing size of the plurality of viewing sizes:

rendering the plurality of document content sections into a plurality of document pages based on the plurality of selectors in the parallel data structure; and

storing the plurality of document pages on the server.

10. The method of storing a document on a server according to claim 7 , wherein for each viewing size of the plurality of viewing sizes, the plurality of selectors further comprises a selector selected from the group consisting of a form at selector, a style selector, a link selector, a line selector, and an annotation selector.

11. The method of storing a document on a server according to claim 7 , further comprising:

receiving a request to remotely access a portion of the document stored on the server; and

authenticating the request.

12. A method for viewing and updating a document in a client-server architecture, comprising:

on the server:

extracting, using a processor on the server, document content from a document stored on the server;

dividing the document content into a plurality of document content sections;

generating a parallel data structure for the plurality of document content sections based on a viewing size, wherein the parallel data structure comprises a plurality of selectors, and the plurality of selectors comprises pagination selectors;

generating a table of contents based on the pagination selectors;

storing the table of contents on the server;

rendering the plurality of document sections into a plurality of document pages based on the plurality of selectors in the parallel data structure;

storing the plurality of document pages in a plurality of locations on the server;

requesting, on the client device, to view the document stored on the server;

transmitting, from the server to the client device, the table of contents;

requesting, on the client device, to view at least one document page of the document based on the table of contents;

transmitting, from the server to the client device, only the requested at least one document page and a predetermined number of document pages preceding and following the requested at least one document page;

storing, on the client device, the received document pages; and

displaying, on the client device, the requested at least one document page.

13. The method for viewing and updating a document in a client-server architecture according to claim 12 , further comprising:

receiving and storing, on the client device, document editing requests;

transmitting, from the client device to the server, the stored document editing requests;

updating, on the server, the parallel data structure based on the transmitted document editing requests; and

updating, on the server, only the document content section corresponding to the document pages transmitted from the server to the client device, based on the transmitted document editing requests.

14. The method for viewing and updating a document in a client-server architecture according to claim 12 , wherein the updating of the parallel data structure comprises:

modifying only selectors that correspond to the transmitted document editing requests.

15. The method for viewing and updating a document in a client-server architecture according to claim 12 , wherein the transmitting, from the client device to the server, the stored document editing requests comprises:

transmitting the stored document editing requests only when the client device is connected to the server via a communication link.

16. The method for viewing and updating a document in a client-server architecture according to claim 12 , wherein when a scrolling function is enabled on the client device, delaying the request to view the at least one document page of the document for a first predetermined period of time.

17. The method for updating a document in a client-server architecture according to claim 16 , wherein the at least one document page of the document is a destination page of the document after the scrolling function is deactivated.

18. The method for viewing and updating a document in a client-server architecture according to claim 16 , further comprising:

delaying, on the client device, the request to view the at least one page of document for a second predetermined period of time, when the first predetermined period of time has elapsed and the scrolling function is still activated.

19. A server for storing a document comprising:

a memory;

a server processor comprising:

a document content extractor that extracts document content from a document stored in the memory;

a document content divider that divides the document content into a plurality of document content sections;

a parallel data generator that generates a parallel data structure for the document based on a viewing size, wherein the parallel data structure comprises a plurality of selectors, and the plurality of selectors comprises pagination selectors;

an encryption unit that encrypts each document content section of the plurality of document content section; and

a table of contents generator that generates a table of contents according to the pagination selectors in the parallel data structure.

20. The server according to claim 19 , wherein the server processor further comprises:

a document page renderer that renders the plurality of document content sections into a plurality of document pages according to the plurality of selectors in the parallel data structure.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Aug 15, 2019
From: SILICON VALLEY BANK
To: WORKIVA INC.; WORKIVA INTERNATIONAL LLC
Reel/Frame 050062/0928 →
CHANGE OF NAME Recorded Mar 23, 2015
From: WORKIVA LLC
To: WORKIVA INC.
Reel/Frame 035247/0092 →
SECURITY AGREEMENT Recorded Oct 17, 2014
From: WORKIVA LLC; WORKIVA INTERNATIONAL LLC
To: SILICON VALLEY BANK
Reel/Frame 034013/0098 →
CHANGE OF NAME Recorded Aug 28, 2014
From: WEBFILINGS LLC
To: WORKIVA LLC
Reel/Frame 033647/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2013
From: SIZER, SHANE K.; CUMMINS, GRAHAM I.; LUTZENBERGER, BERT JEFFREY; ORSER, GARY D.; ECHOLS, BENJAMIN P.; TROM, JEFFREY D.
To: WEBFILINGS LLC
Reel/Frame 029888/0147 →