IP Library Granted Patent US 8,630,978
Granted Patent B2
US 8,630,978 · App. 13/294,411 · Granted Jan 14, 2014

Method of bi-directional synchronization of user data

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,630,978
App. No.
13/294,411
Granted
Jan 14, 2014
Kind
B2
Abstract

Techniques for enabling writing and reading to and from a user file by at least a virtual software application. The user file includes a session file, an index file, and a data file. The techniques enable roaming between computers without the need to reconfigure, for example, the personalized information when switching between computers.

Claims (36)

1. A method for writing a data block to a user data file by a software application being executed by a computer including at least one processing unit and a memory, wherein the user data file includes a session file, an index file, and a data file, comprising:

upon reception of a write request, computing a page index of a page in the index file;

computing an offset value to a location of the page in the index file;

determining a write offset indicating a location in the data file for the data block by:

checking if the page exists in the index file and if the page has been changed during a current session, wherein the current session is designated in the session file, wherein the session file further designates a creation time and close time of the current session, and

setting the write offset to an end of the data file, when the page is not in the index file or when the page has not been changed during the current session, thereby enabling restoring data to a specific point in time; and

writing the data block at the location indicated by the write offset.

2. The method of claim 1 , wherein determining the write offset further comprising:

setting the write offset to the computed offset value when the page is in the index file and when the page has been changed during the current session, thereby overwriting an existing data block in the data file.

3. The method of claim 1 , wherein writing the data block at the end of the data file,

further comprising:

updating contents of the index file to point to the location of the data block in the data file.

4. The method of claim 1 , wherein the user data file includes at least personalized information, wherein the user data file is being accessed by a software application during its execution.

5. The method of claim 4 , wherein the software application is at least a software virtual application.

6. The method of claim 5 , further comprising:

establishing a session in the session file when the virtual software application is launched, wherein the virtual software application is any virtual software application from a predefined group of virtual software applications.

7. The method of claim 6 , further comprising:

running any software application from the predefined group of virtual software applications in the established session.

8. A method for reading a data block to a user data file by a software application being executed by a computer including at least one processing unit and a memory, wherein the user data file includes a session file, an index file, and a data file, comprising:

upon reception of a read request, computing a page index of a page in the index file, wherein the read request contains a reference to a current session included in the session file and a number of bytes to read;

computing, using the current session, an offset value to a location of the page in the index file maintained by a client;

determining using the computed offset value a location containing a most updated version of the data block by setting the location to point to a data file maintained by a client, if the computed offset value exists in the index file maintained by the client and setting the location to point to a data file maintained by a server, if the computed offset value does not exist in the index file maintained by the client; and

reading the data block from the determined location.

9. The method of claim 8 , setting the location to point to the data file maintained by the server, further comprising:

computing an offset value in a reflection index file maintained by the server; and

accessing the data block in the data file through the reflection index file maintained by the server.

10. The method of claim 9 , wherein when reading the data block from the server further comprising:

saving the data block in the data file maintained by the client; and

updating the respective index file and session file maintained by the client to point to the saved data block.

11. The method of claim 8 , wherein a user data file includes at least personalized information, wherein the user data file is being accessed by a software application during its execution, and wherein the software application is a virtual software application.

12. The method of claim 11 , further comprising:

establishing a session in the session file when the virtual software application is launched, wherein the virtual software application is any virtual software application from a predefined group of virtual software applications.

13. The method of claim 12 , further comprising:

running any software application from the predefined group of virtual software applications in the established session.

14. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 1 .

15. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 8 .

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2015
From: WATCHDOX LTD
To: BLACKBERRY LIMITED
Reel/Frame 037342/0257 →
NUNC PRO TUNC ASSIGNMENT Recorded Apr 27, 2015
From: INSTALL FREE, INC.
To: WATCHDOX LTD.
Reel/Frame 035503/0797 →