`US009143561B2
`
`c12) United States Patent
`Manzano
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 9,143,561 B2
`*Sep.22,2015
`
`(54) ARCHITECTURE FOR MANAGEMENT OF
`DIGITAL FILES ACROSS DISTRIBUTED
`NETWORK
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`(75)
`
`Inventor: Michael R. Manzano, Seattle, WA (US)
`
`(73) Assignee: TOPIA TECHNOLOGY, INC.,
`Tacoma, WA (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 860 days.
`
`EP
`WO
`
`This patent is subject to a terminal dis(cid:173)
`claimer.
`
`(21) Appl. No.: 12/267,852
`
`(22) Filed:
`
`Nov.10, 2008
`
`(65)
`
`Prior Publication Data
`
`US 2009/0138528 Al
`
`May 28, 2009
`
`Related U.S. Application Data
`
`(60)
`
`Provisional application No. 60/986,896, filed on Nov.
`9, 2007.
`
`(51)
`
`Int. CI.
`G06F 17100
`G06F 17130
`
`(2006.01)
`(2006.01)
`(Continued)
`
`(52)
`
`(58)
`
`U.S.Cl.
`CPC ............ H04L 6711095 (2013.01); G06F 15116
`(2013.01); G06F 17130 (2013.01); G06F
`17130174 (2013.01)
`
`Field of Classification Search
`CPC .......... G06F 17/00; G06F 17/30; G06F 15/16
`USPC ......... 707/608---609, 638, 657, 695, 806, 818,
`707/821-822, 825; 709/203, 206; 715/229
`See application file for complete search history.
`
`5,600,834 A *
`2/1997 Howard ........................ 713/178
`5,806,078 A * 9/1998 Hug et al ...................... 715/205
`(Continued)
`
`1130511
`WO 2007047302
`
`FOREIGN PATENT DOCUMENTS
`* 9/2001
`* 4/2007
`OTHER PUBLICATIONS
`
`U.S. Office Action dated Aug. 13, 2014 for U.S. Appl. No.
`11/739,083.
`
`Srirama Channavajjala
`Primary Examiner
`(74) Attorney, Agent, or Firm -Pillsbury Winthrop Shaw
`PittmanLLP
`
`ABSTRACT
`(57)
`A system includes a first application executable on a first
`electronic device. The system further includes a second appli(cid:173)
`cation executable on a second electronic device in communi(cid:173)
`cation with the first electronic device. The second electronic
`device is configured to store a first electronic file. Subsequent
`to a user modifying the first electronic file, the second appli(cid:173)
`cation is operable to automatically transfer the modified first
`electronic file, or a copy thereof, to the first electronic device.
`The system further includes a third application executable on
`a third electronic device in communication with the first
`electronic device. The third electronic device is configured to
`store a second electronic file. Subsequent to the user modify(cid:173)
`ing the second electronic file, the third application is operable
`to automatically transfer the modified second electronic file,
`or a copy thereof, to the first electronic device. The first
`application is operable to automatically transfer the modified
`first electronic file or copy to the third electronic device, and
`automatically transfer the modified second electronic file or
`copy to the second electronic device.
`
`13 Claims, 3 Drawing Sheets
`
`DATABASE
`
`""
`
`...
`
`"'
`
`llll
`
`USER DEVICE
`
`USER DEVICE
`
`USER DEVICE
`"-'
`
`"'
`
`""
`
`I USER DEVICE
`I
`I
`
`Box & Dropbox Exhibit 1001
`Page 1
`
`
`
`US 9,143,561 B2
`Page 2
`
`Int. Cl.
`G06F 15116
`H04L29/08
`
`(51)
`
`(56)
`
`(2006.01)
`(2006.01)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`6,026,414 A *
`2/2000 Anglin .
`1/1
`6,154,817 A * 11/2000 Mohan et al. ................. 711/162
`6,260,069 Bl *
`7/2001 Anglin .......................... 709/229
`6,449,624 Bl *
`1/1
`9/2002 Hammack et al.
`6,606,646 B2 *
`8/2003 Feigenbaum ................. 709/203
`7,024,428 Bl*
`4/2006 Huang et al.
`1/1
`7,136,934 B2 * 11/2006 Carter et al.
`.................. 709/248
`7,224,973 B2 *
`5/2007 Tsutazawa et al.
`........... 455/437
`7,260,646 Bl
`8/2007 Stefanik et al.
`
`7,325,038 Bl
`7,788,303 B2 *
`2002/0026478 Al
`2002/0087588 Al*
`2003/0028542 Al *
`2004/0093361 Al*
`2004/0107225 Al *
`2004/0172424 Al*
`2005/0091316 Al
`2006/0010150 Al *
`2007 /0027936 Al *
`2007/0100913 Al*
`2007/0180084 Al
`2008/0005114 Al*
`2013/0226871 Al *
`
`.............. 707 /828
`
`1/2008 Wang
`8/2010 Mikesell et al .
`2/2002 Rodgers et al.
`7/2002 McBride et al. .............. 707/204
`2/2003 Muttik et al.
`................. 707 /l 00
`.............. 707 /204
`5/2004 Therrien et al.
`6/2004 Rudoff .......................... 707/204
`............. 707/201
`9/2004 Edelstein et al.
`4/2005 Ponce et al.
`................. 707 /l 02
`1/2006 Shaath et al.
`2/2007 Stakutis et al.
`............... 707 /204
`5/2007 Sumner eta!. ................ 707/204
`8/2007 Mohanty
`1/2008 Li
`..................................... 707/9
`8/2013 Sarnowski .................... 707 /637
`
`* cited by examiner
`
`Box & Dropbox Exhibit 1001
`Page 2
`
`
`
`~
`r:J)_ .
`
`~
`~
`~
`
`~ = ~
`
`rJJ
`('D
`'?
`N
`N
`N
`
`0 ....
`
`Ul
`
`('D
`('D
`
`rJJ =(cid:173)
`.....
`....
`0 ....
`
`~
`
`11 O
`
`r 191
`
`MONITOR
`·,,~ ...
`'~~
`
`1~
`
`
`
`:
`
`I
`
`r 195
`OUTPUT
`PERIPHERAL
`INTERFACE 1 - - - - - , - - - !
`
`196
`PRINTER ~
`
`l SPEAKERS r'--,..197
`
`LOCAL AREA NE1WORK
`
`171
`
`-"°-170
`l
`J
`, ~O~~ t /I WIDE AREA NET~RK
`
`-
`
`_,_ -
`17') -
`
`-
`
`,------.
`J
`
`PROCESSING
`UNIT
`
`120
`
`190
`
`VIDEO
`INTERFACE
`
`SYSTEM BUS
`l.121
`
`- ;S~EM MEMORY
`(ROM) 131
`
`I
`
`BIOS ml
`
`1-
`
`1
`
`}
`130
`
`(PAM) 132
`
`OPERATING
`SYSTEM
`
`APPLICATION
`PROGRAMS
`
`OTHER PROGRAM
`MODULES
`
`136
`
`PROGRAM
`DATA
`
`J}Z
`
`___ -
`L__
`
`-
`
`-
`
`-
`
`,., ,.,
`-
`_,,,_,,, 141·
`
`'
`
`151
`
`I
`- _ ---r"'.:;;.. - - - - f t
`- - - - -r-
`' , ~
`155
`'
`'
`' ,
`.
`
`,.,
`
`.....
`
`_,.
`
`,,,,. ,.,
`
`.,,.
`
`,.,
`,.,
`,.,
`OPERATING I APPLICATION
`
`SYSTEM
`144
`
`PROGRAMS
`145
`
`152
`
`I OTHER PROGRAM
`
`MODULES
`146
`
`PROGRAM
`DATA
`
`147
`
`MOUSE
`
`f
`100 ___;
`
`KEYBOARD
`
`162
`
`181
`
`REMOTE
`APPLICATION
`PROGRAMS
`
`185
`
`FIG. 1
`
`d r.,;_
`
`_."-0
`
`"'""' ~ w
`tit
`0--,
`"'""'
`~
`N
`
`Box & Dropbox Exhibit 1001
`Page 3
`
`
`
`U.S. Patent
`
`Sep.22,2015
`
`Sheet 2 of 3
`
`US 9,143,561 B2
`
`[:l_
`l!J -
`
`~ w
`I-
`~ Cl)
`0:::
`w
`I-::,
`a..
`~
`0
`0
`
`rel
`
`0::: w ~,
`
`> 0::: w
`
`(/)
`
`~,
`
`w
`Cl)
`<(
`CD
`~
`<(
`0
`
`~,
`
`>-
`:5 a..
`Cl)
`0
`
`I
`
`0 > w ~,
`
`w
`
`0
`0::: w
`(/)
`::,
`
`~ ~,
`
`~
`0:::
`
`w z
`
`')
`)
`)
`
`N
`(9
`LL
`
`w
`
`0
`0::: w
`(/)
`::,
`
`0 > w ~,
`~,
`
`I
`
`~ a..
`i5
`
`Cl)
`
`~ 0
`
`0
`N
`
`Box & Dropbox Exhibit 1001
`Page 4
`
`
`
`U.S. Patent
`
`Sep.22,2015
`
`Sheet 3 of 3
`
`US 9,143,561 B2
`
`0 r-(cid:173)
`M
`
`w
`(.)
`
`5 WCI
`
`Cleo
`0:: N
`w
`Cl)
`::::)
`
`IO
`M
`
`0 r-(cid:173)
`M
`
`1 ______ 1
`
`~
`
`w
`(.')
`
`c2 ~I
`0
`I-en
`
`CY)
`cj
`U:::
`
`0 r--
`M
`
`0 r-(cid:173)
`M
`
`w
`CJ
`
`5 wol 0.-
`w en
`
`0:::N
`
`::::)
`
`Box & Dropbox Exhibit 1001
`Page 5
`
`
`
`US 9,143,561 B2
`
`1
`ARCHITECTURE FOR MANAGEMENT OF
`DIGITAL FILES ACROSS DISTRIBUTED
`NETWORK
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`2
`concerned with representing files with abstracted icons, the
`file's actual contents are becoming paramount in how files are
`organized and presented.
`Problems still exist with how these newer customer inter(cid:173)
`faces are implemented. They are not completely integrated
`with applications, suffer from performance problems, and do
`not generally work well outside of a device's local file system.
`There are several solutions to this problem that are in one
`way or another inadequate to the task:
`Remote Desktop software allows a customer to remotely
`"see" his desktop. Remote desktop software screen-scrapes a
`remote machine's screen (a "server") and displays it on a
`screen local to the customer (a "client"). Remote desktop
`gives a customer access to not only his files, but also to his
`15 applications. However, this approach requires that the host
`machine be turned on and connected to the internet at all
`times. Consequently, this approach would not be appropriate
`for mo bile hosts such as laptops. Remote desktop does not use
`the resources of a local machine. For full accessibility, the
`20 customer would have to keep all files and application on the
`host machine as any files stored on a client are not guaranteed
`to be accessible.
`Distributed File Systems, like remote desktop software,
`place data on an always-connected host machine. Unlike
`remote desktop software, the host machine is not one on
`which the customer performs computing tasks. The host
`machine is used as a storage mechanism, and any computa(cid:173)
`tion performed on that machine serves to supports its use as
`such. Distributed file systems generally provide the right
`30 functionality for customers to share files between their
`devices. However, distributed file systems are usually
`deployed as a shared resource; that is, other customers have
`access to it. Because of this sharing, a customer's files may be
`buried deep in a filing structure, and it may not always be
`immediately evident to customers what kind of access they
`have to a particular file. Further, to use a distributed file
`system, the customer must always be connected to it. Files
`stored on a distributed file system are generally inaccessible if
`the customer's machine is not connected to it, unless the
`customer has copied or moved the files to his machine's local
`hard drive. However, doing so immediately creates the prob-
`lem of having two filing systems for the same file, creating a
`mental burden on the customer.
`Additionally, accessing a file located on a distributed file
`45 system tends to be slower than accessing files on the local
`hard drive. Modem applications are usually written to assume
`that the files they access are located locally, and thus are not
`optimized to access remote files. When these applications are
`used with remote files, they can lose performance by an order
`50 of magnitude. This problem can be fixed by automatically
`caching often-used files on the local file system, and only
`synchronizing them when they have been changed. However,
`this separate synchronization step introduces another prob(cid:173)
`lem: because the synchronization process can be lengthy, the
`55 customer is never entirely sure if the file he is remotely
`accessing is the latest version of the file, versus an earlier one
`that has been marked to be updated. Further, the directory
`may not reflect the existence of the file at all until synchroni(cid:173)
`zation finishes.
`FTP is similar to a distributed file system with regards to
`files being hosted on a remote server. However FTP generally
`does manifest as a "disk drive" on the customer's desktop; the
`customer must use special FTP client software to access an
`FTP server. It shares the same problem as distributed file
`65 systems, with the additional problem of weak integration with
`applications. Applications can generally write and read files
`directly to and from a distributed file system. This is not the
`
`This application claims priority to U.S. Provisional Appl.
`No. 60/986,896 entitled "ARCHITECTURE FOR MAN(cid:173)
`AGEMENT OF DIGITAL FILES ACROSS DISTRIBUTED 10
`NETWORK" and filed Nov. 9, 2007, which is hereby incor(cid:173)
`porated by reference in its entirety.
`
`FIELD OF THE INVENTION
`
`This invention relates generally to computer-implemented
`processes and, more specifically, to sharing of electronic files
`among electronic devices.
`
`BACKGROUND OF THE INVENTION
`
`Users of modem computing systems are increasingly find(cid:173)
`ing themselves in constantly-connected, high-speed net(cid:173)
`worked environments. The Web continues to be a killer appli(cid:173)
`cation, second only to email, on the Internet. Further, 25
`customers are increasingly using more than one computing
`device; a customer may have a desktop computer at home,
`one at work, and a constantly connected "smart phone". Due
`to the confluence of these two trends, file management across
`these devices has become a problem.
`Although modern devices are easily connected, they do not
`provide the customer a seamless environment; the customer
`must manually handle many aspects of that connection. With
`regards to file management, customers must manually move
`files between their devices using some protocol like email, 35
`ftp, or by posting them on the Web. These practices lead to
`problems that include:
`The proliferation of redundant file copies. This prolifera(cid:173)
`tion creates a confusing environment where the cus(cid:173)
`tomer is unclear where the "official" or newest version of 40
`a file exists.
`The creation of an error-prone environment. Some docu(cid:173)
`ments, such as those associated with word processing
`and desktop publishing, externally reference other files.
`Copying such a document can break these references
`causing errors that the customer has to handle manually.
`An example of such a document is a desktop publishing
`document that contains a reference to an image. If that
`image file is not transferred along with the desktop pub(cid:173)
`lishing file, the image will appear as a broken link.
`Unnecessary complexity. Because devices tend to have
`their own filing system, customers must manage a dif(cid:173)
`ferent filing model on each of his devices. For example,
`instead of having a single "Movies" folder, he may have
`to deal with many "Movies" folders, which may be in
`different locations on each of his devices. Each device
`may also have its own security model, further compli(cid:173)
`cating the matter.
`That a customer has to manually move files around to
`ensure their accessibility on his devices is unnecessary, and is 60
`an indicator of a lack of customer-focused design in modern
`file systems. File systems in use today are direct offspring of
`systems used when graphical customer interfaces were non(cid:173)
`existent. Modem file system customer interfaces, such as
`Windows® Explorer and Mac OS X's Finder are just now
`starting to provide experiences that are more in line to a
`customer's workflow. Whereas, before, these interfaces were
`
`Box & Dropbox Exhibit 1001
`Page 6
`
`
`
`US 9,143,561 B2
`
`4
`FIG. 1 is a schematic view of an exemplary operating
`environment in which an embodiment of the invention can be
`implemented;
`FIG. 2 is a functional block diagram of an exemplary
`operating environment in which an embodiment of the inven(cid:173)
`tion can be implemented; and
`FIG. 3 is a functional block diagram illustrating file sharing
`and/or synchronization according to an embodiment of the
`invention.
`
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`10
`
`3
`case with FTP, as the customer has to manually use the client
`software to perform these operations as a separate task.
`Email was originally invented for messaging. From the
`beginning, the model it employs to make files accessible
`remotely is necessarily inefficient. Email's model for making
`files accessible is in the form of an email "attachment".
`Attachments are so named because they piggy-back on a
`message sent from one customer to another. A customer can
`make a file remotely available using email by attaching the
`file to an email and sending it to himself. He can then retrieve
`the file from a remote location by accessing the message on
`the email server. Email used in this way is even worse than
`FTP as the process is even more manual: a customer must find
`the message containing the file before he can even access it.
`Further, the location in which the attachment lives is read
`only. If the customer, for example, were to open the file, 15
`change it, then save it back out, the results would be ambigu(cid:173)
`ous to the user because the email application, not the user,
`specified its location. Usually, the saved file would end up
`buried in an email file cache in an undisclosed area of the file
`system.
`Flash Drives and External Disk Drives, although seem(cid:173)
`ingly the most "primitive" way to ensure file availability,
`avoid all the problems related to network latency. However,
`these devices must be physically connected to the computer
`on which the files will be accessed. These restrictions pre(cid:173)
`clude the customer from employing several effective work(cid:173)
`flows including: using more than one computer to complete a
`single task (the files can only be accessed on one computer)
`and setting up an automated backup (the computer running
`the backup can't guarantee that the storage device will be
`connected come backup time). Further, to ensure full avail(cid:173)
`ability of the files, the customer must carry the device with
`them at all times, and must follow the associated protocols for
`mounting and dismounting the device.
`Other problems with the prior art not described above can
`also be overcome using the teachings of embodiments of the
`present invention, as would be readily apparent to one of
`ordinary skill in the art after reading this disclosure.
`
`SUMMARY OF THE INVENTION
`
`An embodiment of the invention leverages remote pro(cid:173)
`gramming concepts by utilizing processes called mobile
`agents (sometimes referred to as mobile objects or agent
`objects). Generally speaking, these concepts provide the abil(cid:173)
`ity for an object (the mobile agent object) existing on a first
`("host") computer system to transplant itself to a second
`20 ("remote host") computer system while preserving its current
`execution state. The operation of a mobile agent object is
`described briefly below.
`The instructions of the mobile agent object, its preserved
`execution state, and other objects owned by the mobile agent
`25 object are packaged, or "encoded," to generate a string of data
`that is configured so that the string of data can be transported
`by all standard means of communication over a computer
`network. Once transported to the remote host, the string of
`data is decoded to generate a computer process, still called the
`30 mobile agent object, within the remote host system. The
`decoded mobile agent object includes those objects encoded
`as described above and remains in its preserved execution
`state. The remote host computer system resumes execution of
`the mobile agent object which is now operating in the remote
`35 host environment.
`While now operating in the new environment, the instruc(cid:173)
`tions of the mobile agent object are executed by the remote
`host to perform operations of any complexity, including
`defining, creating, and manipulating data objects and inter-
`40 acting with other remote host computer objects.
`File transfer and/or synchronization, according to an
`embodiment, may be accomplished using some or all of the
`concepts described in commonly owned U.S. patent applica(cid:173)
`tion Ser. No. 11/739,083, entitled "Electronic File Sharing,"
`45 the entirety of which is incorporated by reference as if fully
`set forth herein.
`FIG. 1 illustrates an example of a suitable computing sys(cid:173)
`tem environment 100 in which one or more embodiments of
`the invention may be implemented. The computing system
`environment 100 is only one example of a suitable computing
`environment and is not intended to suggest any limitation as
`to the scope of use or functionality of the invention. Neither
`should the computing environment 100 be interpreted as hav(cid:173)
`ing any dependency or requirement relating to any one or
`combination of components illustrated in the exemplary oper(cid:173)
`ating environment 100.
`Embodiments of the invention are operational with numer(cid:173)
`ous other general purpose or special purpose computing sys(cid:173)
`tem environments or configurations. Examples of well kuown
`computing systems, environments, and/ or configurations that
`may be suitable for use with the invention include, but are not
`limited to, personal computers, server computers, hand-held
`or laptop devices, multiprocessor systems, microprocessor(cid:173)
`based systems, set top boxes, progranimable consumer elec(cid:173)
`tronics, network PCs, minicomputers, mainframe computers,
`distributed computing environments that include any of the
`above systems or devices, and the like.
`
`In an embodiment, a system includes a first application
`executable on a first electronic device. The system further
`includes a second application executable on a second elec(cid:173)
`tronic device in communication with the first electronic
`device. The second electronic device is configured to store a
`first electronic file. Subsequent to a user modifying the first
`electronic file, the second application is operable to automati(cid:173)
`cally transfer the modified first electronic file, or a copy
`thereof, to the first electronic device. The system further 50
`includes a third application executable on a third electronic
`device in communication with the first electronic device. The
`third electronic device is configured to store a second elec(cid:173)
`tronic file. Subsequent to the user modifying the second elec(cid:173)
`tronic file, the third application is operable to automatically 55
`transfer the modified second electronic file, or a copy thereof,
`to the first electronic device. The first application is operable
`to automatically transfer the modified first electronic file or
`copy to the third electronic device, and automatically transfer
`the modified second electronic file or copy to the second 60
`electronic device.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`Preferred and alternative embodiments of the present 65
`invention are described in detail below with reference to the
`following drawings.
`
`Box & Dropbox Exhibit 1001
`Page 7
`
`
`
`US 9,143,561 B2
`
`6
`5
`accessible to and/or presently being operated on by process(cid:173)
`Embodiments of the invention may be described in the
`ing unit 120. By way of example, and not limitation, FIG. 1
`general context of computer-executable instructions, such as
`illustrates operating system 134, application programs 135,
`program modules, being executed by a computer and/or by
`other program modules 136, and program data 137.
`computer-readable media on which such instructions or mod(cid:173)
`The computer 110 may also include other removable/non(cid:173)
`ules can be stored. Generally, program modules include rou(cid:173)
`removable, volatile/nonvolatile computer storage media. By
`tines, programs, objects, components, data structures, etc.
`way of example only, FIG. 1 illustrates a hard disk drive 140
`that perform particular tasks or implement particular abstract
`that reads from or writes to non-removable, nonvolatile mag(cid:173)
`data types. The invention may also be practiced in distributed
`netic media, a magnetic disk drive 151 that reads from or
`computing environments where tasks are performed by
`10 writes to a removable, nonvolatile magnetic disk 152, and an
`remote processing devices that are linked through a commu(cid:173)
`optical disk drive 155 that reads from or writes to a remov(cid:173)
`nications network. In a distributed computing environment,
`able, nonvolatile optical disk 156 such as a CD ROM or other
`program modules may be located in both local and remote
`optical media. Other removable/non-removable, volatile/
`computer storage media including memory storage devices.
`nonvolatile computer storage media that can be used in the
`With reference to FIG. 1, an exemplary system for imple(cid:173)
`15 exemplary operating environment include, but are not limited
`menting the invention includes a general purpose computing
`device in the form of a computer 110. Components of com(cid:173)
`to, magnetic tape cassettes, flash memory cards, digital ver(cid:173)
`puter 110 may include, but are not limited to, a processing
`satile disks, digital video tape, solid state RAM, solid state
`unit 120, a system memory 130, and a system bus 121 that
`ROM, and the like. The hard disk drive 141 is typically
`connected to the system bus 121 through a non-removable
`couples various system components including the system
`20 memory interface such as interface 140, and magnetic disk
`memory to the processing unit 120. The system bus 121 may
`drive 151 and optical disk drive 155 are typically connected to
`be any of several types of bus structures including a memory
`the system bus 121 by a removable memory interface, such as
`bus or memory controller, a peripheral bus, and a local bus
`interface 150.
`using any of a variety of bus architectures. By way of
`The drives and their associated computer storage media
`example, and not limitation, such architectures include Indus-
`discussed above and illustrated in FIG. 1, provide storage of
`try Standard Architecture (ISA) bus, Micro Channel Archi- 25
`computer readable instructions, data structures, program
`tecture (MCA) bus, Enhanced ISA (EISA) bus, Video Elec(cid:173)
`modules and other data for the computer 110. In FIG. 1, for
`tronics Standards Association (VESA)
`local bus, and
`example, hard disk drive 141 is illustrated as storing operating
`Peripheral Component Interconnect (PCI) bus also known as
`system 144, application programs 145, other program mod-
`Mezzanine bus.
`ules 146, and program data 147. Note that these components
`Computer 110 typically includes a variety of computer 30
`can either be the same as or different from operating system
`readable media. Computer readable media can be any avail(cid:173)
`134, application programs 135, other program modules 136,
`able media that can be accessed by computer 110 and includes
`and program data 137. Operating system 144, application
`both volatile and nonvolatile media, removable and non-re(cid:173)
`programs 145, other program modules 146, and program data
`movable media. By way of example, and not limitation, com(cid:173)
`147 are given different numbers here to illustrate that, at a
`puter readable media may comprise computer storage media 35
`and communication media. Computer storage media includes
`minimum, they are different copies. A user may enter com-
`mands and information into the computer 20 through input
`both volatile and nonvolatile, removable and non-removable
`devices such as a keyboard 162 and pointing device 161,
`media implemented in any method or technology for storage
`commonly referred to as a mouse, trackball or touch pad.
`of information such as computer readable instructions, data
`Other input devices (not shown) may include a microphone,
`structures, program modules or other data. Computer storage 40
`joystick, game pad, satellite dish, scanner, or the like. These
`media includes, but is not limited to, RAM, ROM, EEPROM,
`and other input devices are often connected to the processing
`flash memory orother memory technology, CD-ROM, digital
`unit 120 through a user input interface 160 that is coupled to
`versatile disks (DVD) or other optical disk storage, magnetic
`cassettes, magnetic tape, magnetic disk storage or other mag(cid:173)
`the system bus, but may be connected by other interface and
`netic storage devices, or any other medium which can be used 45
`bus structures, such as a parallel port, game port or a universal
`serial bus (USB). A monitor 191 or other type of display
`to store the desired information and which can accessed by
`device is also connected to the system bus 121 via an inter(cid:173)
`computer 110. Communication media typically embodies
`face, such as a video interface 190. In addition to the monitor,
`computer readable instructions, data structures, program
`computers may also include other peripheral output devices
`modules or other data in a modulated data signal such as a
`such as speakers 197 and printer 196, which may be con(cid:173)
`carrier wave or other transport mechanism and includes any 50
`nected through an output peripheral interface 190.
`information delivery media. The term "modulated data sig(cid:173)
`The computer 110 may operate in a networked environ-
`nal" means a signal that has one or more of its characteristics
`set or changed in such a manner as to encode information in
`ment using logical connections to one or more remote com(cid:173)
`puters, such as a remote computer 180. The remote computer
`the signal. By way of example, and not limitation, communi(cid:173)
`180 may be a personal computer, a server, a router, a network
`cation media includes wired media such as a wired network or 55
`direct-wired connection, and wireless media such as acoustic,
`PC, a peer device or other common network node, and typi-
`cally includes many or all of the elements described above
`RF, infrared and other wireless media. Combinations of the
`relative to the computer 110, although only a memory storage
`any of the above should also be included within the scope of
`device 181 has been illustrated in FIG. 1. The logical connec-
`computer readable media.
`The system memory 130 includes computer storage media 60 tions depicted in FIG. 1 include a local area network (LAN)
`171 and a wide area network (WAN) 173, but may also
`in the form of volatile and/or nonvolatile memory such as read
`only memory (ROM) 131 and random access memory
`include other networks. Such networking environments are
`(RAM) 132. A basic input/output system 133 (BIOS), con(cid:173)
`commonplace in offices, enterprise-wide computer networks,
`intranets and the Internet.
`taining the basic routines that help to transfer information
`between elements within computer 110, such as during start- 65
`When used in a LAN networking environment, the com(cid:173)
`up, is typically stored in ROM 131. RAM 132 typically con(cid:173)
`puter 110 is connected to the LAN 171 through a network
`interface or adapter 170. When used in a WAN networking
`tains data and/or program modules that are immediately
`
`Box & Dropbox Exhibit 1001
`Page 8
`
`
`
`US 9,143,561 B2
`
`7
`environment, the computer 110 typically includes a modem
`172 or other means for establishing communications over the
`WAN 173, such as the Internet. The modem 172, which may
`be internal or external, may be connected to the system bus
`121 via the user input interface 160, or other appropriate
`mechanism. In a networked environment, program modules
`depicted relative to the computer 110, or portions thereof,
`may be stored in the remote memory storage device. By way
`of example, and not limitation, FIG. 1 illustrates remote
`application programs 185 as residing on memory device 181.
`It will be appreciated that the network connections shown are
`exemplary and other means of establishing a communications
`link between the computers may be used.
`Referring now to FIG. 2, an embodiment of the present
`invention can be described in the context of an exemplary
`computer network system 200 as illustrated. System 200
`includes electronic user devices 210, 280, such as personal
`computers or workstations, that are linked via a communica(cid:173)
`tion medium, such as a network 220 ( e.g., the Internet), to an
`electronic device or system, such as a server 230. The server 20
`230 may further be coupled, or otherwise have access, to a
`database 240, electronic storage 270 and a computer system
`260. Although the embodiment illustrated in FIG. 2 includes
`one server 230 coupled to two user devices 210, 280 via the
`network 220, it should be recognized that embodiments of the 25
`invention may be implemented using two or more such user
`devices coupled to one or more such servers.
`In an embodiment, each of the user devices 210, 280 and
`server 230 may include all or fewer than all of the features
`associated with the computer 110 illustrated in and discussed 30
`with reference to FIG.1. User devices 210,280 include or are
`otherwise coupled to a computer screen or display 250, 290,
`respectively. User devices 210, 280 can be used for various
`purposes including both network- and local-computing pro(cid:173)
`cesses.
`The user devices 210,280 are linked via thenetwork220 to
`server 230 so that computer programs, such as, for example,
`a browser or other applications, running on one or more of the
`user devices 210,280 can cooperate in two-way communica(cid:173)
`tion with server 230 and one or more applications running on 40
`server 230. Server 230 may be coupled to database 240 and/or
`electronic storage 270 to retrieve information therefrom and
`to store information thereto. Additionally, the server 230 may
`be coupled to the computer system 260 in a manner allowing
`the server to delegate certain processing functions to the 45
`computer system.
`Referring now to FIG. 3, illustrated is functionality of an
`embodiment of the invention allowing a user (not shown) who
`owns or otherwise controls devices 210,280 to automatically
`maintain file synchronization between at least devices 210, 50
`280, or any other user devices on which principles of the
`present invention are implemented. In an embodiment, an
`administrator (not shown) of the server 230 or other appro(cid:173)
`priate electronic device transfers a file-transfer and/or syn(cid:173)
`chronization application to the user devices 210, 280 for 55
`installation thereon. Once installed on the user devices 210,
`280, the file-tra