System and method for file sharing and updating
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/16
G06F-017/30
H04L-029/06
출원번호
US-0209428
(2014-03-13)
등록번호
US-8856256
(2014-10-07)
발명자
/ 주소
Srinivasan, Tiruvali S
출원인 / 주소
CoralTree Inc.
대리인 / 주소
Courtney IP Law
인용정보
피인용 횟수 :
12인용 특허 :
4
초록▼
Embodiments of the present invention include a method and system for sharing changes made by an application to a file on one computer, coherently with other computers, over the Internet. If the application changes multiple files (also referred to as a file group), changes made to all the files are s
Embodiments of the present invention include a method and system for sharing changes made by an application to a file on one computer, coherently with other computers, over the Internet. If the application changes multiple files (also referred to as a file group), changes made to all the files are shared together coherently with other computers over the Internet. Coherence over multiple file copies and file group copies is maintained whether users work on files online or offline. A ‘File Upload Lock’ is maintained on a Cloud Server for ensuring coherent sharing of changes made to files. Embodiments include two file syncing processes, variously described as ‘Incremental File Upload’ or ‘Incremental File Download’ and ‘Delta File Upload’ or ‘Delta File Download’. Embodiments also encompass an ‘Explorer’ software tool and user interface that displays folders and files on user devices with pertinent details from the device and the Cloud Server.
대표청구항▼
1. A computer implemented method for electronic file sharing, the method comprising: a server executing an electronic file sharing process for providing a plurality of users access to a plurality of electronic files via the Internet;at least one processor executing a client software process for elec
1. A computer implemented method for electronic file sharing, the method comprising: a server executing an electronic file sharing process for providing a plurality of users access to a plurality of electronic files via the Internet;at least one processor executing a client software process for electronic file sharing on a user device, wherein the client software process communicates with the server via the Internet, and wherein the process comprises monitoring user electronic files to determine whether the user has setup a new shared file;if the user has setup a new shared file, the client software process requesting a file upload lock for the new shared file; andthe server issuing the file upload lock when the server determines that conditions are met, the conditions comprising the file upload lock is not currently issued to another user that has previously setup the same shared file. 2. The method of claim 1, wherein the conditions further comprise: an upload file lock is not set;a download file lock is not set; anda file download lock is not set. 3. The method of claim 1, further comprising: a client software process for electronic file sharing on a user device monitoring user electronic files to determine whether the user has opened a shared file on the user device, wherein opening comprises executing a software application adapted to open and modify the shared file;when the shared file is opened, the client software process displaying a message to ask the user whether the user wants to acquire a file upload lock in order to be enabled to modify the shared file;the client software process receiving input from the user requesting the file upload lock for the shared file;the client software process communicating with the server to request the file upload lock for the shared file;the server determining if conditions are met to issue the file upload lock for the shared file, the conditions comprising,the file upload lock is not set;an upload file flag is not set;a download file flag is not set; anda file download lock is not set. 4. The method of claim 3, further comprising: the server and the client software process periodically performing a handshake comprising communicating to determine whether any shared files might be modified since a previous handshake;during the handshake, determining whether the file upload lock is set;if the file upload lock is set, the server instructing the client software process to initiate an upload shared file process;the client software process determining whether the shared file is closed by the application;if the file is closed, the client software process making a copy of the shared file;the client software process copying the shared file from a shared folder to a sync folder;during the handshake, determining whether a download file flag is set for the shared file; andif the download file flag is set, the server instructing the client software process to download the shared file from the cloud storage area to a sync folder. 5. The method of claim 4, further comprising: the client software process communicating with the server to request upload of the shared file from the sync folder;the server resetting the file upload lock and setting an upload file flag for the shared file;the server instructing the client software process to upload the shared file to a cloud storage area via the Internet; andthe server resetting the upload file flag for the shared file and setting a download file flag for the shared file. 6. The method of claim 5, wherein uploading the shared file to the cloud storage area comprises an incremental upload process comprising: the client software process dividing the shared file in the sync folder into a plurality of parts of a predetermined size;the client software process computing a checksum for each of the parts;the client software process computing a checksum for the shared file;the client software process requesting an incremental upload of the shared file from the server;the server determining if the shared file is a new file;if the shared file is a new file, the server instructing the client software process to upload all of the parts to the cloud storage area;the server creating a new record for the shared file; andthe server storing data related to the file comprising a version number, a number of parts, a sequence number, the checksum for each part and the checksum for the shared file. 7. The method of claim 6 wherein the incremental upload process further comprises: if the shared file is not a new file, the server comparing the checksum for the file communicated by the client software process and a stored checksum;if the two checksums are equal, the server cancelling the file upload; andif the two checksums are not equal, the server comparing data for a stored version of the shared file with similar data for the shared file to be uploaded, the data comprising the number of parts and the checksum for each part. 8. The method of claim 7, wherein the incremental upload process further comprises: the server instructing the client software process to upload to the cloud storage area, parts with a same sequence number and checksums that do not match stored checksums; andparts with sequence numbers that are greater than the last stored sequence number for the stored version of the shared file. 9. The method of claim 6, wherein the uploading the shared file to cloud storage area comprises a delta upload process comprising: the client software process determining whether a base file exists in a base file folder;if the base file does not exist in the base file folder, the clients software process uploading the shared file from the sync folder to the cloud storage area;the server storing data related to the shared file uploaded;the server instructing the client software process to copy the shared file in the sync folder to the base folder and marks the shared file as a base file; andif the base file does exist in the base folder, the client software process using the delta encoding utility to compute the differences between the shared file in the sync folder and the base file in the base folder to generate a patch file. 10. The method of claim 4, wherein downloading the shared file comprises an incremental download process comprising: the client software process determining whether the shared file exists in the sync folder;if the shared file exists in the sync folder, the client software process dividing the shared file into a plurality of parts of a predetermined size;the client software process assigning a sequence number to each part;the client software process computing a checksum for each part; andthe client software process computing a checksum for the shared file. 11. The method of claim 10, wherein the incremental download process further comprises: the client software process communicating with the server to request an incremental download of the file, wherein the client software process provides the server a number of parts in the shared file, the sequence number of each part, and the checksum of each part; andthe server instructing the client software process to download and replace parts whose checksums do not match the checksums of parts with the same sequence number stored in the cloud storage area;the server instructing the client software process to download new parts whose sequence numbers are greater than a greatest sequence number provided by the client software process; andthe server instructing the client software process to delete parts with sequence numbers that do not exist in the cloud storage area. 12. The method of claim 11, wherein the incremental download process further comprises: the client software process computing the checksum of the shared file in the sync folder;the client software process comparing the computed checksum to the checksum of the shared file provided by the server; andif the checksums are not equal, the client software process retrying the incremental download process. 13. The method of claim 4, wherein downloading the shared file comprises a delta download process comprising: the client software process determining whether there is a base file in a base folder;if there is no base file in the base folder, the client software process requesting download of a complete new shared file from the server;the server instructing the client software process to download the new shared file from the cloud storage area and providing a checksum of the new shared file;the client software process downloading the new shared file to the sync folder;the client software process comparing the checksum of the new shared file with the checksum from the server;if the checksums are equal, the client software process communicating to the server that the download was successful;the server instructing the client software process to mark the new shared file as a base file; andthe server instructing the client software process to copy the new shared file from the sync folder to the base folder. 14. The method of claim 4, wherein the delta download process further comprises: if there is a base file in the base file folder, the client software process communicating with the server to request a delta download;the client software process communicating with the server to provide a checksum of a base file to the server;the server comparing the provided checksum with a checksum of a base file stored in the cloud storage area;if the checksums are not equal, the server instructing the client software process to display an error message to the user;if the checksums are equal, the server instructing the client software process to download a patch file;the server providing the client software process a checksum of the patch file, and a checksum of the shared file;the client software process comparing the checksums of the patch file;if the checksums are equal, the client software process applying the patch file to the base file to generate the shared file;the client software process comparing the checksum of the generated shared file with the checksum provided by the server; andif the checksums are not equal, the client software process retrying the delta download process a predetermined number of times. 15. A non-transient computer readable medium having instruction stored thereon, that when executed in one or more processors cause the one or more processors to perform a file sharing method, the method comprising: a server processor executing an electronic file sharing process for providing a plurality of users access to a plurality of electronic files via the Internet;at least one processor executing a client software process for electronic file sharing on a user device, wherein the client software process communicates with the server via the Internet, and wherein the process comprises monitoring user electronic files to determine whether the user has setup a new shared file;if the user has setup a new shared file, the client software process requesting a file upload lock for the new shared file; andthe server processor issuing the file upload lock when the server determines that conditions are met, the conditions comprising the file upload lock is not currently issued to another user that has previously setup the same shared file. 16. The medium of claim 15, wherein the conditions further comprise: an upload file condition does not exist;a download file condition does not exist; anda file download lock is not set. 17. The medium of claim 15, wherein the file sharing method further comprises: a client software process for electronic file sharing on a user device monitoring user electronic files to determine whether the user has opened a shared file on the user device, wherein opening comprises executing a software application adapted to open and modify the shared file;when the shared file is opened, the client software process displaying a message to ask the user whether the user wants to acquire a file upload lock in order to be enabled to modify the shared file;the client software process receiving input from the user requesting the file upload lock for the shared file; andthe client software process communicating with the server to request the file upload lock for the shared file. 18. The medium of claim 17, wherein the file sharing method further comprises: the server processor determining if conditions are met to issue the file upload lock for the shared file, the conditions comprising,the file upload lock is not set;an upload file condition does not exist;a download file condition does not exist; anda file download lock is not set. 19. The medium of claim 18, wherein the file sharing method further comprises: the server processor setting the file upload lock for the shared file; andthe server processor through the client software process informing the user that the file upload lock has been issued and the user can modify the shared file. 20. The medium of claim 18, wherein the file sharing method further comprises: the client software process receiving input from the user declining the file upload lock for the shared file; andthe client software process displaying a message to the user to confirm that changes made to the file by the user will not be saved. 21. The medium of claim 19, wherein the file sharing method further comprises: the server processor and the client software process periodically performing a handshake comprising communicating to determine whether any shared files might be modified since a previous handshake;during the handshake, determining whether the file upload lock is set; andif the file upload lock is set, the server processor instructing the client software process to initiate an upload shared file process. 22. The medium of claim 21, wherein the file sharing method further comprises: the client software process determining whether the shared file is closed by the application; andif the file is closed, the client software process making a copy of the shared file. 23. The medium of claim 22, wherein making a copy of the shared file comprises copying the shared file from a shared folder to a sync folder.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.