`Veghte et al.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US005845293A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,845,293
`Dec. 1, 1998
`
`[54] METHOD AND SYSTEM OF ASSOCIATING,
`SYNCHRONIZING AND RECONCILING
`COMPUTER FILES IN AN OPERATING
`SYSTEM
`
`[75]
`
`Inventors: William Lewis Veghte, Belleuve;
`Andrew Lawrence Silverman,
`Redmond; Shannon Scott Hysom,
`Mercer Island; David R. Dickman,
`Redmond, all of Wash.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`[21] Appl. No.: 832,333
`
`[22] Filed:
`
`Mar. 26, 1997
`
`[63]
`
`[51]
`[52]
`[58]
`
`[56]
`
`Related U.S. Application Data
`
`Continuation of Ser. No. 287,231, Aug. 8, 1994, abandoned.
`Int. Cl. 6
`...................................................... G06F 17/30
`U.S. Cl. ............................................. 707/202; 707/203
`Field of Search ..................................... 395/618, 619,
`395!620; 709/201-204
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,831,552
`4,866,611
`5,093,787
`
`5/1989 Scully et a!. ............................ 364/518
`. .... ... ... ... ... .... ... ... ... 364/300
`9/1989 Cree et a!.
`3/1992 Simmons ................................ 364/406
`
`5,392,390
`5,560,012
`5,564,051
`5,581,764
`5,600,834
`5,649,200
`5,666,530
`
`2/1995 Crozier .................................... 395/161
`9/1996 Ryu et a!.
`............................... 395/701
`10/1996 Halliwell et a!. ....................... 395/616
`12/1996 Fitzgerald et a!. ... .... ... ... ... ... ... 395/703
`2/1997 Howard ................................... 395/617
`7/1997 Leblang et a!. ... ... .... ... ... ... ... ... 395/703
`9/1997 Clark et a!. . ... ... ... .... ... ... ... ... ... 395/617
`
`OTHER PUBLICATIONS
`
`Aker, S.Z., "FileRunner Shuttle Pilot, and Synchronize!"
`MacUser, vol. 9, No. 9 (Sep. 1993), pp. 89-91.
`MacWeek Magazine, Jan. 11, 1993, "Sync or Swim: Appli(cid:173)
`cations Keep Current On File Synchronization", pp. 63-66.
`Info. World Magazine, Feb. 1, 1993, "SmartSync: An Intel(cid:173)
`ligent Disk Synchronization Utility for Windows", pp. 3-5.
`Mac Week Magazine, Nov. 23, 1992, "Power Books Aplenty
`Pack Pipeline for '93", pp. 1 and 140.
`Mac Week Magazine, Jan. 11, 1993, "Calling All Managers:
`Think Before You Sync", p. 47.
`
`Primary Examiner-Maria N. Von Buhr
`Attorney, Agent, or Firm-Jones & Askew, LLP
`
`[57]
`
`ABSTRACT
`
`A method and system for associating, synchronizing and
`reconciling files. Associated files are synchronized and their
`synchronization status reported. Based on the synchroniza(cid:173)
`tion status, the operating system recommends a preferred
`reconciliation action. Furthermore, file conflicts are recog(cid:173)
`nized and an application interface for computer applications
`is provided to allow conflicting files to be merged.
`
`23 Claims, 12 Drawing Sheets
`
`2
`,-------------------------------------~-------·
`USER
`:
`
`--r -------)--r -----1--------------~ ~----r --·
`
`11
`f'
`
`ASSOCIATION FOLDER
`(BRIEFCASE)
`
`USER INTERFACE
`
`-DRAGGING AND
`DROPPING FILES TO
`BE ASSOCIATED
`
`- REQUEST FOR
`-SYNC. STATUS
`RECONCILIATION- RECOM'v1END REG.
`ACTION
`
`8
`
`(
`
`f--+ DEDICATED
`SYNCHRONIZATION
`DATABASE
`-ASSOCIATED FILE NAME
`1-- -ASSOCIATED FILE PATHS
`-LAST RECONCILIATION
`TIMESTAMP
`
`( 10
`RECONCILIATION HANDLER INTERFACE
`- FILES TO RECONCILE
`- PROGRESS MESSAGES
`-FILE INFORMATION
`- SUCCESS/FAIL MESSAGES
`-POST RESULTS TO SYNC. ENGINE
`- FILE TYPES IN BRIEFCASE
`
`i
`
`__ j ______________________________
`
`RECONCILIATION HANDLER
`-CLASS SPECIFIC
`-APPLICATION PROVIDED
`L-----------------------------------------
`
`t
`
`12
`___ { _________ ,
`:
`'
`
`OPERATING
`SYSTEM
`RESOURCES
`
`16
`
`(
`
`FILE SYSTEM
`-FILE FORMATS
`-FILE SIZES
`-FILE TIME-STAMPS
`
`18
`
`(
`
`REGISTRY
`DATABASE
`-DEFINE REG. HANDLER
`-TYPES OF REG.
`HANDLERS AVAILABLE
`-INVOKING INFORMATION
`
`[-----t-
`
`l
`
`t
`
`l
`
`(6 J
`
`SYNCHRONIZATION ENGINE
`-ASSOCIATES FILES
`-STORE ASSOCIATIONS IN DATABASE
`-DETERMINE SYNC. STATUS
`-PASS ALONG REQUESTED REG. ACTIONS
`- PROVIDE FEEDBACK TO REG. HANDLER
`l_
`
`Samsung Exhibit 1034 Page 00001
`
`
`
`~
`\C
`N
`....
`""(cid:173)Ul
`00
`....
`Ul
`
`'"""' N
`'"""' 0 .....,
`~ .....
`'JJ. =(cid:173)~
`
`00
`'0
`'"""'
`'0
`'"""' ~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`•
`\Jl
`d •
`
`1--1-ASSOCIATED FILE PATHS
`-ASSOCIATED FILE NAME
`DATABASE
`
`TIMESTAMP
`-LAST RECONCILIATION
`
`1--+1 SYNCHRONIZATION
`
`DEDICATED
`
`8
`
`(
`
`11
`
`i
`
`FIG.lA
`
`I
`I
`I·
`
`-APPLICATION PROVIDED
`-CLASS SPECIFIC
`RECONCILIATION HANDLER
`
`I
`
`____________________________________ { ________ _
`
`f
`
`12
`
`----~
`
`---
`
`-
`
`-FILE TYPES IN BRIEFCASE
`-POST RESULTS TO SYNC. ENGINE
`-FILE INFORMATION
`-FILES TO RECONCILE
`
`-
`
`!
`
`I
`
`USER INTERFACE
`
`t
`
`I
`
`ASSOCIATION FOLDER
`
`(BRIEFCASE)
`
`l
`
`·--r--------;;-t-----1--------------~ ~----r--·
`
`USER
`
`:
`:
`--------------------------------------L-------·
`
`2
`
`-SUCCESS/FAIL MESSAGES
`-PROGRESS MESSAGES
`
`RECONCILIATION HANDLER INTERFACE
`
`r 10 T
`
`-PROVIDE FEEDBACK TO REC. HANDLER
`-PASS ALONG REQUESTED REC. ACTIONS
`-DETERMINE SYNC. STATUS
`-STORE ASSOCIATIONS IN DATABASE
`-ASSOCIATES FILES
`
`~
`
`T
`
`RECONCILIATION -RECOMMEND REG.
`-REQUEST FOR
`
`-SYNC. STATUS
`
`f
`
`r6
`ACTION
`
`I
`
`f
`
`SYNCHRONIZATION ENGINE
`
`BE ASSOCIATED
`DROPPING FILES TO
`-DRAGGING AND
`
`I
`
`1----+
`
`-INVOKING INFORMATION
`HANDLERS AVAILABLE
`-TYPES OF REG.
`-DEFINE REG. HANDLER
`DATABASE
`REGISTRY
`
`18
`
`(
`
`I -FILE TIME-STAMPS
`
`-FILE SIZES
`-FILE FORMATS
`FILE SYSTEM
`
`16
`
`(
`
`RESOURCES
`SYSTEM
`OPERATING
`
`Page 00002
`
`
`
`~
`\C
`N
`....
`""(cid:173)Ul
`00
`....
`Ul
`
`'"""' N
`0 ......,
`N
`~ .....
`'JJ. =(cid:173)~
`
`00
`'0
`'"""'
`'0
`'"""' ~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`•
`\Jl
`d •
`
`1--1-ASSOCIATED FILE PATHS
`-ASSOCIATED FILE NAME
`DATABASE
`
`TIMESTAMP
`-LAST RECONCILIATION
`
`1---+1 SYNCHRONIZATION
`
`GLOBAL
`
`_L210 1
`
`FIG.l B
`
`-----------------------------------~
`
`-APPLICATION PROVIDED
`-CLASS SPECIFIC
`RECONCILIATION HANDLER
`
`i
`
`(212
`
`l
`
`-FILE TYPES IN BRIEFCASE
`-POST RESULTS TO SYNC. ENGINE
`-FILE INFORMATION
`-FILES TO RECONCILE
`
`-SUCCESS/FAIL MESSAGES
`-PROGRESS MESSAGES
`
`RECONCILIATION HANDLER INTERFACE
`
`-PROVIDE FEEDBACK TO REC. HANDLER
`-PASS ALONG REQUESTED REC. ACTIONS
`-DETERMINE SYNC. STATUS
`-STORE ASSOCIATIONS IN DATABASE
`-ASSOCIATES FILES
`
`!
`
`J----+
`
`-INVOKING INFORMATION
`HANDLERS AVAILABLE
`-TYPES OF REG
`-DEFINE REG HANDLER
`DATABASE
`REGISTRY
`
`218
`
`(
`
`208
`
`(
`
`211
`
`('
`
`I
`
`USER INTERFACE
`
`II
`
`,_ -T ------)05 f-----r -------------~ ~~~--T --,
`
`:
`:
`______________________________________ ( _______ ,
`
`USER
`
`202
`
`RECONCILIATION-RECOMMEND REG
`-REQUEST FOR
`
`-SYNC. STATUS
`
`1206 T
`
`ACTION
`
`T
`
`SYNCHRONIZATION ENGINE
`
`BE ASSOCIATED
`DROPPING OF FILES TO
`DRAGGING AND
`-NON-DEFAULT
`I CONTEXT MENU
`
`-~ --1
`
`l
`
`1 -FILE TIME-STAMPS ~
`
`-FILE SIZES
`-FILE FORMATS
`FILE SYSTEM
`
`216
`
`(
`
`RESOURCES
`SYSTEM
`OPERATING
`
`Page 00003
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 3 of 12
`
`5,845,293
`
`ASSOCIATION
`
`FIG. 3A
`OR
`FIG. 3B
`
`SYNCHRONIZATION
`
`30
`
`USER SELECTS FILE FOR
`ASSOCIATION ACTION
`
`32
`
`PERFORM REQUESTED
`ASSOCIATION ACTION BY
`ALTERING SYNC. DATABASE
`
`34
`
`UPDATING
`EVENT
`
`RECONCILIATION
`
`FIG.5
`
`36
`
`NO
`
`DETERMINE POSSIBLE RECONCILIATION
`ACTIONS AND RECOMMEND
`PREFERRED ACTION
`
`40
`
`DISPLAY RECONCILIATION ACTIONS
`42
`
`USER REQUESTED RECONCILIATION
`ACTION
`
`44
`
`FIG. 7
`
`PASS REQUESTED RECONCILIATION
`ACTION TO PROPER REC. MECHANISM
`46
`
`UPDATE SYNC. DATABASE
`
`FIG.2
`
`Page 00004
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 4 of 12
`
`5,845,293
`
`50
`
`USER SELECTS, DRAGS
`AND DROPS FILE
`
`YES
`
`YES
`
`58
`
`59
`
`COPY FILE TO
`DROP LOCATION
`
`MOVE FILE TO
`DROP LOCATION
`
`60
`
`ADD NAME
`TIME-STAMPS AND
`PATHS OF FILES
`INTO SYNC.
`DATAMSE
`
`66
`MOVE FILE FROM
`BRIEFCASE TO
`DROP LOCATION
`
`68
`
`DELETE NAME
`LAST REC. ACTION
`TIME-STAMPS AND
`PATHS FROM
`SYNC. DATABASE
`
`( END ) FIG.JA
`
`Page 00005
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 5 of 12
`
`5,845,293
`
`80
`
`USER SELECTS FILE AND PERFORMS
`NON-DEFAULT DRAG AND DROP
`
`NO
`
`YES
`
`YES
`
`NO
`
`88
`
`COPY FILE TO
`DROP LOCATION
`
`90
`
`ADD NAME
`TIME-STAMPS AND
`PATHS INTO
`GLOBAL DATABASE
`
`( END )
`
`FIG.JB
`
`Page 00006
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 6 of 12
`
`5,845,293
`
`/Bt(/;;JV.J.-~~~~:-o:-L·,..//~/·.<c//>//;.··•····/".
`.·~~/· .. · ....... // ./.• .. /·
`..
`·.
`/ .
`'"-'
`... ////// .. /// .. «•/ /;; /
`/MLJ~t:J[.'
`~--;'////////// //////,/
`.
`/
`/
`/
`'
`.
`- Include Object of Type
`+IAII T~Qes In Folder!
`0 Selected Types
`
`Application
`Card File
`DocumentFindFile
`Folder
`HelpFile
`MediaCiip
`
`D Cost Applications
`
`~
`..._
`
`~
`'V
`
`Ellnclude Subfolders of the Winword folder
`
`OK
`
`II
`
`I
`
`II Cancel I
`
`Help I
`
`II
`
`FIG.4
`
`Page 00007
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 7 of 12
`
`5,845,293
`
`UPDATING EVENT
`
`102
`GET NAME, FILE STAMPS AT LAST RECONCILIATION AND
`FILE PATHS OF ASSOCIATED FILES FORM SYNC. DATABASE
`
`106
`COMPARE LAST RECONCILIATION
`TIME-STAMP OF THE BRIEFCASE
`FILE WITH THE CURRENT
`BRIEFCASE FILE TIME-STAMP
`
`131
`COMPARE LAST
`RECONCILIATION
`TIME-STAMP OF
`THE BRIEFCASE
`FILE WITH THE
`CURRENT BRIEFCASE
`FILE TIME-STAMP
`
`136
`
`REPORT THAT
`BRIEFCASE FILE
`IS AN ORPHAN
`
`YES
`
`NO
`
`133
`
`REPORT THAT
`SYNC. FILE IS
`UNAVAILABLE
`
`130
`
`(
`
`NO
`
`YES
`
`( END )
`
`MATCH UNE TO FIG~ 58:;
`
`Page 00008
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 8 of 12
`
`5,845,293
`
`MATCH LINE TO FIG. 5A
`
`110
`COMPARE LAST
`RECONCILIATION
`TIME-STAMP OF
`THE SYNC. FILE
`WITH THE CURRENT
`SYNC. FILE
`TIME-STAMP
`
`118
`COMPARE LAST
`RECONCILIATION
`TIME-STAMP OF
`THE SYNC. FILE
`WITH THE CURRENT
`SYNC. FILE
`TIME-STAMP
`
`NO
`
`YES
`
`NO
`
`122
`116
`114
`REPORT STATUS REPORT STATUS
`AS"NEEDS
`AS"NEEDS
`REPORT
`UP[)\TING" AND UPDATING" AND
`STATUS RECOMMEND TO RECOMMEND TO
`M5
`'REPLACE" SYNC.
`"REPLACE"
`"UP-TO-
`BRIEFCASE FILE
`FILE WITH
`DATE'' WITH SYNC. FILE BRIEFCftSE FILE
`
`l 126
`
`j
`
`REPORT
`REPORT
`STATUS
`STATUS
`ftS"NEEDS
`ftS"NEEDS
`UPDATING" UPDATING"
`AND SHOW
`AND
`"?"
`RECOMMEND
`''MERGE"
`
`Page 00009
`
`
`
`~
`\C
`N
`....
`""(cid:173)Ul
`00
`....
`Ul
`
`'"""' N
`0 ......,
`'0
`~ .....
`'JJ. =(cid:173)~
`
`00
`'0
`'"""'
`'0
`'"""' ~
`!"l
`~
`~
`
`~ = ......
`
`~ ......
`~
`•
`\Jl
`d •
`
`FIG.6
`
`Orphan
`Up-to-date
`Needs updating
`Up-to-date in Br
`Up-to-date
`Needs updating
`Needs updating
`Status
`
`07/27/93 09:24AM
`07/27/93 09:25AM
`10/04/93 01:40PM
`07/27/93 09:20AM
`1 0/04/93 01:36PM
`10/04193 01:39PM
`10/04193 01:35PM
`Modified
`
`~~~~~-~~~
`
`I~I~HAAl::;:f::;Jell= I ~r~lrLJI
`
`ljelp
`
`Cl Zen&war.wri
`Cl Woodblk.wri
`Cl Schedule.bxt
`C11Mfr8J
`Cl Goals.bxt
`Climbing.bmp
`
`~plit
`!Jpdate Selection
`
`~~:1
`Desktop
`Controls.sys
`Command
`
`Chicago1
`Chicago
`Binr
`Bin
`
`-· C:\[MOBYTMP2]
`~ A:\5.25 Floppy
`File Cabinet
`
`Page 00010
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 10 of 12
`
`5,845,293
`
`150
`
`USER REQUEST
`RECONCILIATION ACTION
`
`NO
`
`"MERGE"
`ACTION
`SELECTED
`
`160
`
`162
`
`YES
`
`154
`
`YES
`158
`
`PASS REQUEST
`FOR SYNC.
`FILE TO REPLACE
`BRIEFCASE FILE
`
`PASS REQUEST
`FOR BRIEFCASE
`FILE TO REPLACE
`SYNC. FILE
`
`172
`
`UPDATE LAST
`RECONCILIATION
`TIME-STAMPS
`
`FIG.7
`
`GET REC.
`HANDLER
`INFORMATION
`FROM REGISTRY
`DATABASE
`
`PROVIDE NAMES,
`PATHS AND TIME(cid:173)
`STAMPS FOR FILES
`TO BE MERGED
`
`170
`
`WAIT FOR MERGE
`COMPLETION
`
`Page 00011
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 11 of 12
`
`5,845,293
`
`To change the update action, right mouse click on the file you want to
`change.
`
`In Briefcase
`Unmodified
`09/07/93 03:08PM
`
`Replaces
`
`In Scotth3\files
`Modified
`07/28/93 11:10AM
`
`Dinosaur:wri
`·····························-··············------·······--·····--------------------··------------------
`
`In Briefcase
`Modified
`09107193 05:5oPrv
`
`~ Ideas. txt
`
`In Briefcase
`Modified
`09/09/93 05:51PM
`
`..
`
`Replaces
`
`In Scotth3\Winw. ..
`Unmodified
`09/08/93 1 0:57PM
`r-. v
`
`Update
`
`II
`
`Cancel
`
`Help
`
`FIG.8
`
`Page 00012
`
`
`
`U.S. Patent
`
`Dec. 1, 1998
`
`Sheet 12 of 12
`
`5,845,293
`
`21
`________________ (__
`
`22
`_ _______________ ( ______ _
`
`I
`
`I
`
`I
`
`CPU
`
`1 .... : - - - - -
`
`1
`
`I
`
`i I
`~~~~~~~l~~~]~~~~:ii __ _
`
`1.--------------..:
`MEMORY
`OPERATING SYSTEM 11
`
`INPUT/OUTPUT
`DEVICES 23
`DISK DRIVES
`( 24
`COMMUNICATION PORTS
`
`,_ _______ .....
`
`I
`
`-----------------------1
`
`----------------------
`
`I
`
`FIG.9A
`
`1220
`
`221
`1--------------- _(--I
`
`i I
`_______ l ____ J ______ _
`
`CPU
`
`1 .... : _____ '
`
`I
`
`I
`
`------- ________ (~~~--
`
`1
`
`I
`
`MEMORY
`OPERATING SYSTEM 211
`
`222
`i-------------- _(------- ~
`INPUT/OUTPUT
`DEVICES 223
`DISK DRIVES
`224
`COMMUNICATION PO~TS
`I ------------------------J
`
`FIG.9B
`
`Page 00013
`
`
`
`This is a continuation of application Ser. No.08/287, 231
`filed Aug. 8, 1994, now abandoned.
`
`TECHNICAL FIELD
`
`5
`
`10
`
`BACKGROUND OF THE INVENTION
`
`5,845,293
`
`1
`METHOD AND SYSTEM OF ASSOCIATING,
`SYNCHRONIZING AND RECONCILING
`COMPUTER FILES IN AN OPERATING
`SYSTEM
`
`The present invention relates generally to operating sys(cid:173)
`tems for computing devices, and more particularly to an
`improved system for, and method of, associating, synchro(cid:173)
`nizing and reconciling computer files in an operating sys(cid:173)
`tem.
`
`2
`In a network environment, for example, an original
`document, such as a letter, may be typed and saved by a
`secretary at his or her computer. The letter then may be
`transferred over the network to the originator's computer for
`review. The originator can then rough edit and store the letter
`on his or her computer. Thus, a second version of the letter
`is created and stored on the originator's computer. When
`satisfied with this second version, the originator may print
`out a hard copy of the letter for review by a third person. The
`third person may perform a final edit by marking-up the
`printed copy. The marked-up copy is then given to the
`secretary for entry of those marked changes. If the secretary
`adds the marked changes to the original version on his or her
`computer, the final letter will be incorrect. It will not
`15 incorporate the originator's rough edit changes. Therefore,
`when modifying a file, a secretary must either insure he or
`she has the up-to-date file version by manually checking the
`From the late 1970s through the present day the ability of
`copies that were transferred to other computers, or risk using
`general purpose digital computing devices to perform a wide
`an outdated file version.
`variety of tasks has continually expanded. As a result, the
`The problem of multiple file versions also exists where
`use of personal computers has proliferated in businesses, 20
`files are transferred from central servers to individual
`homes, academia, and a multitude of other environments.
`employee computers. For example, where salesmen copy a
`Further, due to more recent advances in technology, the use
`standard price list, the file versions on the individual com(cid:173)
`of compact portable computers for travel has become fea(cid:173)
`puters will become increasingly outdated as the standard
`sible and even common-place.
`25 price list is periodically updated. Thus, one salesman's price
`Today, as the proliferation of personal computers
`list may be two weeks old, while another's is one week old,
`continues, individuals routinely use more than a single
`and a third's is up-to-date. This can result in incorrect and
`computer in their work. This allows computer files to be
`conflicting information being used by a business.
`created at one location and transferred to a computer at
`In the absence of a network between computers, as is
`another location for modification there. As used herein the 30
`usually the case with a user's home and office computers,
`term "file" means a computer document created from a
`files are often transferred between the computers by a
`computer application or a folder containing such computer
`"sneaker-net". In a sneaker-net, a user "networks" its home
`documents. The term "transfer" means to copy a file from
`and office computers by physically transporting files back
`one folder to another. The copied file may reside on the same
`and forth on storage media. As used herein the phrase
`computer or on separate computers.
`35 "storage media" means a device capable of storing infor(cid:173)
`Individuals typically use a second computer to engage in
`mation in a format readable by a computer. The phrase
`after-hours employment related work. These users have a
`"removable storage media" means a storage media device
`computer at their home in addition to one at their office, and
`that is readily insertable and removable from a computer.
`perhaps even a portable computer for travel. Thus, they can
`Typically in a sneaker-net, a removable storage media, such
`create a file at the office, transfer the file from their office
`40 as a floppy disk is used. Increasingly, however, portable
`computer to their home computer, and modify the file at
`computers are used as a means of transporting files in a
`home. On the succeeding business day, the users may
`sneaker-net environment. The use of a portable computer
`transfer the modified file back to their office computer for
`allows files to be transferred between the transporting stor(cid:173)
`further use there. Additionally, for travel, many users trans(cid:173)
`age media, the portable computer's hard disk drive, and the
`fer files to a portable computer for use or modification while
`45 user's home or office computer more quickly over a local
`traveling.
`connection than can be done with removable storage media.
`The phrase "local connection" means a connection between
`Most businesses have multiple computers, with secretar-
`computers in close proximity over which files or other
`ies as well as engineers, researchers and managers typically
`information may be transferred. For example, the connection
`having their own office computer. These computers are often
`50 may be by serial or parallel cable. Further, the connection
`networked together in order to allow files to be easily
`may be wireless using infrared or RF (radio frequency).
`transferred between employees. Pile transfer may be further
`Sneaker-net environments also lead to multiple file versions
`facilitated by using a central file server in connection with a
`because files are transferred and modified on separate com-
`network. Central servers contain often used files, such as
`puters.
`standard business forms, thereby allowing employees to
`While the problem of multiple file versions may be
`easily access and transfer needed files to their respective 55
`alleviated by manually and continually updating older file
`computers for use and modification there.
`versions when newer ones are created, that solution is
`The increasing use of multiple computers and networked
`impractical. Users typically create and edit multiple docu(cid:173)
`systems by single entities has led to an increase in the
`ments from various directories contemporaneously with one
`transfer of files between or among that entity's computers.
`A problem associated with file transfer between computers 60 another. Thus, they cannot always remember what file
`versions in which directories are the most up-to-date. Fur(cid:173)
`is the resulting creation of multiple file versions when the
`ther still, a user may be unaware that a newer version of a
`transferred file copy or the original file copy is later modi(cid:173)
`file even exists, such as when a standard form on a central
`fied. Thus, two file versions exist for each file that is
`server has been updated by management.
`transferred to, and modified on, another computer. Multiple
`file versions cause confusion as to whether a particular file 65
`A second problem associated with file transfers between
`computers is resulting file conflicts. For example, a file
`copy is the up-to-date version. Such confusion can lead to
`conflict occurs when a single user independently modifies
`the use of an outdated file version.
`
`Page 00014
`
`
`
`5,845,293
`
`4
`synchronizing and reconciling method and system that will
`interface with computer applications in order to allow con(cid:173)
`flicting files to be merged.
`
`SUMMARY OF 1HE INVENTION
`
`15
`
`20
`
`3
`two separate versions of the same file. File conflicts also
`occur when two users, each with his or her own copy of the
`same file, such as a proposal, independently modify his or
`her own copy and thus create two "latest" versions of that
`file. Conflicting file versions cannot be readily reconciled 5
`because neither version incorporates the modifications of
`both users. In such cases, a version containing the modifi(cid:173)
`cations of both users can only be created by merging the two
`verswns.
`Therefore, there exists a need for a method and system for
`associating, synchronizing and reconciling files in a com(cid:173)
`puter system. As used herein, the term "associate" means to
`link two or more files for synchronization. The term "syn(cid:173)
`chronize" means to determine whether associated files are
`up-to-date and, if they are not, to recommend a preferred
`reconciliation action. "Reconciliation" is the act of updating
`or merging associated files. As used herein the term "updat(cid:173)
`ing" means replacing outdated file versions with an up-to(cid:173)
`date file version. The term "outdated" means that the file has
`not been modified since the last reconciliation action and an
`associated file has been modified. The term "up-to-date"
`means that the file represents the latest version available,
`which further means that either the file has been modified
`since the last reconciliation action and its associated files
`have not been modified, that neither the file nor its associ- 25
`ated files have been modified since the last reconciliation
`action or that an associated file is not available for synchro(cid:173)
`nization.
`The association method and system should be user
`friendly, allowing users to intuitively associate files. Syn- 30
`chronization should automatically determine the status of
`associated files, report existing file conflicts and recommend
`proper reconciliation actions. The method and system
`should be able to function in both network and sneaker-net
`environments. Further, the method and system should pro(cid:173)
`vide an application interface to allow applications to merge
`files of their own type when file conflicts occur. Further still,
`file association and synchronization should operate as part of
`a computer operating system so that a separate application
`does not need to be launched.
`Various methods have been used in the prior art for file
`association, synchronization and reconciliation. The earliest
`methods used a synchronization relationship to periodically
`back-up a computer's secondary memory. Back-up up 45
`relationships, however, are only one way in nature, from a
`first computer to a second computer. Thus, such back-up
`synchronization methods are only designed for situations
`where files are created and modified on only one computer.
`As such, back-up relationships do not fulfill the present need 50
`because often files are modified on separate computers.
`Thus, back-up methods do not solve the need for a method
`and system for associating, synchronizing and reconciling
`files that are modified on different computers.
`More recently, various other methods of associating,
`synchronizing and reconciling files have been used. These
`methods, however, do not provide an intuitive method of file
`association and synchronization in both a network and a
`sneaker-net environment. Further, the prior art methods do
`not provide for adequate reconciliation because they do not 60
`include an application interface for merging conflicting files.
`Moreover, because the prior art methods are not seamlessly
`integrated into an operating system, user interface or shell,
`they must be separately launched.
`Thus, there exists a need for a method and system for
`intuitively associating, synchronizing and reconciling com(cid:173)
`puter files. Further, there exists a need for an associating,
`
`The present invention provides a better solution to solving
`the problems in the art described above by providing an
`intuitive method and system for associating files. Associated
`files are synchronized and their synchronization status
`10 reported. On the basis of synchronization status, the present
`invention recommends a preferred reconciliation action.
`Furthermore, file conflicts are recognized and an application
`interface is provided in order to allow applications to merge
`conflicting files.
`Generally described, the present invention is a method
`and system for associating, synchronizing and reconciling
`files using a database dedicated to storing file association
`information. The information stored includes the name,
`paths, and last reconciliation time-stamps of associated files.
`Upon the occurrence of selected updating events, such as a
`user request, the present invention retrieves the database
`information and uses the name and paths to get the current
`time-stamps of the associated files. With that information,
`the present invention determines whether reconciliation
`actions are needed for an associated file set by comparing the
`current time-stamps of the associated files with each file's
`last reconciliation time-stamp stored in the database.
`Where none of the files of an associated file set have been
`modified or when only one of the associated files is
`available, the present invention reports the synchronization
`status as up-to-date. If only one associated file has been
`modified, the present invention reports that the unmodified
`files needs updating and recommends replacing the unmodi-
`35 fied files with the modified file. Where two or more asso-
`ciated files have been modified, the present invention deter(cid:173)
`mines whether a reconciliation handler is available for that
`file type. If a reconciliation handler is available, the present
`invention recommends that the modified files be merged and
`the resulting up-to-date file be used to replace the associated
`files. If a reconciliation handler is not available, the present
`invention informs the user of the existing file conflict.
`In one embodiment of the present invention, files are
`selected for association by transferring them into a dedicated
`folder (referred to as a "briefcase"). In this embodiment,
`each such dedicated folder has a dedicated synchronization
`database for storing file association information.
`In a second embodiment of the present invention, files are
`selected for association (referred to as "twinning") by select(cid:173)
`ing the association during the initial file transfer. For this
`embodiment, a global synchronization database is used to
`store file association information relating to the twinned
`files.
`Thus, it is an object of the present invention to provide an
`55 improved method and system for associating, synchronizing
`and reconciling files.
`It is a further object of the present invention to provide a
`method and system that allow a computer user to associate
`files intuitively.
`It is a further object of the present invention to provide an
`application interface for merging conflicting files.
`It is a further object of the present invention to provide an
`operating system for associating, synchronizing and recon-
`65 ciling files.
`Further objects, features and advantages of the present
`invention will become apparent upon reviewing the follow-
`
`40
`
`Page 00015
`
`
`
`5,845,293
`
`5
`ing description of the preferred embodiments of the
`invention, when taken in conjunction with the drawings and
`appended claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`40
`
`6
`interface. However, this invention should be also understood
`as applicable to operating systems with a character based
`user interface.
`With respect to the first association embodiment, FIG. 1A
`5 shows a functional block diagram of the components of a
`computer operating system 11 that are used for carrying out
`the present invention of associating, synchronizing and
`reconciling files. FIG. 2 shows the method of the present
`invention in conjunction with the components of operating
`10 system 11. A user 2 requests association actions via a user
`interface 4 at step 30. A synchronization engine 6 provides
`the mechanisms for associating, synchronizing and recon(cid:173)
`ciling files. Files are associated by storing the information
`about them that is necessary to link them together into a
`15 dedicated synchronization database 8 at step 32. After an
`updating event at step 34, synchronization status is deter(cid:173)
`mined at decisional step 36. As used herein the phrase
`"synchronization status" means the status of an associated
`file set concerning the relative modification of its associated
`20 files. The phrase "file set" means two or more files associ(cid:173)
`ated in accordance with the present invention. Synchroni(cid:173)
`zation status is determined by comparing an associated file
`set's file information in the dedicated synchronization data(cid:173)
`base 8 with its current file information that is retrieved from
`25 file system 16. On the basis of synchronization status,
`synchronization engine 6 recommends a preferred reconcili(cid:173)
`ation action to user 2 at step 38. Next, at step 40, the
`preferred reconciliation action as well as other choices are
`displayed to user 2 through user interface 4.
`If a file conflict exists between an associated file set,
`synchronization engine 6 determines if a reconciliation
`handler 12 of the proper file type is available to merge the
`associated file set. If a reconciliation handler 12 is available,
`synchronization engine 6 will display a merge request at step
`35 40. If a proper reconciliation handler 12 is not available,
`synchronization engine 6 will not allow the user to request
`or initiate a merger. This is done by disallowing the merge
`selection in the user interface 4.
`Although synchronization engine 6 could automatically
`perform the preferred reconciliation action, in the preferred
`embodiment, user 2 makes the final decision concerning
`what reconciliation action will be performed by requesting
`that action at step 42. Thus, the user 2 may override the
`recommended reconciliation action and select a different
`reconciliation action from the choices presented by the
`synchronization engine 6.
`User requested reconciliation actions are received by the
`synchronization engine 6 and are passed to the proper
`50 reconciliation mechanism at step 44. The proper reconcili(cid:173)
`ation mechanism for replacing an outdated file version with
`an updated file version is the file manager (not shown) of
`operating system 11. For merging files, the proper recon(cid:173)
`ciliation mechanism is the reconciliation handler interface
`55 10. After a requested reconciliation action is completed, the
`information concerning the associated file set in the dedi(cid:173)
`cated synchronization database 8 is updated at step 46 for the
`file set that was reconciled.
`FIG. 3A shows the method of the first embodiment for
`associating files in a computer operating system 11 having
`components and methods as shown in FIGS. 1A and 2. This
`embodiment shown in FIG. 3A has a dedicated folder 5
`(briefcase) for associating files.
`The inventive method of the first embodiment shown in
`FIG. 3A begins with user 2 selecting a file and dragging and
`dropping it into another folder at step 50. At this point
`decisions, based on the folder that the selected file is dragged
`
`FIG. 1A is a diagrammatic view of the operating system
`components used in connection with a first embodiment
`(briefcase) for associating, synchronizing and reconciling
`files in accordance with the present invention.
`FIG. 1B is a diagrammatic view of the operating system
`components used in connection with a second embodiment
`(twinning) for associating, synchronizing and reconciling
`files in accordance with the present invention.
`FIG. 2 is a high level logical flow diagram breaking down
`the method of the present invention into the basic compo(cid:173)
`nents of file association, synchronization and reconciliation.
`FIG. 3A is a logical flow diagram of the association
`component of FIG. 2 which incorporates a dedicated folder
`for associating files in accordance with the first embodiment
`(briefcase) of the present invention.
`FIG. 3B is a logical flow diagram of the association
`component of FIG. 2 which incorporates a file transfer
`context menu for file association in accordance with the
`second embodiment (twinning) of the present invention.
`FIG. 4 is a user interface showing a file filter which may
`be used in connecti